Tank System Funktioniert nicht!

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 Leute,


    Ich wollte mal fragen was ich hier falsch gemacht habe das es nicht funktioniert.
    Also das Problem ist das wenn ich zur der Tankstelle fahre und /fill eingebe kommt ein Dialog und da kann ich eingeben wie viel Liter ich auftanken kann wenn ich z.B. 2Liter eingebe wir das Fahrzeug auf 2Liter+ getankt aber bei mir wird kein Geld abgezogen.
    Ich hoffe einer kann mir dabei behilflich sein Danke im vorraus. :)


    Code: /fill, DIALOG



    if(strcmp(cmd, "/fill",true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerAtTanke(playerid))
    {
    new vehicle = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(IsAFahrrad(model))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Fahrräder können nicht aufgetankt werden.");
    return 1;
    }
    if(motoran[vehicle] == true)
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst nicht tanken wenn der Motor an ist.");
    }
    else
    {
    new string[124];
    new maxtank = gMaxGas[vehicle] - gGas[vehicle];
    format(string,sizeof(string),"{FFDC00}Du kannst nur max. {B90000}%d {FFDC00}Liter tanken\n\n{FFDC00}Bitte gebe die Literanzahl ein wieviel du tanken möchtest.",maxtank);
    ShowPlayerDialog(playerid, DIALOG_TANKEN, DIALOG_STYLE_INPUT, "Tankstelle",string, "Tanken","Abbrechen");
    }
    }
    }
    return 1;
    }



    if(dialogid == DIALOG_TANKEN)
    {
    new preis;
    new string[184];
    new VID = GetPlayerVehicleID(playerid);
    new zahl = strval(inputtext);
    new FillUp = gMaxGas[VID] - gGas[VID];
    if(response == 1)
    {
    if(IsNumeric(inputtext))
    {
    for(new b = 0; b < sizeof(TankeInfo); b++)
    {
    preis = TankeInfo[b][tEntranceCost];
    }
    if(zahl == 0)
    {
    format(string,sizeof(string),"{FFDC00}Du kannst nur max. {B90000}%d {FFDC00}Liter tanken.\n\n{FFDC00}Bitte gebe die Literanzahl ein wieviel du tanken möchtest.",FillUp);
    ShowPlayerDialog(playerid, DIALOG_TANKEN, DIALOG_STYLE_INPUT, "Tankstelle",string, "Tanken","Abbrechen");
    return 1;
    }
    if(zahl > gMaxGas[VID])
    {
    format(string,sizeof(string),"{FFDC00}Du kannst nur max. {B90000}%d {FFDC00}Liter tanken\n\n{FFDC00}Dein Tank umfasst nur {B90000}%d {FFDC00}Liter.\n{FFDC00}Bitte gib ein wieviel Liter du tanken willst.",FillUp,gMaxGas[VID]);
    ShowPlayerDialog(playerid, DIALOG_TANKEN, DIALOG_STYLE_INPUT, "Tankstelle", string, "Tanken","Abbrechen");
    return 1;
    }
    if(zahl > FillUp)
    {
    format(string,sizeof(string),"{FFDC00}Du kannst nur max. {B90000}%d {FFDC00}Liter tanken.\n\n{FFDC00}Bitte gib ein wieviel Liter du tanken willst.",FillUp);
    ShowPlayerDialog(playerid, DIALOG_TANKEN, DIALOG_STYLE_INPUT, "Tankstelle", string, "Tanken","Abbrechen");
    return 1;
    }
    if(GetPlayerMoney(playerid) <= zahl*preis)
    {
    format(string,sizeof(string),"{FFDC00}Du kannst nur max. {B90000}%d {FFDC00}Liter tanken.\n\n{FFDC00}Du hast nicht genügend Geld für soviel Liter.\n{FFDC00}Bitte gib ein wieviel Liter du tanken willst.",FillUp);
    ShowPlayerDialog(playerid, DIALOG_TANKEN, DIALOG_STYLE_INPUT, "Tankstelle", string, "Tanken","Abbrechen");
    return 1;
    }
    Refueling[playerid] = 1;
    Tankpreis[playerid] = zahl*preis;
    Tankmenge[playerid] = zahl;
    GameTextForPlayer(playerid, "~y~~n~~n~~n~~n~~n~~n~~n~~n~Fahrzeug wird betankt...", 6000, 3);
    SetTimerEx("TankenEnde", 6000, false, "d", playerid);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Ungültige Eingabe!");
    }
    }
    }



    Mfg. Dima

  • Danke schon mal


    pierre65 also ich kann tanken da funktioniert alles gut nur ich verliere kein Geld und bei den text steht auch wenn ich fertig getankt habe du hast jetzt z.B. 2 Liter getankt für 0$ steht die ganze zeit da obwohl 1 Liter 1$ kostet


    Hier noch mal der Code TankenEnde


    [list=1][*]
    public TankenEnde(playerid)
    {
    new carid = GetPlayerVehicleID(playerid);
    new string[128];
    if(Refueling[playerid] == 1)
    {
    GivePlayerMoney(playerid, -Tankpreis[playerid]);
    gGas[carid] += Tankmenge[playerid];
    format(string, sizeof(string), "* Du hast erfolgreich %d Liter getankt, für $%d",Tankmenge[playerid], Tankpreis[playerid]);
    SendClientMessage(playerid,COLOR_HELLBLAU,string);
    for(new b = 0; b < sizeof(TankeInfo); b++)
    {
    if(TankeInfo[b][tOwned] == 0)
    {
    StaatsGeld += Tankpreis[playerid];
    TankeInfo[b][tProducts] -= Tankpreis[playerid];
    }
    else if(TankeInfo[b][tOwned] == 1)
    {
    TankeInfo[b][tTill] += Tankpreis[playerid];
    TankeInfo[b][tProducts] -= Tankmenge[playerid];
    }
    }
    Tankpreis[playerid] = 0;
    Tankmenge[playerid] = 0;
    PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0);
    Refueling[playerid] = 0;
    return 1;
    }
    return 1;
    }