Четверг, 17.07.2025, 18: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
Главная | Урок №17 Проверка игрока в кубе - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DimanCC, Awesome, [Tuner_Life]Nikotin  
Урок №17 Проверка игрока в кубе
AwesomeДата: Воскресенье, 26.02.2012, 18:46 | Сообщение # 1
Генерал-майор
Группа: Проверенные
Сообщений: 70
Награды: 14
Репутация: 25
Статус: Offline
Чтобы проверить игрока в кубе, нам нужно написать в любом месте скрипта такую
функцию:
Code
public IsPlayerInCube(playerid, Float:xmin, Float:ymin, Float:zmin, Float:xmax, Float:ymax, Float:zmax)   
{   
new Float:x, Float:y, Float:z;   
GetPlayerPos(playerid, x, y, z);   
if(x > xmin && y > ymin && z > zmin && x < xmax && y < ymax && z < zmax)return 1;   
return 0;   
}


Также в начале скрипта ее нужно объявить. Так делается с любой новой автовызываемой
функцией. У каждой новой автовызываемой функции обязательно должен быть свой forward.
Code
forward IsPlayerInCube(playerid, Float:xmin, Float:ymin, Float:zmin, Float:xmax, Float:ymax, Float:zmax);


Теперь мы можем ставить такие условия:
Code
if(IsPlayerInCube(playerid, 72.1256, 1544.2145, 15.7742, 75.2350, 1546.3352, 16.4206))   
{   
}


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


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


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



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

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