Всё о сервере, форум!
Основы программирования
ИНФОРМАЦИОННО-РАЗВЛЕКАТЕЛЬНЫЙ ПОРТАЛ

PrR[ Проект SAMP - Romashka [0.3e] ™18+™

Pawn :: Основы скриптинга
Проверка расстояния между игроками

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

Для организации проверки в начало скрипта мы добавляем следующую строку, которая объявит новую автовызываемую функцию, которая будет отвечать за проверку на расстояние между игроками.

1 forward ProxDetectorS(Float:radi, playerid, targetid);

Теперь в любом месте вашего скрипта добавляем эту функцию.

public ProxDetectorS(Float:radi, playerid, targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
GetPlayerPos(targetid, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz <
radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}


Сначала проверяем, подключены ли к серверу оба  игрока.
Затем мы получаем координаты обоих игроков функцией GetPlayerPos.
Далее вычитаем X-координату игрока передающего деньги, от X-координаты получающего деньги и записываем результат в переменную tempposx, то же самое делаем и с остальными координатами.
Теперь, когда у вас уже готов этот скрипт, можно ставить такие условия:

if (ProxDetectorS(5.0, playerid, giveplayerid))
{
//Тут должен быть код передачи денег или другой код
}
else
{
SendClientMessage(playerid, COLOR_RED, "Вы находитесь далеко от цели");
}


      Также в OnPlayerCommandText в начале должна быть объявлена переменная giveplayerid, которая используется в этой проверке.




Логин: Пароль:
Забыли пароль?Регистрация
При копировании материала с сайта активная ссылка обязательна!
Сайт управляется SiNG cms © 2010-2015