Hallo,
Ich habe ein kleines "Renn"-System oder zumindest etwas ähnliches. Dabei möchte ich, dass automatisch der erste freie Checkpoint (eine Art Position belegt, dann nächste Position) als nächster ausgewählt wird. Das klappt auch in 2 Fällen, aber beim dritten Fall klappt es nicht.
position[id] = "lv"; // id = GetPlayerVehicleID(playerid)
if(gatebelegt[5] == false)
{
SetPlayerRaceCheckpoint(playerid, 1, checkpoint[8][0], checkpoint[8][1], checkpoint[8][2], checkpoint[8][0], checkpoint[8][1], checkpoint[8][2], 15);
cp[playerid] = 2;
gate[id] = 5;
gatebelegt[5] = true;
}
else if(gatebelegt[5] == true && gatebelegt[6] == false)
{
SetPlayerRaceCheckpoint(playerid, 1, checkpoint[9][0], checkpoint[8][1], checkpoint[9][2], checkpoint[9][0], checkpoint[9][1], checkpoint[1][2], 15);
cp[playerid] = 2;
gate[id] = 6;
gatebelegt[6] = true;
}
else if(gatebelegt[6] == true)
{
SetPlayerRaceCheckpoint(playerid, 1, checkpoint[10][0], checkpoint[10][1], checkpoint[10][2], checkpoint[10][0], checkpoint[10][1], checkpoint[10][2], 15);
cp[playerid] = 2;
gate[id] = 7;
gatebelegt[7] = true;
}
// Das hier ist die Funktion zum Starten der Checkpoints:
case 3:
{
if(gatebelegt[5] == true && gatebelegt[6] == true && gatebelegt[7] == true) return SendClientMessage(playerid, COLOR_RED, "Alle Positionen belegt.");
ziel[playerid] = 3;
ImRennen[playerid] = true;
cp[playerid] = 1;
SetPlayerRaceCheckpoint(playerid, 0, checkpoint[7][0], checkpoint[7][1], checkpoint[7][2], checkpoint[8][0], checkpoint[8][1], checkpoint[8][2], 30);
}
Das ist bei OnPlayerLeaveRaceCheckpoint. Wie gesagt, das ist der 3. Fall. (die anderen beiden laufen genauso, funktionieren aber. Hier wird jedesmal Checkpoint[8] angezeigt. Ich verstehe aber nicht, wieso.
Mit freundlichen Grüßen
Padarom