IsPlayerInAnyVehicle

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Проверяет игрока на нахождение в любом транспортном средстве.

Параметры:

(playerid)
playerid ID игрока.


Возвращаемое значение:

1, если игрок находится в каком-либо т/с (за рулём или на пассажирском месте), иначе 0.

Info rhombus.png
Примечание
Использование данной функции имеет смысл, когда нужно только проверить факт нахождения игрока в транспорте. Если же с этим транспортом планируется совершить ещё какие-то действия, лучше узнать его ID заранее с помощью функции GetPlayerVehicleID() и отказаться от использования IsPlayerInAnyVehicle().

Плохой пример:

if (IsPlayerInAnyVehicle(playerid))
{
    new vehid = GetPlayerVehicleID(playerid);
    // ...
}

Хороший пример:

new vehid = GetPlayerVehicleID(playerid);
// Если игрок не находится в транспорте, GetPlayerVehicleID() возвращает ID 0.
// Проверка переменной на равенство нулю происходит гораздо быстрее, чем вызов
// функции, поэтому нет смысла лишний раз вызывать IsPlayerInAnyVehicle().
if (vehid != 0)
{
    // ...
}


Пример использования:

CMD:leap(playerid, params[])
{
    // Проверим игрока на нахождение в какой-либо машине.
    if (IsPlayerInAnyVehicle(playerid))
        return SendClientMessage(playerid, -1, "Сначала выйдите из машины!");

    // Сделаем так, чтобы игрок прыгнул вперёд.
    // Для начала рассчитаем скорости по осям X и Y относительно угла поворота игрока.
    const Float:velocity = 0.25;
    new Float:angle;
    GetPlayerFacingAngle(playerid, angle);
    new Float:vx = velocity * -floatcos(angle - 90.0, degrees);
    new Float:vy = velocity * -floatsin(angle - 90.0, degrees);
    // Теперь подбросим игрока.
    return SetPlayerVelocity(playerid, vx, vy, 0.24);
}


См. также: