firstlook - вид от первого лица
#1

Пытаюсь создать вид от первого лица. Сделал вид с любой тачки и с любого места.

Проблема встала при создании вида при состоянии на ногах.
Обидно, но ф-ию AttachPlayerObjectToPlayer убрали в сампе 0.3

краткий вариант
pawn Код:
new Float:F_x,Float:F_y,Float:F_z;
GetPlayerPos(playerid,F_x,F_y,F_z);
x = F_x; y = F_y; z = F_z + 0.6598;
new objectid = CreateObject(19254, x, y, z, 0.0,0.0,0.0, 8.0);
AttachObjectToPlayer(objectid, playerid, x, y, z, 0.0,0.0,0.0);
AttachCameraToObject(playerid, objectid);
полный вариант с оповещением
pawn Код:
new Float:F_x,Float:F_y,Float:F_z, Float:angle;
            GetPlayerPos(playerid,F_x,F_y,F_z);
            GetPlayerFacingAngle(playerid, angle);
            new Float: camPos[3];
            GetPlayerCameraPos(playerid, camPos[0], camPos[1], camPos[2]);

            format(strings, sizeof(strings), "PlayerPos[CameraPos](%.4f[%.4f], %.4f[%.4f], %.4f[%.4f]) angle:%.1f",
                F_x, camPos[0], F_y, camPos[1], F_z, camPos[2], angle);
            SendClientMessage(playerid, COLOR_GRAD11, strings);

            x = F_x;
            y = F_y;
            z = F_z + 0.6598;

            PlayerCam[playerid][camobj] = CreateObject(18645, x, y, z, 0.0,0.0,0.0, 8.0);//19254
           
            new Float:o_x,Float:o_y,Float:o_z;
            GetObjectPos(PlayerCam[playerid][camobj],o_x,o_y,o_z);
            format(strings, sizeof(strings), "CreateObject(objectid:%d %.4f[%.4f], %.4f[%.4f], %.4f[%.4f])",
                PlayerCam[playerid][camobj], x,o_x, y,o_y, z,o_z);
            SendClientMessage(playerid, COLOR_GRAD7, strings);
           
            AttachObjectToPlayer(PlayerCam[playerid][camobj], playerid, x, y, z, 0.0,0.0,0.0);
           
            format(strings, sizeof(strings), "%d AttachObjectToPlayer(objectid:%d, playerid:%d, %.4f, %.4f, %.4f)",
                PlayerCam[playerid][camobj], playerid, x, y, z);
            SendClientMessage(playerid, COLOR_GRAD7, strings);
            AttachCameraToObject(playerid, PlayerCam[playerid][camobj]);
Думаю проблема в ф-ии AttachObjectToPlayer, которая делает чёрт пойми что.
На вики про неё ни чего не написано особенного.
Reply
#2

AttachObjectToPlayer(PlayerCam[playerid][camobj], playerid, x, y, z, 0.0,0.0,0.0);
Координаты относительно персонажа нужно - у вас глобальные. А так при анимациях тело будет показываться (голова), половину камера срезает, не есть гуд.

0.0, 0.2, 0.6598
При пресядке также высоту нужно будет менять, думаю сами найдёте
Reply
#3

Спасибо, как то не подумал.
Reply
#4

Я так понимаю, что функцией SetPlayerAttachedObject не воспользоваться, потому что она не возвращает id объекта?
Reply
#5

OKStyle, именно так.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)