Mein "Banksystem" geht nicht ganz

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 in der Bank Geld einzahlen geht, aber Geld auszahlen nicht, da steht immer dann der Fehler ich habe nicht genug Geld, obwohl ich genug Geld eingezahlt habe.
    Und wie mache ich "Kontostand"?
    Hier meine Banksachen:



    if(dialogid==DIALOG_BANK)
    {
    if(response==1)
    {
    switch(listitem)
    {
    case 1: ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Einzahlen","Wie viel Geld möchtest du einzahlen?","Einzahlen","Abbrechen");
    case 0: ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Auszahlen","Wie viel Geld möchtest du auszahlen?","Auszahlen","Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Du hast abgebrochen.");
    }
    }
    if(dialogid==DIALOG_EINZAHLEN)
    {
    new geld;
    if(response==1)
    {
    if(strval(inputtext) < GetPlayerMoney(playerid) || strval(inputtext) == GetPlayerMoney(playerid))
    {
    geld = GetPVarInt(playerid, "Bank") + strval(inputtext);
    SetPVarInt(playerid, "Bank", geld);
    GivePlayerMoney(playerid, -strval(inputtext));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Bankarbeiter: Du hast zuwenig Geld dabei.");
    }
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Vorgang abgebrochen.");
    }
    }
    if(dialogid==DIALOG_AUSZAHLEN)
    {
    if(response==1)
    {
    if(GetPVarInt(playerid, "Bank") > strval(inputtext) || GetPVarInt(playerid, "Bank") == strval(inputtext))
    {
    GivePlayerMoney(playerid, strval(inputtext));
    SetPVarInt(playerid, "Bank", -strval(inputtext));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Bankarbeiter: Du hast nicht genug Geld auf der Bank.");
    }
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Vorgang abgebrochen.");
    }
    }


    So speichert es:
    dini_IntSet(Spielerdatei,"Bank",GetPVarInt(playerid,"Bank"));

  • Und du hast keinen Error ?


    Er setzte mal die Zeile:


    geld = GetPVarInt(playerid, "Bank") + strval(inputtext);


    mit der
    new geld = GetPVarInt(playerid, "Bank") + strval(inputtext);


    Und teste es mal.

    Stahlbau Azubi deswegen kaum Aktiv

  • Nein errors habe ich nicht, aber wenn ich das mache was du sagst, bekomme ich 2Warns.
    C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2216) : warning 219: local variable "geld" shadows a variable at a preceding level
    C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2211) : warning 203: symbol is never used: "geld"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.

  • 2errors
    C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2215) : error 017: undefined symbol "geld"
    C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2215) : warning 215: expression has no effect
    C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2216) : error 017: undefined symbol "geld"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

  • ich bin mir nicht ganz Sicher aber ich meine es so:


    Vorher:
    new geld;if(response==1)
    {
    if(strval(inputtext) < GetPlayerMoney(playerid) || strval(inputtext) == GetPlayerMoney(playerid))
    {
    geld = GetPVarInt(playerid, "Bank") + strval(inputtext);
    SetPVarInt(playerid, "Bank", geld);
    GivePlayerMoney(playerid, -strval(inputtext));


    Nacher:
    new geld[20];if(response==1)
    {
    if(strval(inputtext) < GetPlayerMoney(playerid) || strval(inputtext) == GetPlayerMoney(playerid))
    {
    geld = GetPVarInt(playerid, "Bank") + strval(inputtext);
    SetPVarInt(playerid, "Bank", geld);
    GivePlayerMoney(playerid, -strval(inputtext));


    new geld;
    zu
    new geld[20];

  • C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2216) : error 033: array must be indexed (variable "geld")
    C:\Users\metin\.MCReferenceSdk\server\gamemodes\selfmade.pwn(2217) : error 035: argument type mismatch (argument 3)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

  • Da steht doch das die Variable "geld" es schon in gibt. Also irgendwo hast du diese Variable schon definiert
    Und das mit new Geld[20] ist quatsch! Das ist ein String. Und du brauchst kein String.
    Mach einfach Z.B new BGeld;
    Und dann überall wo die geld hast einfach BGeld einsetzen.
    Dann sollte es gehen.


    //Edit:
    Und bei
    if(strval(inputtext) < GetPlayerMoney(playerid) || strval(inputtext) == GetPlayerMoney(playerid))


    Kannst du einfach so machen:
    if(strval(inputtext) <= GetPlayerMoney(playerid))
    und bei
    if(GetPVarInt(playerid, "Bank") > strval(inputtext) || GetPVarInt(playerid, "Bank") == strval(inputtext))


    Das selbe machen. Einfach mit >=