Думаю, почти все видели на некоторых серверах при телепорте проверку координат, тоесть если игрок не удержит текущую позицию несколько минут, он не сможет никуда телепортироватся. Данная функция позволяет провести такую проверку.
Функция возвращает 0, если позиция не была удержана и 1, если игрок удержал позицию.
Вот сама функция
Код
stock CheckPlayerCoords(playerid,Float:fx,Float:fy,Float:fz)
{
new Float:x,Float:y,Float:z,Integer:check;
GetPlayerPos(playerid,Float:fx,Float:fy,Float:fz);
for(new i=0;i<10;i++;)//Небольшой таймер
{
GetPlayerPos(playerid,Float:x,Float:y,Float:z);
}
if(GetPlayerPos(playerid,Float:fx,Float:fy,Float:fz) != GetPlayerPos(playerid,Float:x,Float:y,Float:z)) check=0;
else check=1;
return check;
}
Небольшой пример использования:
Код
if(CheckPlayerCoords(playerid,Float:fx,Float:fy,Float:fz) != 1) return SendClientMessage(playerid,0xFF0000FF,"Позиция не была удержана, вы не будете телепортированы.");
else return SendClientMessage(playerid,0x00FF00FF,"Позиция успешно удержана, ждите телепорта."),SetPlayerPos(playerid,0.0,0.0,0.0), SetPlayerFacingAngle(playerid,90.0);
Автор: [S]ilverbac[k].
О всех багах функции прошу писать в данной теме!