Bsp:
new PCall[MAX_PLAYERS];
new AcceptP[MAX_PLAYERS];
ocmd:pannenruf_akzept(playerid,params[])
{
new pID
if(sscanf(params,"u",pID)) return SendClientMessage(playerid, color, "/pannenruf_akzept [ID / Name]");
if(PCall[pID] != 1) return SendClientMessage(playerid, color, "Der Spieler hat niemanden gerufen!");
if(AcceptP[playerid] != 999) return SendClientMessage(playerid, color, "Du hast bereits einen Auftrag");
PCall[pID] = 2;
AcceptP[playerid] = pID;
return 1;
}
Ich würde 2 Arrays machen, welche den jeweiligen Zustand mit den einzelnen Werten abfragt.
Wobei hier, PCall für den Spieler, der vorher gerufen hat steht, welches man zum Spam schutz,
und beim Logout verwenden kann (Damit der Mechaniker oder was weiß ich auch eine Nachricht kriegt, dass sein Kunde weg ist).
AcceptP übernimmt die pID, das heißt die ID von dem Kunden, welcher Hilfe braucht.
Dann setzten wir PCall für den Kunden auf 2, damit er sieht, dass ein Spieler unterwegs ist.
-> Nicht vergessen: Beim Login sollte AcceptP immer auf 999 gemacht werden! (Nicht auf 0, da es die playerid ja auch gibt).
L.G.
heyho
//edit:
new Float:Pos[3];
GetPlayerPos(anrufer,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid, Pos[0],Pos[1],Pos[2], 3.0);
Index größe von 2 auf 3 ändern