HILFE bei Race Checkpoint

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 heute mir das tutorial für die race Checkpoints angekuckt und habe es geschaft.
    So jetzt wollte ich 2 weiter Strecken dabei packen mit 2 andren befehlen aber dann spackt alles rum ^^
    Ich kann zawar durschfahren aber der 1 verschwindet nicht und das genau gleiche bei der 3 strecke.
    bei der 1 geht alles 100% mhh kann mir einer helfen ihr ist mal mein code von der Gamemode.


    #define MAX_RACE_POINTSA 17
    #define MAX_RACE_POINTSB 17
    #define MAX_RACE_POINTSC 17


    new MachtArbeitA[MAX_PLAYERS];
    new MachtArbeitB[MAX_PLAYERS];
    new MachtArbeitC[MAX_PLAYERS];
    new CheckpointStatusA[MAX_PLAYERS];
    new CheckpointStatusB[MAX_PLAYERS];
    new CheckpointStatusC[MAX_PLAYERS];


    new Float:buschecka[MAX_RACE_POINTSA][3] = {
    {1182.0342, -1734.7896, 12.9615}, //Linie 1-1
    {1277.1027, -1714.2407, 12.9446}, //Linie 1-2
    {1489.2850, -1734.7723, 12.9545}, //Linie 1-3
    {1805.7523, -1735.3319, 12.9574}, //Linie 1-4
    {1819.2798, -1875.3885, 12.9839}, //Linie 1-5
    {2056.5996, -1940.1371, 12.9122}, //Linie 1-6
    {2115.4287, -1400.2982, 23.3906}, //Linie 1-7
    {2306.2002, -1313.7911, 23.3939}, //Linie 1-8
    {2158.1003, -1115.0045, 24.9318}, //Linie 1-9
    {1824.7280, -1178.1555, 23.2007}, //Linie 1-10
    {1460.3375, -1031.4832, 23.2164}, //Linie 1-11
    {1175.6552, -938.2986, 42.3738}, //Linie 1-12
    {518.1565, -1256.4653, 15.6491}, //Linie 1-13
    {527.4529, -1507.5858, 13.9531}, //Linie 1-14
    {872.2324, -1787.8326, 13.2159}, //Linie 1-15
    {1182.0934, -1832.5228, 12.9778}, //Linie 1-16
    {1182.0934, -1832.5228, 12.9778}
    };
    new Float:buscheckb[MAX_RACE_POINTSB][3] = {
    {1181.8596, -1735.4093, 12.9677}, //Linie 2-1
    {721.5611, -1753.8352, 13.9930}, //Linie 2-2
    {107.8725, -1530.5292, 6.1006}, //Linie 2-3
    {-108.1544, -1160.3534, 1.7963}, //Linie 2-4
    {-1801.1699, -574.9293, 15.6090}, //Linie 2-5
    {-2251.5098, -327.0618, 50.4386}, //Linie 2-6
    {-2061.3191, -72.5554, 34.7359}, //Linie 2-7
    {-1991.5287, 149.5185, 27.1109}, //Linie 2-8
    {-1998.8617, 586.1841, 34.5875}, //Linie 2-9
    {-1627.8982, 728.5603, 14.0254}, //Linie 2-10
    {-1627.8982, 728.5603, 14.0254}, //Linie 2-11
    {-1662.6156, 395.2200, 6.5930}, //Linie 2-12
    {-1802.7261, -314.9729, 24.3445}, //Linie 2-13
    {-1801.6030, -584.1558, 15.5852},//Linie 2-14
    {-116.2949, -1164.6552, 2.1462}, //Linie 2-15
    {380.2866, -1718.3601, 7.0727}, //Linie 2-16
    {872.1151, -1787.5747, 13.2153} //Linie 2-17
    };
    new Float:buscheckc[MAX_RACE_POINTSC][3] = {
    {1181.6285, -1735.0781, 12.9600}, //Linie 3-1
    {1277.0609, -1714.4529, 12.9439}, //Linie 3-2
    {1319.8336, -1536.6691, 12.9450}, //Linie 3-3
    {1367.9175, -1079.5706, 24.6685}, //Linie 3-4
    {1545.8483, -995.1221, 43.0945}, //Linie 3-5
    {1680.3718, -298.7335, 44.4356}, //Linie 3-6
    {1834.3010, 831.3017, 9.6854}, //Linie 3-7
    {2069.0654, 892.3493, 7.1055}, //Linie 3-8
    {2069.9985, 1353.9974, 10.2297}, //Linie 3-9
    {2039.4832, 1321.7142, 10.2320}, //Linie 3-10
    {2045.5692, 869.6846, 6.4456}, //Linie 3-11
    {1782.8911, 764.5721, 11.7469}, //Linie 3-12
    {1657.8313, -287.6163, 39.3377}, //Linie 3-13
    {1603.1088, -878.2926, 53.6561}, //Linie 3-14
    {1352.0442, -1017.9941, 26.1473}, //Linie 3-15
    {1295.1267, -1827.7804, 12.9462}, //Linie 3-16
    {1181.7307, -1831.7385, 12.9643} //Linie 3-17
    };


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid)) // Bedeutet, dass die Fukntion nur dann funk. ,wennn man in einem fahrzeug sitzt.
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Model ID 408, bedeutet, dass das ganze,was unten geschicet nur dann geht, wenn man im Model 408 drinne sitzt.
    {
    if(MachtArbeitA[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
    {
    CheckpointStatusA[playerid]++; // Hier werden die Checkpoints aufgezählt.
    new letzerpunktA = MAX_RACE_POINTSA; // Wichtig. Hier wird der letze Checkpoint definiert.
    if(CheckpointStatusA[playerid] < letzerpunktA) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,buschecka[CheckpointStatusA[playerid]][0],buschecka[CheckpointStatusA[playerid]][1],buschecka[CheckpointStatusA[playerid]][2],buschecka[CheckpointStatusA[playerid]+1][0],buschecka[CheckpointStatusA[playerid]+1][1],buschecka[CheckpointStatusA[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(CheckpointStatusA[playerid] == letzerpunktA)
    { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeitA[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatusA[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    }
    return 1;
    }
    if (IsPlayerInAnyVehicle(playerid)) // Bedeutet, dass die Fukntion nur dann funk. ,wennn man in einem fahrzeug sitzt.
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Model ID 408, bedeutet, dass das ganze,was unten geschicet nur dann geht, wenn man im Model 408 drinne sitzt.
    {
    if(MachtArbeitB[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
    {
    CheckpointStatusB[playerid]++; // Hier werden die Checkpoints aufgezählt.
    new letzerpunktB = MAX_RACE_POINTSB; // Wichtig. Hier wird der letze Checkpoint definiert.
    if(CheckpointStatusB[playerid] < letzerpunktB) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,buscheckb[CheckpointStatusB[playerid]][0],buscheckb[CheckpointStatusB[playerid]][1],buscheckb[CheckpointStatusB[playerid]][2],buscheckb[CheckpointStatusB[playerid]+1][0],buscheckb[CheckpointStatusB[playerid]+1][1],buscheckb[CheckpointStatusB[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(CheckpointStatusB[playerid] == letzerpunktB)
    { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeitB[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatusB[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    }
    return 1;
    }
    if (IsPlayerInAnyVehicle(playerid)) // Bedeutet, dass die Fukntion nur dann funk. ,wennn man in einem fahrzeug sitzt.
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Model ID 408, bedeutet, dass das ganze,was unten geschicet nur dann geht, wenn man im Model 408 drinne sitzt.
    {
    if(MachtArbeitC[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
    {
    CheckpointStatusC[playerid]++; // Hier werden die Checkpoints aufgezählt.
    new letzerpunktC = MAX_RACE_POINTSC; // Wichtig. Hier wird der letze Checkpoint definiert.
    if(CheckpointStatusC[playerid] < letzerpunktC) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,buscheckc[CheckpointStatusC[playerid]][0],buscheckc[CheckpointStatusC[playerid]][1],buscheckc[CheckpointStatusC[playerid]][2],buscheckc[CheckpointStatusC[playerid]+1][0],buscheckc[CheckpointStatusC[playerid]+1][1],buscheckc[CheckpointStatusC[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(CheckpointStatusC[playerid] == letzerpunktC)
    { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeitC[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatusC[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    }
    return 1;
    }


    2 Teil folgt

  • ich pushe mal ich hoffe ich darf das da er sonst 544534 min warten muss bis er den 2 teil posten kann. so kann er ihn jetz schon posten.



    *Mods bitte sobald teil 2 steht mein beitrag hier löschen.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • ZWEITER TEIL
    if(strcmp(cmd,"/linie1", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid)) // Der CMD funkt nur dann, wenn man in einem Fahrzeug drinne sitzt.
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Der CMD funkt. nur dann, wenn man in einem Fahrzug drinne sitzt und es ein bestimmes Model ist.
    {
    MachtArbeitA[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    SetPlayerRaceCheckpoint(playerid,0,buschecka[0][0],buschecka[0][1],buschecka[0][2],buschecka[1][0],buschecka[1][1],buschecka[1][2],3.0);
    }
    return 1;
    }
    return 0;
    }
    if(strcmp(cmd,"/linie2", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid)) // Der CMD funkt nur dann, wenn man in einem Fahrzeug drinne sitzt.
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Der CMD funkt. nur dann, wenn man in einem Fahrzug drinne sitzt und es ein bestimmes Model ist.
    {
    MachtArbeitB[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    SetPlayerRaceCheckpoint(playerid,0,buscheckb[0][0],buscheckb[0][1],buscheckb[0][2],buscheckb[1][0],buscheckb[1][1],buscheckb[1][2],3.0);
    }
    return 1;
    }
    return 0;
    }
    if(strcmp(cmd,"/linie3", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid)) // Der CMD funkt nur dann, wenn man in einem Fahrzeug drinne sitzt.
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Der CMD funkt. nur dann, wenn man in einem Fahrzug drinne sitzt und es ein bestimmes Model ist.
    {
    MachtArbeitC[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    SetPlayerRaceCheckpoint(playerid,0,buscheckc[0][0],buscheckc[0][1],buscheckc[0][2],buscheckc[1][0],buscheckc[1][1],buscheckc[1][2],3.0);
    }
    return 1;
    }
    return 0;
    }



    So das wars ^^


    Danke an dich DogZone ^^


    So wie mann sieht ist alles fast gleich bis auf die kords oben aber warum kommt dann so ein fehler ?

  • Würde mal tippen,es funktioniert nicht wegen dem return 1; das immer nach if (IsPlayerInAnyVehicle(playerid)) und if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437).Es müsste aber trotzdem führ TourA funktionieren :\
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437) // Model ID 408, bedeutet, dass das ganze,was unten geschicet nur dann geht, wenn man im Model 408 drinne sitzt.
    {
    if(MachtArbeitA[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
    {
    CheckpointStatusA[playerid]++; // Hier werden die Checkpoints aufgezählt.
    if(CheckpointStatusA[playerid] < MAX_RACE_POINTSA) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,buschecka[CheckpointStatusA[playerid]][0],buschecka[CheckpointStatusA[playerid]][1],buschecka[CheckpointStatusA[playerid]][2],buschecka[CheckpointStatusA[playerid]+1][0],buschecka[CheckpointStatusA[playerid]+1][1],buschecka[CheckpointStatusA[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);
    else
    { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeitA[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatusA[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    else if(MachtArbeitB[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
    {
    CheckpointStatusB[playerid]++; // Hier werden die Checkpoints aufgezählt.
    if(CheckpointStatusB[playerid] < MAX_RACE_POINTSB) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,buscheckb[CheckpointStatusB[playerid]][0],buscheckb[CheckpointStatusB[playerid]][1],buscheckb[CheckpointStatusB[playerid]][2],buscheckb[CheckpointStatusB[playerid]+1][0],buscheckb[CheckpointStatusB[playerid]+1][1],buscheckb[CheckpointStatusB[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);
    else
    { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeitB[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatusB[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    else if(MachtArbeitC[playerid] == 1) // Dies passiert nur dann, wenn man /mission geschieben hat.
    {
    CheckpointStatusC[playerid]++; // Hier werden die Checkpoints aufgezählt.
    if(CheckpointStatusC[playerid] < MAX_RACE_POINTSC) // Ist der checkpoint Status kleiner als die maximale Anzahl der Checkpoints, bedeutet dieser Code.
    {
    DisablePlayerRaceCheckpoint(playerid); // Beendet den Checkpoint
    SetPlayerRaceCheckpoint(playerid,0,buscheckc[CheckpointStatusC[playerid]][0],buscheckc[CheckpointStatusC[playerid]][1],buscheckc[CheckpointStatusC[playerid]][2],buscheckc[CheckpointStatusC[playerid]+1][0],buscheckc[CheckpointStatusC[playerid]+1][1],buscheckc[CheckpointStatusC[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);
    else
    { // Wenn der Checkpoint STatus die maximale Anzahl erreich hat. Passiert folgendes:
    MachtArbeitC[playerid]= 0; // Hier wird die Mission beendet.
    CheckpointStatusC[playerid] = 0; // Hier wird definiert, dass, der Checkpoint Status bei Null liegt.
    DisablePlayerRaceCheckpoint(playerid); // Damit wird der Race Checkpoint beendet.
    }
    }
    }
    return 1;
    }


    //Edit:
    Hab es ebend getestet,funktioniert bei mir einwandfrei 0o.

    Einmal editiert, zuletzt von Goldkiller ()