Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Получение координат за/перед/справа/слева от игрока

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);
}
 

Вложения

Последнее редактирование:
Сверху Снизу