Problem mit Bank System

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
  • Guten Abend Forum,


    Ich habe momentan ein paar Probleme.


    -Bank System


    Hier habe ich das Problem das sich der 2te Dialog nicht öffnet. (Der dBankTransfer Dialog)
    Code :

    if(dialogid==dBank)
    {
    if(response)
    {
    if(listitem==0)
    {
    ShowPlayerDialog(playerid,dBankWithdraw,DIALOG_STYLE_INPUT,"Abheben","Wieviel möchtest Du abheben?","Abheben","Abbrechen");
    re1;
    }
    if(listitem==1)
    {
    ShowPlayerDialog(playerid,dBankDeposit,DIALOG_STYLE_INPUT,"Einzahlen","Wieviel möchtest Du einzahlen?","Einzahlen","Abbrechen");
    re1;
    }
    if(listitem==2)
    {
    ShowPlayerDialog(playerid,dBankTransferID,DIALOG_STYLE_INPUT,"Überweisung","Wem möchtest Du etwas überweisen? \nTippe seine ID ein :","Auswählen","Abbrechen");
    re1;
    }
    if(listitem==3)
    {
    new string[64];
    format(string,sizeof(string),"Dein Kontostand beträgt : [%i€]",GetPVarInt(playerid,"Kontostand"));
    SCM(playerid,Blau,string);
    re1;
    }
    }
    if(dialogid==dBankTransferID)
    {
    transferid=strval(inputtext);
    new string[128];
    if(!IsPlayerConnected(transferid)) return ERROR_OFFLINE
    format(string,sizeof(string),"Kontostand : %i€\nGewähle ID : %i\nWieviel möchtest Du überweisen?",GetPVarInt(playerid,"Kontostand"),transferid);
    ShowPlayerDialog(playerid,dBankTransfer,DIALOG_STYLE_INPUT,"Überweisung",string,"Überweisen","Abbrechen");
    re1;
    }
    if(dialogid==dBankTransfer)
    {
    if(GetPVarInt(playerid,"Kontostand") <= strval(inputtext)) return ERROR_MONEY
    new string[128],bstring[128];
    format(string,sizeof(string),"[BANK] %s hat Dir %i€ überwiesen.",SpielerName(playerid),strval(inputtext));
    format(bstring,sizeof(bstring),"Du hast %s erfolgreich %i€ überwiesen.",SpielerName(transferid),strval(inputtext));
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")-strval(inputtext));
    SetPVarInt(transferid,"Kontostand",GetPVarInt(transferid,"Kontostand")+strval(inputtext));
    SCM(transferid,Gold,string);
    SCM(playerid,Blau,bstring);
    re1;
    }
    re1;
    }

    ______________________________________________________________________________________
    Wäre schön wenn Ihr mir helfen könnt ..

    2 Mal editiert, zuletzt von y0sh1 ()

  • Probier das mal:



    if(GetPVarInt(i,"PayTime") == 60)
    {
    //Was passiert jede Stunde?
    new string[128];
    format(string,sizeof(string),"[PAYDAY] Du erhälst %i€ auf Dein Konto!",GetPVarInt(i,"PayMoney"));
    SetPVarInt(i,"PayTime",0);
    SetPVarInt(i,"Kontostand", GetPVarInt(i,"Kontostand")+ GetPVarInt(i,"PayMoney"));
    SetPVarInt(i,"PayMoney",0);
    SCM(i,Gold,string);
    if(GetPVarInt(i,"Fraktion") == 3 || GetPVarInt(i,"Fraktion") == 4)
    {
    SetPVarInt(i,"PayMoney",2000);
    SCM(i,Gold,"Du erhälst den Gangbonus von 2.000€ !"); //Das hier kriegt jeder.. Warum?
    continue;
    }
    continue;
    }

  • Probiers ma aus.

    ocmd:frage(playerid,params[])
    {
    if(GetPVarInt(playerid,"Muted") != 0) return ERROR_MUTE
    new Frage[128], string[128];
    if(sscanf(params,"s",Frage)) return SCM(playerid,Rot,"Verwendung : /frage [FRAGE]");
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Adminlevel")>=0)
    {
    format(string,sizeof(string),"[FRAGE] %s [ID: %i] fragt : %s",SpielerName(playerid),playerid,Frage);
    SCM(i,Lila,string);
    }
    }
    }
    return 1;
    }


  • if(dialogid==dBank)
    {
    if(response)
    {
    if(listitem==0)
    {
    ShowPlayerDialog(playerid,dBankWithdraw,DIALOG_STYLE_INPUT,"Abheben","Wieviel möchtest Du abheben?","Abheben","Abbrechen");

    }
    if(listitem==1)
    {
    ShowPlayerDialog(playerid,dBankDeposit,DIALOG_STYLE_INPUT,"Einzahlen","Wieviel möchtest Du einzahlen?","Einzahlen","Abbrechen");

    }
    if(listitem==2)
    {
    ShowPlayerDialog(playerid,dBankTransferID,DIALOG_STYLE_INPUT,"Überweisung","Wem möchtest Du etwas überweisen? \nTippe seine ID ein :","Auswählen","Abbrechen");

    }
    if(listitem==3)
    {
    new string[64];
    format(string,sizeof(string),"Dein Kontostand beträgt : [%i€]",GetPVarInt(playerid,"Kontostand"));
    SCM(playerid,Blau,string);

    }
    }


    }
    if(dialogid==dBankTransferID)
    {
    transferid=strval(inputtext);
    new string[128];
    if(!IsPlayerConnected(transferid)) return ERROR_OFFLINE
    format(string,sizeof(string),"Kontostand : %i€\nGewähle ID : %i\nWieviel möchtest Du überweisen?",GetPVarInt(playerid,"Kontostand"),transferid);
    ShowPlayerDialog(playerid,dBankTransfer,DIALOG_STYLE_INPUT,"Überweisung",string,"Überweisen","Abbrechen");

    }
    if(dialogid==dBankTransfer)
    {
    if(GetPVarInt(playerid,"Kontostand") <= strval(inputtext)) return ERROR_MONEY
    new string[128],bstring[128];
    format(string,sizeof(string),"[BANK] %s hat Dir %i€ überwiesen.",SpielerName(playerid),strval(inputtext));
    format(bstring,sizeof(bstring),"Du hast %s erfolgreich %i€ überwiesen.",SpielerName(transferid),strval(inputtext));
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")-strval(inputtext));
    SetPVarInt(transferid,"Kontostand",GetPVarInt(transferid,"Kontostand")+strval(inputtext));
    SCM(transferid,Gold,string);
    SCM(playerid,Blau,bstring);


    }

  • Ich würde dir eh empfehlen bei OnDialogResponse mit switch & case zu arbeiten (zu viele If-Abfragen),
    das ist übersichtlicher & effizienter.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Ansichtssache, was man übersichtlicher findet.


    Trotz allem ist es effizienter & das ist auch ziemlich wichtig.
    Man sollte nicht immer nur funktional denken.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Wenn man es von der effizienten Seite betrachtet, ist es auch nicht so viel besser switch zu benutzen...


    Ich glaube, du liegst da falsch ( vor allem wenn man viele Dialoge hat und alles mit if Abfragen zu bombt).


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Das kommt aus der C-Syntax und deshalb interessiert mich sicher nicht, was ein Autor der Samp-Wikipage für ne Meinung hat. Bei so etwas kann man nicht falsch liegen, es sei denn wir nehmen die Frage genau und würden jedes einzelne Zeichen zählen, das verwendet wurde.

  • Das kommt aus der C-Syntax und deshalb interessiert mich sicher nicht, was ein Autor der Samp-Wikipage für ne Meinung hat. Bei so etwas kann man nicht falsch liegen, es sei denn wir nehmen die Frage genau und würden jedes einzelne Zeichen zählen, das verwendet wurde.


    Ich verweise dich gerne weiter: Was ist besser? switch oder if ?


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Und wie gesagt sind es immer noch nur Meinungen. Es gibt keine Antwort, wenn wir es nicht genau nehmen.
    Effizienz = weniger Aufwand = weniger Zeichen...
    Von den Zeichen her, wäre Switch effizienter, denke ich. Habe nicht gezählt.


    Du hast es dir doch nicht mal durchgelesen:


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Geht es dir jetzt um Effizienz oder Schnelligkeit?


    Du weißt wahrscheinlich nicht mal was Effizienz ist:

    Zitat von Wikipedia

    Die Effizienz eines Algorithmus ist seine Sparsamkeit bezüglich der Ressourcen, Rechenzeit und Speicherplatz, die er zur Lösung eines festgelegten Problems beansprucht. Mit steigender Effizienz sinkt die Komplexität eines Algorithmus. Jedoch sind effiziente Algorithmen meist schwerer zu verstehen, da sie oft auf ausgeklügelten Ideen beruhen. Effiziente Algorithmen sind schnell in der Lösung des entsprechenden Problems.

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Doch, aber du sagtest nicht, dass es um auf Algorithmen bezogene Effizienz geht.


    Zitat von Wikipedia

    Effizienz ist das Verhältnis zwischen einem definierten Nutzen und dem Aufwand, der zu dessen Erreichung notwendig ist.


    Also um dich aufzuklären:


    - Switch ist schneller.
    - Switch ist NICHT effizienter.
    - Nach Beurteilung der "algorithmischen Effizienz" ist Switch algorithmisch effizienter.


  • Du meinst also jetzt, dass Switch nicht effizienter ist, weil der Aufwand viel größer sei ?


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.


  • Du meinst also jetzt, dass Switch nicht effizienter ist, weil der Aufwand viel größer sei ?


    LG


    Du schlussfolgerst völlig falsch ^^
    Switch ist nicht effizienter, weil der Aufwand nicht (viel)weniger ist.
    Aber das hier wäre wie bereits mehrmals erwähnt, eine Frage der Genauigkeit.
    Denn ich vermute, wenn wir die Zeichen zählen würden, wäre Switch effizienter.
    Aber da es da nur um paar Zeichen geht, ist es gar nicht wert, es effizienter zu nennen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen