Problem mit Checkpoints

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 bekomme die Kriese.


    Ich probiere schon seit Minuten an diesem Problem rum aber ich bekomme es einfach nicht gelöst ...


    Also mein Problem ist das ich 2 Checkpoints habe erst beim 2. Checkpoint soll das Fahrzeug weggenommen werden das passiert aber schon beim 1. und wenn man im 1. Checkpoint ankommt soll eigentlich der 2. angezeigt werden was aber auch nicht der Fall ist.


    Hier die Codes:


    Oben definiert:


    new testjob[MAX_PLAYERS];


    In einem Dialog kann man dann den Job bzw die Route wählen dort ist folgender Code


    if(dialogid == DIALOG_ROUTE)
    {
    if(!response)return 1;
    {
    if(listitem==0)
    {
    testjob[playerid] = 1;
    SetPlayerCheckpoint(playerid,1191.5402,-923.7773,43.1096,10);
    }
    }
    return 1;
    }


    Hier wird der erste Checkpoint gesetzt das funktioniert auch nur wenn ich an diesem Checkpoint ankomme wird kein neuer CP gesetzt und das Vehicle wird mir entnommen was erst bei Checkpoint 2 der Fall sein sollte.


    OnPlayerEnterCheckpoint


    if(testjob[playerid] == 1)
    {
    DisablePlayerCheckpoint(playerid);
    testjob[playerid] = 2;
    SetPlayerCheckpoint(playerid,1465.9991,-1016.5866,25.7718,10);
    }
    if(testjob[playerid] == 2)
    {
    DisablePlayerCheckpoint(playerid);
    DestroyVehicle(GeldTransportAuto[playerid]);
    }


    Ich hoffe ihr könnt mir helfen :S

  • hay,


    if(testjob[playerid] == 2) , wo wird denn da abgefragt ob der Checkpoint erreicht wird ?



    -> if(testjob[playerid] == 1) , setz hier unten mal ein return 1; rein also :


    if(testjob[playerid] == 1)
    {
    DisablePlayerCheckpoint(playerid);
    testjob[playerid] = 2;
    SetPlayerCheckpoint(playerid,1465.9991,-1016.5866,25.7718,10);return 1;}


    Lg

  • Man könnte es zwar jedes mal mit return 1; machen, aber mit else if spart man sich das.


    if(testjob[playerid] == 1)
    {
    DisablePlayerCheckpoint(playerid);
    testjob[playerid] = 2;
    SetPlayerCheckpoint(playerid,1465.9991,-1016.5866,25.7718,10);
    }
    else if(testjob[playerid] == 2)
    {
    DisablePlayerCheckpoint(playerid);
    DestroyVehicle(GeldTransportAuto[playerid]);
    }

  • stimmt hast recht xDD


    *Denkfehler* :huh:


    Ich war ebend nur am überlegen,dass es halt überläuft und deswegen das Fahrzeug zerstört wird,und deswegen hatte ich gleich an return gedacht,damit das halt returnt wird ^^
    aber else if spart den ganzen Kram natürlich,wieder was gelernt xD :thumbup:



    Lg

  • Hey habe nochmal ein kleines Problemchen ... xD


    Und zwar kann ich den Job komplett ausführen das klappt wunderbar doch wenn ich nochmal den Job anfangen will werde ich a) nicht in's Fahrzeug gepackt bzw das Fahrzeug wird nicht erstellt und b) kommt der Text als ob ich im Zielcheckpoint wäre oO da ist wohl 'ne Variable falsch


    if(testjob[playerid] == 2)
    {
    DisablePlayerCheckpoint(playerid);
    DestroyVehicle(GeldTransportAuto[playerid]);
    repair[playerid]=0;
    new string[100];
    format(string,sizeof(string),"%s (ID: %d) hat den Geldtransport erfolgreich abgeliefert.",PlayerName(playerid),playerid);
    SendClientMessageToAll(GRÜN,string);
    injob[playerid]=0;
    Job[playerid]=0;
    SetPVarInt(playerid,"Geldtransporte", GetPVarInt (playerid, "Geldtransporte") + 1);
    return 1;


    Das hier ist der Zielcheckpoint hier ist eigentlich alles auf 0 so wenn ich jetzt wieder 'nen neuen Job anfange und in den Checkpoint gehe ist dieser Code


    if(jobangenommen[playerid]==1)
    {
    SendClientMessage(playerid,ROT,"Du hast Deinen Punkt erreicht.!");
    GeldTransportAuto[playerid] = CreateVehicle(428,1246.1964,-2055.7898,59.8090,270.6992,0,0,-1);
    SetPlayerPos(playerid,1246.1964,-2055.7898,59.8090);
    SetVehiclePos(GeldTransportAuto[playerid],1246.1964,-2055.7898,59.8090);
    PutPlayerInVehicle(playerid,GeldTransportAuto[playerid],0);
    SendClientMessage(playerid,BLAU,"Du hast nun Dein Dienstfahrzeug erhalten, wähle nun Deine Route aus die Du fahren möchtest.");
    ShowPlayerDialog(playerid,DIALOG_ROUTE,DIALOG_STYLE_LIST,"Routen","Burger Shot North -> Zentralbank\nCluckin' Bell -> Zentralbank","Ok","Abbrechen");
    }


    Der Dialog wird zwar angezeigt aber es wird kein Vehicle erstellt und es kommt folgender Text "%s (ID: %d) hat den Geldtransport erfolgreich abgeliefert." also der vom Zielcheckpoint das dürfte eigentlich nicht sein, was ist falsch bzw welche Variable???