SA-MP Forums Archive
firstlook - вид от первого лица - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: firstlook - вид от первого лица (/showthread.php?tid=472466)



firstlook - вид от первого лица - DANGER1979 - 28.10.2013

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

Проблема встала при создании вида при состоянии на ногах.
Обидно, но ф-ию 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, которая делает чёрт пойми что.
На вики про неё ни чего не написано особенного.


Re: firstlook - вид от первого лица - White_116 - 28.10.2013

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

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


Re: firstlook - вид от первого лица - DANGER1979 - 28.10.2013

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


Re: firstlook - вид от первого лица - OKStyle - 29.10.2013

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


Re: firstlook - вид от первого лица - DANGER1979 - 29.10.2013

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