Четверг, 17.07.2025, 18:34
Приветствую Вас Гость | RSS
[•X•X•X•X•X•X•X•X•X• SRK •X•X•X•X•X•X•X•X•X•] - 193.107.179.214:7777
Главная | Урок №16 Проверка игрока в зоне - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DimanCC, Awesome, [Tuner_Life]Nikotin  
Урок №16 Проверка игрока в зоне
AwesomeДата: Суббота, 25.02.2012, 05:47 | Сообщение # 1
Генерал-майор
Группа: Проверенные
Сообщений: 70
Награды: 14
Репутация: 25
Статус: Offline
Проверка игрока в зоне.
Чтобы проверить игрока в зоне, нам нужно написать в любом месте скрипта такую
функцию:

Code
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.
Code
forward IsPlayerInArea(playerID, Float:data[4]);

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


Эту проверку можно поместить, например, внутри команды. Теперь о том, как правильно
получить все 4 координаты, указанные в скобках функции. Синтаксис условия такой:
Code
if(IsPlayerInArea(playerid,Xmin,Ymin,Xmax,Ymax))


Итак, встаем в левый нижний угол создаваемой вами зоны, получаем координаты командой
save. Далее встаем в правый верхний угол и снова получаем координаты. Допустим, мы уже
получили вот такие координаты:
Code
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. Дальше то же самое, но уже максимальные
координаты. Должно получиться так:
Code
if(IsPlayerInArea(playerid, 2021.0109, 1343.0779, 2038.6593, 1343.9640))


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




я вернулся
 
  • Страница 1 из 1
  • 1
Поиск:

Поддержка пишите на наш форум:Walter & alisa