PDA

Просмотр полной версии : [Вопрос] SetPlayerPos и FacingAngle



somebodies
03.01.2017, 16:26
всем драсте.
возникла проблемка. хочу сделать что-то типа "блинка" (телепортации на определенное расстояние по нажатию клавиши,кто играл в доту и т.д- поймет).
создал некую функцию,которая этим и занимается,и поставил ее на клавишу альт ,например.
но самый прикол в том,что тпшит просто по координатам карты. а мне требуется немного другая механика. должно тпшить на расстояние в ту сторону,куда смотрит игрок (FacingAngle).
не могу понять ,как это реализовать.
прошу помочь

DeimoS
03.01.2017, 16:52
GetPlayerCameraFrontVector (http://wiki.sa-mp.com/wiki/GetPlayerCameraFrontVector)?

ziggi
03.01.2017, 17:01
Для более точного определения Z, лучше дополнить использованием MapAndreas.


stock PlayerBlink(playerid, Float:distance)
{
new
Float:x,
Float:y,
Float:z,
Float:angle;

GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);

GetCoordsInFront(x, y, angle, distance, x, y);
SetPlayerPos(playerid, x, y, z);
}


stock GetCoordsInFront(Float:x, Float:y, Float:a, Float:distance, &Float:res_x, &Float:res_y)
{
res_x = x + (distance * floatsin(-a, degrees));
res_y = y + (distance * floatcos(-a, degrees));
}

somebodies
03.01.2017, 17:39
Все заработало. спасибо большое.