OnPlayerEnterCheckpoint Problem

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
  • So, nun hab ich ein Jobsystem mit insgesamt 2 Jobs auf die dynamische Weise erstellt... und es funktioniert nicht.


    Folgedes Problem, ich gehe von einer Art "ID Überschreitungen" aus, weiß aber keine Lösung. Ich habe 2 Jobs, wenn ich einen davon starte zeigt der mir die falschen Checkpoints und den falschen Text (der Text, der eig. beim anderen Job kommen sollte) an.


    So sieht's aus:


    new Checkpoint1[MAX_PLAYERS];
    new Checkpoint2[MAX_PLAYERS];


    enum job_1 {
    Float:X,
    Float:Y,
    Float:Z,
    Float:Rad
    }


    enum job_2 {
    Float:X,
    Float:Y,
    Float:Z,
    Float:Rad
    }


    new Muellabfuhr_Stationen[][job_1] = {
    {2356.7480,-1753.2466,14.0043, 5.0},
    {2468.4392,-1736.9575,14.0044, 5.0},
    {2492.4402,-1683.0251,13.9469, 5.0},
    {2483.2607,-1654.7614,13.8996, 5.0},
    {2411.7537,-1653.9558,13.9673, 5.0},
    {2363.8208,-1654.5842,14.0030, 5.0},
    {2323.2871,-1654.7487,14.3918, 5.0},
    {2337.4602,-1695.1283,13.9723, 5.0},
    {2309.7393,-1727.6522,13.9984, 5.0},
    {2185.8481,-1976.9807,14.1186, 5.0}


    };


    new Strassenfeger_Stationen[][job_2] = {
    {1562.1071,-1772.3701,13.2720, 5.0},
    {1533.2131,-1740.0784,13.2720, 5.0},
    {1471.7781,-1739.9257,13.2720, 5.0},
    {1402.1671,-1725.6589,13.2795, 5.0},
    {1421.7833,-1697.4537,13.2718, 5.0},
    {1421.7950,-1639.4755,13.2720, 5.0},
    {1437.6943,-1634.6935,13.2721, 5.0},
    {1438.2007,-1691.9915,13.2718, 5.0},
    {1398.7441,-1785.4689,13.2721, 5.0},
    {1521.6971,-1832.7549,13.2720, 5.0}


    };


    new vehicleid = GetPlayerVehicleID(playerid),


    model = GetVehicleModel(vehicleid);


    if(strcmp(cmdtext, "/start1", true) == 0)


    {


    if(model == 408)


    {


    Checkpoint1[playerid]=0;


    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Job gestartet. Du bist
    nun ein Müllmann. Hol den Müll ab und bring ihn zur Deponie.");


    SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[0][X],Muellabfuhr_Stationen[0][Y],Muellabfuhr_Stationen[0][Z],Muellabfuhr_Stationen[0][Rad]);


    return 1;


    }


    else


    {


    SendClientMessage(playerid, COLOR_RED,"Du bist nicht im Jobauto!");




    }


    }






    if(strcmp(cmdtext, "/start5", true) == 0)


    {


    {


    if(model == 574)


    {


    Checkpoint2[playerid]=0;


    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Job gestartet. Du bist nun Straßenfeger. Halte die Straßen sauber.");


    SetPlayerCheckpoint(playerid,Strassenfeger_Stationen[0][X],Strassenfeger_Stationen[0][Y],Strassenfeger_Stationen[0][Z],Strassenfeger_Stationen[0][Rad]);


    return 1;


    }


    else


    {


    SendClientMessage(playerid, COLOR_RED,"Du bist nicht im Jobauto!");


    return 1;


    }


    }


    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    new string[128];
    Checkpoint1[playerid]++;
    if(Checkpoint1[playerid]==sizeof(Muellabfuhr_Stationen)) {
    SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
    DisablePlayerCheckpoint(playerid);
    GivePlayerMoney(playerid, 250);
    SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$250)");
    }
    else
    {
    new trinkgeld = random(9);
    SendClientMessage(playerid, COLOR_RED, "Müll aufgeladen, weiter gehts.");
    format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
    GivePlayerMoney(playerid,trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[Checkpoint1[playerid]][X],Muellabfuhr_Stationen[Checkpoint1[playerid]][Y],Muellabfuhr_Stationen[Checkpoint1[playerid]][Z],Muellabfuhr_Stationen[Checkpoint1[playerid]][Rad]);
    return 1;
    }
    Checkpoint2[playerid]++;
    if(Checkpoint2[playerid]==sizeof(Strassenfeger_Stationen)) {
    SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
    DisablePlayerCheckpoint(playerid);
    GivePlayerMoney(playerid, 230);
    SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$230)");
    }
    else
    {
    new trinkgeld = random(9);
    SendClientMessage(playerid, COLOR_RED, "Abschnitt erfolgreich gesäubert, weiter gehts.");
    format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
    GivePlayerMoney(playerid,trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,Strassenfeger_Stationen[Checkpoint2[playerid]][X],Strassenfeger_Stationen[Checkpoint2[playerid]][Y],Strassenfeger_Stationen[Checkpoint2[playerid]][Z],Strassenfeger_Stationen[Checkpoint2[playerid]][Rad]);
    }
    return 1;
    }


    Ich hoffe mir kann da jemand helfen bzw. das für mich machen :S


    MfG

  • Einfach Abfragen ob er in Fahrzeug Model 408 (Job 1) o. Model 574 (Job 2) sitzt. Also wie folgt:
    public OnPlayerEnterCheckpoint(playerid)
    {
    new string[128];
    Checkpoint1[playerid]++;
    if(Checkpoint1[playerid]==sizeof(Muellabfuhr_Stationen)&&GetVehicleModel(GetPlayerVehicleID(playerid))==408)
    {
    SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
    DisablePlayerCheckpoint(playerid);
    GivePlayerMoney(playerid, 250);
    SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$250)");
    }
    else
    {
    new trinkgeld = random(9);
    SendClientMessage(playerid, COLOR_RED, "Müll aufgeladen, weiter gehts.");
    format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
    GivePlayerMoney(playerid,trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,Muellabfuhr_Stationen[Checkpoint1[playerid]][X],Muellabfuhr_Stationen[Checkpoint1[playerid]][Y],Muellabfuhr_Stationen[Checkpoint1[playerid]][Z],Muellabfuhr_Stationen[Checkpoint1[playerid]][Rad]);
    return 1;
    }
    Checkpoint2[playerid]++;
    if(Checkpoint2[playerid]==sizeof(Strassenfeger_Stationen)&&GetVehicleModel(GetPlayerVehicleID(playerid))==574)
    {
    SendClientMessage(playerid, COLOR_RED, "Job erfolgreich ausgeführt. Der Bürgermeister dankt dir, dass du hilfst, die Stadt sauberzuhalten.");
    DisablePlayerCheckpoint(playerid);
    GivePlayerMoney(playerid, 230);
    SendClientMessage(playerid, COLOR_RED, "Hier ist dein Gehalt. (+$230)");
    }
    else
    {
    new trinkgeld = random(9);
    SendClientMessage(playerid, COLOR_RED, "Abschnitt erfolgreich gesäubert, weiter gehts.");
    format(string, sizeof(string), "** Du hast $%d Trinkgeld bekommen. **",trinkgeld);
    GivePlayerMoney(playerid,trinkgeld);
    SendClientMessage(playerid, COLOR_GREEN, string);
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,Strassenfeger_Stationen[Checkpoint2[playerid]][X],Strassenfeger_Stationen[Checkpoint2[playerid]][Y],Strassenfeger_Stationen[Checkpoint2[playerid]][Z],Strassenfeger_Stationen[Checkpoint2[playerid]][Rad]);
    }
    return 1;
    }


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.