Как сделать команду,чтобы она работала на определенных координатах.
к forward
Код
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
новый паблик в конце мода
Код
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;
}
После того,как мы создали новый паблик,Мы получили новую функцию в моде.
Теперь Мы используем её.
Создадим новую команду в паблике OnPlayerCommandText
Код
if(!strcmp(cmdtext, "/Text", true))
{
{
if(!PlayerToPoint(3.0,playerid,1911.0028,-1776.5432,13.3828)) //Тут у нас координаты,на которых будет действовать данная команда.
{
SendClientMessage(playerid, COLOR_GREY, "Вы не в том месте,где надо!!");
return 1;
}
ShowPlayerDialog(playerid,17,DIALOG_STYLE_LIST,"{68ff00}Окно ","Добро пожаловать в это место!","Ок","Отмена");
}
return 1;
}
Эту функцию использовать очень легко,Тоесть,если вы хотите сделать команду,чтобы она работала в определённом место,то используйте эту проверку в команде:
Код
if(!PlayerToPoint(3.0,playerid,1911.0028,-1776.5432,13.3828))
{
SendClientMessage(playerid, COLOR_GREY, "Выйдет сообщение,если Игрок не в том месте!");
return 1;
}