Race Checkpoint lösen sich nicht auf ?!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    Ich habe das Problem das sich die Race Checkpoint nicht auflösen wenn man durch fährt, wie mache ich es das der Checkpoint durch den man fährt aufgelöst wird und der nächste erstellt wird ?


    //Race checkpoints
    new MachtArbeit[MAX_PLAYERS];
    new CheckpointStatus[MAX_PLAYERS];
    #define MAX_RACE_POINTS 17
    new Float:racecheckpoints[MAX_RACE_POINTS][3] = {
    {1656.829956, -1166.398437, 23.617559}, // 1
    {1707.867675, -1206.746826, 20.976793}, // 2
    {1783.874511, -1286.020629, 13.275278}, // 3
    {1859.596069, -1219.198364, 18.736469}, //
    {1892.303710, -1127.870849, 24.013429}, // 5
    {1907.985717, -1127.944580, 24.407924},
    {1921.429077, -1127.915771, 24.743091},
    {1957.571533, -1128.151611, 25.638833},
    {1997.838745, -1128.968505, 25.293878},
    {2029.990234, -1128.175903, 24.385658},
    {2077.569824, -1122.709838, 23.775880},
    {2079.989990, -1148.917846, 23.618659},
    {2077.754882, -1167.527221, 23.524724},
    {2077.924560, -1184.147338, 23.527599},
    {2078.348388, -1203.702514, 23.650722},
    {2089.319580, -1228.770019, 23.709350},
    {1728.458129, -1055.661743, 23.505249}
    };


    Befehl:




    if(strcmp(cmdtext,"/mission", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    { // Der CMD funkt nur dann, wenn man in einem Fahrzeug drinne sitzt.
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 411) // Der CMD funkt. nur dann, wenn man in einem Fahrzug drinne sitzt und es ein bestimmes Model ist.
    {
    MachtArbeit[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],3.0);
    }
    }
    return 1;
    }


    Und der Public:





    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid)) // Bedeutet, dass die Fukntion nur dann funk. ,wennn man in einem fahrzeug sitzt.
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 408)
    {
    if(MachtArbeit[playerid] == 1)
    {
    CheckpointStatus[playerid]++; // Hier werden die Checkpoints aufgezählt.
    new letzerpunkt = MAX_RACE_POINTS; // Wichtig. Hier wird der letze Checkpoint definiert.
    if(CheckpointStatus[playerid] < letzerpunkt)
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
    }
    // Bedeutung: SetPlayerRaceCheckpoint(playerid, Checkpointtype, X[CheckpointSTatus], Y[CheckpointStatus], Z[CheckpointStatus], NächsterX[Nächster CheckpointSTatus],NächsterY[Nächster CheckpointSTatus],NächsterZ[Nächster CheckpointSTatus], size);
    if(CheckpointStatus[playerid] == letzerpunkt){ // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeit[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatus[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    }
    }
    return 1;
    }