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

Урок №16 – Проверка игрока в зоне.

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

Devin Coleman

Проверка игрока в зоне.

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

функцию:

 

public IsPlayerInArea(playerID, Float:data[4])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerID, X, Y, Z);
if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) {
return 1;
}
return 1;
}
Также в начале скрипта ее нужно объявить. Так делается с любой новой автовызываемой

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

forward IsPlayerInArea(playerID, Float:data[4]);
Теперь мы можем ставить такие условия:

if(IsPlayerInArea(playerid,-36.5483,-57.9948,-17.2655,-49.2967))
{
}
Эту проверку можно поместить, например, внутри команды. Теперь о том, как правильно

получить все 4 координаты, указанные в скобках функции. Синтаксис условия такой:

if(IsPlayerInArea(playerid,Xmin,Ymin,Xmax,Ymax))
Итак, встаем в левый нижний угол создаваемой вами зоны, получаем координаты командой

save. Далее встаем в правый верхний угол и снова получаем координаты. Допустим, мы уже

получили вот такие координаты:

AddPlayerClass(0,2021.0109,1343.0779,10.8130,256.6816,0,0,0,0,0,0);
AddPlayerClass(0,2038.6593,1343.9640,10.3990,180.1545,0,0,0,0,0,0);
Нужные нам координаты, я выделил цветом, т.е. это все координаты X и Y. Берем из этих

координат минимальную X-координату - 2021.0109. Ставим ее первой в скобках, затем через

запятую минимальную Y-координату - 1343.0779. Дальше то же самое, но уже максимальные

координаты. Должно получиться так:

if(IsPlayerInArea(playerid, 2021.0109, 1343.0779, 2038.6593, 1343.9640))
Вот в принципе и все!

 

Автор Cloud

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


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

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

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

×

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

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