plakapenka
Специалист
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Пользовать так:
C++:
new Float: xx, Float: yy, Float: zz;
GetPlayerSidePos(playerid, SIDE_LEFT, xx, yy, zz, 1.0);
// где playerid - id Игрока от которого нужно вычислить координаты
// SIDE_LEFT - выбор стороны, ну т.е понятно Перед игроком/за/справа/слева
// x,y,z просто переменные в которые вы хотите получить вычисленные координаты
// 1.0 дистанция от игрока
// в итоге функция запишет в ваши x,y,z координаты которые нужны
C++:
enum
{
SIDE_LEFT,
SIDE_RIGHT,
SIDE_FRONT,
SIDE_BACK
}
stock GetPlayerSidePos(playerid, side, &Float:p_x, &Float:p_y, &Float:p_z, Float:distance)
{
new Float:p_ang;
GetPlayerFacingAngle(playerid, p_ang);
GetPlayerPos(playerid, p_x, p_y, p_z);
switch(side)
{
case SIDE_LEFT:
{
p_x += (distance * floatsin(-p_ang+270.0, degrees));
p_y += (distance * floatcos(-p_ang+270.0, degrees));
}
case SIDE_RIGHT:
{
p_x += (-distance * floatsin(-p_ang+270.0, degrees));
p_y += (-distance * floatcos(-p_ang+270.0, degrees));
}
case SIDE_FRONT:
{
p_x += (distance * floatsin(-p_ang, degrees));
p_y += (distance * floatcos(-p_ang, degrees));
}
case SIDE_BACK:
{
p_x += (-distance * floatsin(-p_ang, degrees));
p_y += (-distance * floatcos(-p_ang, degrees));
}
}
// CreateActor(50, p_x, p_y, p_z,p_ang);
}
Вложения
-
2.7 MB Просмотры: 86
Последнее редактирование:
