Itt szokás időzítőt (timer) alkalmazni, mert másképpen nem lehet ezeket a funkciókat használni. Röviden annyit csinál az időzítő, hogy x ezredmásodpercenként meghívja önmagát. A pawno-s timer futhat a végtelenségig (nem fog magától leállni) vagy egyszer fut le.

//Mód tetejére rakd
forward Idozito();

//Ez meg ami meghívja, hogy folyamatosan fusson, rakd a OnGameModeInit() public-ba
SetTimer("Idozito",1000,1); //1mp-enként leellenőrzi hogy melyik játékos hol van éppen

//Ez lesz az időzítőnk
public Idozito()
{
for (new i = 0; i < MAX_PLAYERS; i++)
if (IsPlayerConnected(i)) EllenorzoEljaras(i);
}

//Ez azért van külön, hogy kényelmesebben lehessen kezelni az ellenőrzéseket
stock EllenorzoEljaras(playerid)
{

if (IsPlayerAtPoint(playerid,-1459.9733,-273.9025,13.7175,2.5))
{
//Parancsok...
}

if (IsPlayerAtArea(playerid,-1465.9733,-290.9025,-1410.9733,-220.9025,10.7175,16.7175,2.5))
{
//Parancsok...
}

}

//Két eljárás ami jól jöhet
stock IsPlayerAtPoint(playerid,Float:x, Float:y, Float:z, Float:radius)
{
new Float:pX, Float: pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
if (pX+radius >= x && pX-radius <= x && pY+radius >= y && pY-radius <= y && pZ+radius >= z && pZ-radius <= z)
{
return 1;
}
return 0;
}

stock IsPlayerAtArea(playerid,Float:minx, Float:maxx, Float:miny, Float:maxy, Float:minz, Float:maxz)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
if (X >= minx && X <= maxx && Y >= miny && Y <= maxy && Z >= minz && Z <= maxz)
{
return 1;
}
return 0;
}
Free Web Hosting