Buslinie beendet sich zu früh

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,


    aktuell beendet mein Buslinien System sich zu Früh. Fahre ich in den letzten Checkpoint soll er noch 10 Sekunden warten bis diese beendet wird. Dies wird sie allerdings nicht sondern Sofort. Was habe ich falsch gemacht ?



    if(Busfahrer[playerid][BusStand] == sizeof(BusfahrRouteA)-1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Bustour beendet.");
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,COLOR_BUSBLUE,"Du erhälst an deinem PayDay +2900$");
    PlayerInfo[playerid][pJobMoney]+=2900;
    Busfahrer[playerid][BusID] = 0;
    Busfahrer[playerid][IsBusfahring] = 0;
    Busfahrer[playerid][BusStand] = 0;
    Busfahrer[playerid][BusRoute] = 0;
    Busfahrer[playerid][BusZeit] = 0;
    SaveUserStats(playerid);
    new string[128];
    format(string,sizeof(string),"%s hat die Linie 100 erfolgreich beendet",getPlayerName(playerid));
    SaveToLog("Buserfolgreichlog", string);



    }

  • Was habe ich falsch gemacht ?

    Du hast keinen Timer gesetzt an dem Punkt in dem der Spieler an den letzten Punkt kommt.


    Aktuell hast du es so:
    Spieler fährt in den Checkpoint -> Fahrt wird beendet


    es sollte aber so sein:
    Spieler fährt in den Checkpoint -> dort wird der Timer([wiki]SetTimerEx[/wiki]) gestartet -> in der Funktion beendest du die "Fahrt"

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Du hast keinen Timer gesetzt an dem Punkt in dem der Spieler an den letzten Punkt kommt.

    Einen Timer gibt es in dem Sinne schon. Nochmal ein etwas vervollständigter Codeteil



    if(Busfahrer[playerid][IsBusfahring] == 1)
    {
    if(IsPlayerInAnyVehicle(playerid) && Busfahrer[playerid][BusID] == GetPlayerVehicleID(playerid))
    {
    if(Busfahrer[playerid][BusZeit]!=0)
    {
    if(Busfahrer[playerid][BusRoute] == 1)
    {
    if(Busfahrer[playerid][BusStand] == sizeof(BusfahrRouteA)-1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast soeben deine Bustour beendet.");
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,COLOR_BUSBLUE,"Du erhälst an deinem PayDay zusätzlich 2900$.");
    PlayerInfo[playerid][pJobMoney]+=2900;
    Busfahrer[playerid][BusID] = 0;
    Busfahrer[playerid][IsBusfahring] = 0;
    Busfahrer[playerid][BusStand] = 0;
    Busfahrer[playerid][BusRoute] = 0;
    Busfahrer[playerid][BusZeit] = 0;
    SaveUserStats(playerid);
    }
    }
    }
    else
    {
    Busfahrer[playerid][BusZeit] = 10;
    }
    }
    }


    Busfahrer[playerid][BusZeit] wird im Timer aufgerufen sobald der Bus im Checkpoint ist


  • if(Busfahrer[playerid][IsBusfahring] == 1)
    {
    if(IsPlayerInAnyVehicle(playerid) && Busfahrer[playerid][BusID] == GetPlayerVehicleID(playerid))
    {
    if(Busfahrer[playerid][BusZeit] == 0)
    {
    if(Busfahrer[playerid][BusRoute] == 1)
    {
    if(Busfahrer[playerid][BusStand] == sizeof(BusfahrRouteA)-1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast soeben deine Bustour beendet.");
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,COLOR_BUSBLUE,"Du erhälst an deinem PayDay zusätzlich 2900$.");
    PlayerInfo[playerid][pJobMoney]+=2900;
    Busfahrer[playerid][BusID] = 0;
    Busfahrer[playerid][IsBusfahring] = 0;
    Busfahrer[playerid][BusStand] = 0;
    Busfahrer[playerid][BusRoute] = 0;
    Busfahrer[playerid][BusZeit] = 0;
    SaveUserStats(playerid);
    }
    }
    }
    else{Busfahrer[playerid][BusZeit] = 10;}
    }
    }

    versuche es mal so