Tankstellen Frage

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
  • Also leute ich hab es so erstellt das man tanken muss, wenn man getankt hat das man von Fahrzeug rausgeschmießen wird damit man zu schalter hin geht und den beitrag halt bezahlt. Jedoch gibt es ein Problem, und zwar wenn man wieder ins Fahrzeug einsteigt ohne das man es bezahlt kann man einfach weiter fahren. Wie kann ich so machen das wenn er wieder ins Fahrzeug einsteigt ohne das er den beitrag bezahlt hat und das er dann 2w oder so bekommt?


    if(dialogid == DIALOG_FILL_ZAHLUNG)
    {
    new kosten = (BenzinMenge[playerid] * SPRITPREIS);
    if(response)
    {
    if(GetPlayerMoney(playerid) < kosten)
    {
    ShowPlayerDialog(playerid,DIALOG_FILL_ERROR,DIALOG_STYLE_MSGBOX,"Tankwart","Sie haben nicht soviel Geld bei sich, sie müssen wohl oder übel per EC-Karte bezahlen!","Bezahlen","Bezahlen");
    return true;
    }
    GivePlayerMoney(playerid, -kosten);
    }
    else
    {
    // Später eine Auswahl der Optionen machen ^^ Wegen scheiss Konto System das mal chossen muss welche Kartte
    //PlayerInfo[playerid][pAccount] -= kosten;
    }
    SBizzInfo[3][sbTill] += kosten;
    ExtortionSBiz(3, kosten);
    Gas[TankID[playerid]] += BenzinMenge[playerid];
    BenzinMenge[playerid] = 0;
    ShowPlayerDialog(playerid,DIALOG_FILL_ENDE,DIALOG_STYLE_MSGBOX,"Tankwart","Vielen Dank für ihren Besuch und eine schöne Weiterfahrt!","Tschüss","Tschüss");
    TogglePlayerControllable(playerid,1);
    TankID[playerid] = 0;
    return true;
    }

  • setz ne Variable und Frag diese ab, fertig.
    Sprich:
    new hatgezahlt[MAX_PLAYERS];
    //-------
    hatgezahlt[playerid] = 0;
    if(hatgezahlt[playerid] == 0)
    {
    RemovePlayerFromVehicle
    SendClientMessage(playerid,COLOR_RED,"Du musst erst bezahlen!");
    }


    As grobes Codesnipsel.




    MfG Firer

  • hmm, wo muss ich das mit einfügen?


    if(hatgezahlt[playerid] == 0)
    {
    RemovePlayerFromVehicle
    SendClientMessage(playerid,COLOR_RED,"Du musst erst bezahlen!");
    }


    hab das bei "OnPlayerStateChange"
    eingefügt aber t.dem klappt es nicht ...

    Einmal editiert, zuletzt von [CCR]KingCaN ()

  • bei OnPlayerStateChange musst du noch
    if(newstate == PLAYER_STATE_DRIVER)
    hinzufügen ;)

  • habs so gemacht
    wenn ich ins Fahrzeug einsteige schmeißt es mich wieder raus ..


    if(newstate == PLAYER_STATE_DRIVER) //buggy dont finnish
    {// 38 / 49 / 56 = SS
    new newcar = GetPlayerVehicleID(playerid);
    new oldcar = gLastCar[playerid];
    new housecar = PlayerInfo[playerid][pPhousekey]+1;
    TelePos[playerid][0] = 0.0;
    TelePos[playerid][1] = 0.0;
    if(hatgezahlt[playerid] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du musst erst bezahlen!");
    }
    if(IsABoat(newcar))
    {
    if(PlayerInfo[playerid][pBoatLic] < 1)
    {
    SendClientMessage(playerid, COLOR_GREY, "** Du hast kein Bootschein");
    SendClientMessage(playerid, COLOR_GREY, "** Lass dich nicht von den Beamten erwischen!");
    }
    }
    else if(IsAPlane(newcar))

  • Mach die Variable lieber auf 1 wenn er getankt hat..und wenn er bezahlt hat setz du sie wieder auf 1