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

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

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

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

Мануал Проверка игрока в радиусе

Статус
В этой теме нельзя размещать новые ответы.

' felipe

Умник
Чтобы проверить игрока в радиусе, нам нужно написать в любом месте скрипта/мода такую функцию:
PHP:
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz <
radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
В отличие от проверки в зоне или кубе тут достаточно получить 1 раз координаты и вручную
вписать радиус. Написав автовызываемую функцию PlayerToPoint, мы можем ставить такие условия:
PHP:
 if(PlayerToPoint(3.0,playerid, 72.1256, 1544.2145, 15.7742))
Эту проверку можно поместить, например, внутри команды. Но в целях оптимизации
рекомендуют использовать стандартную функцию под названием IsPlayerInRangeOfPoint, это аналог
данной функции, в котором только первый и второй параметры переставлены местами. Синтаксис
функции такой:
PHP:
IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z);
Соответственно проверка при использовании данной функции выглядела бы таким образом:
PHP:
 if(IsPlayerInRangeOfPoint(playerid, 3.0, 72.1256, 1544.2145, 15.7742))
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу