Egyszerre csak egy CP-t láthat a játékos,szóval ha arra gondolsz hogy 4 CP-t lát egyszerre az nem megoldható.
A megkülönböztetést leírtam:
public OnPlayerEnterCheckpoint(playerid)
{
switch(gPlayerCPStatus[playerid]) //Létrehozunk egy elágazást,
{
case 0: return 1; //Ha nem írt be parancsot,nem csinálunk semmit.
case 1:
{
//Pénz levonás,egyes kapu kinyitása
}
case 2:
{
//Pénz levonás,2es kapu kinyitása
}
case 3:
{
//Pénz levonás,3as kapu kinyitása
}
case 4:
{
//Pénz levonás,4es kapu kinyitása
}
}
DisablePlayerCheckpoint(playerid);//Eltüntetjük neki az ellenörzõpontot.
gPlayerCPStatus[playerid] = 0;//Nullára állítjuk a változó értékét.
return 1;
}
A CP megjelenítést pedig valahogyan így lehet megoldani:
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) //CP1
{
gPlayerCPStatus[playerid] = 1;
SetPlayerCheckpoint(playerid, x, y, z, 5.0);
}
if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))//CP2
{
gPlayerCPStatus[playerid] = 2;
SetPlayerCheckpoint(playerid, x, y, z, 5.0);
}
if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))//CP3
{
gPlayerCPStatus[playerid] = 3;
SetPlayerCheckpoint(playerid, x, y, z, 5.0);
}
if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))//CP4
{
gPlayerCPStatus[playerid] = 4;
SetPlayerCheckpoint(playerid, x, y, z, 5.0);
}
return 1;
}
X Y Z koordinátákat helyettesítsd be.