Четверг, 17.07.2025, 22:01
Приветствую Вас Гость | 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
Главная | Урок №18 Проверка игрока в радиусе - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DimanCC, Awesome, [Tuner_Life]Nikotin  
Урок №18 Проверка игрока в радиусе
AwesomeДата: Воскресенье, 26.02.2012, 18:50 | Сообщение # 1
Генерал-майор
Группа: Проверенные
Сообщений: 70
Награды: 14
Репутация: 25
Статус: Offline
Чтобы проверить игрока в радиусе, нам нужно написать в любом месте скрипта такую
функцию:
Code
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.
Code
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


В отличие от проверки в зоне или кубе тут достаточно получить 1 раз координату и
вручную вписать радиус. Написав автовызываемую функцию PlayerToPoint мы можем ставить
такие условия:
Code
if(PlayerToPoint(3.0,playerid, 72.1256, 1544.2145, 15.7742))   
{   
}


Эту проверку можно поместить, например, внутри команды.
Вот в принципе и все!



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

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