Перейти к содержанию
Авторизация  
Devin Coleman

Урок №18 – Проверка игрока в радиусе

Рекомендуемые сообщения

Devin Coleman

Чтобы проверить игрока в радиусе, нам нужно написать в любом месте скрипта такую

функцию:

public 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;
}
Также в начале скрипта ее нужно объявить. Так делается с любой новой автовызываемой

функцией. У каждой новой автовызываемой функции обязательно должен быть свой forward.

forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
В отличие от проверки в зоне или кубе тут достаточно получить 1 раз координату и

вручную вписать радиус. Написав автовызываемую функцию PlayerToPoint мы можем ставить

такие условия:

if(PlayerToPoint(3.0,playerid, 72.1256, 1544.2145, 15.7742))
{
}
Эту проверку можно поместить, например, внутри команды.

Вот в принципе и все!

 

Автор Cloud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.