IsPlayerInAnyVehicle
Материал из Pro-Pawn Wiki
Описание:
Проверяет игрока на нахождение в любом транспортном средстве.
Параметры:
(playerid) |
playerid | ID игрока. |
Возвращаемое значение:
1
, если игрок находится в каком-либо т/с (за рулём или на пассажирском месте), иначе 0
.
Примечание |
Использование данной функции имеет смысл, когда нужно только проверить факт нахождения игрока в транспорте. Если же с этим транспортом планируется совершить ещё какие-то действия, лучше узнать его 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);
}
{
// Проверим игрока на нахождение в какой-либо машине.
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);
}
См. также: