Bank in loH neu saven lassen wie ?

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
  • Nabend ich habe eine neue bank in loH gescriptet und sie verbessert nur jetzt save der nicht den konto stand hier die bank


    if(strcmp("/konto", cmdtext, true, 4) == 0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,1438.2727,-997.8276,1639.7911)) return SendClientMessage(playerid, COLOR_RED, ">> Du bist an keinen Bankomaten!");
    {
    ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"{FF0000}Bank", "Einzahlen\nAuszahlen\nÜberweisen\nKontostand", "Auswählen", "Abbrechen"); //
    return 1;
    }
    }


    if(dialogid == DIALOG_BANK) //Wenn der Dialog die ID "DIALOG_BANK" hat passiert das.
    {
    if(response == 0)
    {
    return 1;
    } //Wenn er den zweiten Button drückt (abbrechen) soll nichts passieren.
    if(response == 1) //Wenn er den Button eins drückt soll das Passieren
    {
    if(listitem == 0) //Wenn er das erste ausgewählt hat (Einzahlen), passiert das...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_EINZAHLEN, DIALOG_STYLE_INPUT, "{FF0000}Einzahlen", "{FF7700}Bitte gebe den gewünschten Betrag ein.", "Einzahlen", "Verlassen"); //Den Spieler wird der Dialog "DIALOG_EINZAHLEN" gezeigt
    }
    if(listitem == 1)//Wenn er das zweite ausgewählt hat (Auszahlen), passiert das...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_AUSZAHLEN, DIALOG_STYLE_INPUT, "{FF0000}Auszahlen", "{FF7700}Bitte gebe den gewünschten Betrag ein.", "Auszahlen", "Verlassen"); //Den Spieler wird der Dialog "DIALOG_AUSZAHLEN" gezeigt
    }
    if(listitem == 2)//Wenn er das zweite ausgewählt hat (Überweisen), passiert das...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp1, DIALOG_STYLE_INPUT, "{FF0000}Überweisen", "{FF7700}Bitte gebe den Namen des Players ein, dem du Geld überweisen willst.", "Weiter", "Abbrechen");
    }
    if(listitem == 3)//Wenn er das dritte ausgewählt hat (Kontostand), passiert das...
    {
    new pBank = GetPVarInt(playerid, "Bank"); //Die Variable pBank liest die Menge des Geldes aus der PlayerVariable "Bank"
    format(string, sizeof(string), "Ihr aktueller Kontostand beträgt $%d", pBank);//Hier kommt der Text hin der dann in dem Dialog kommen soll(Tipp:zum anzeigen von Namen benutzt: %s | für Zahlen: %d)
    ShowPlayerDialog(playerid, DIALOG_BANK_KONTOSTAND, DIALOG_STYLE_MSGBOX, "{FF0000}Kontostand", string,"Beenden", ""); //Dem Player wir das Geld auf seiner Bank in einem Dialog gezeigt.
    }
    }
    }
    if(dialogid == DIALOG_BANK_EINZAHLEN)// Wenn die Dialog id "DIALOG_BANK_EINZAHLEN" ist passiert das.
    {
    if(!strlen(inputtext)) //Wenn er nichts in den Inputtext (Textboxt) schreibt,...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_EINZAHLEN, DIALOG_STYLE_INPUT, "{FF0000}Einzahlen", "{FF7700}Bitte gebe den gewünschten Betrag ein.", "Einzahlen", "Verlassen"); //Wird ihm der Dialog erneut gezeigt.
    return 1;
    }
    else //Wenn der Inputtext nicht leer ist,...
    {
    new geld = strval(inputtext); //Erstellt eine neue Variable (geld) und liest diese aus dem Inputtext (Textbox).
    if(GetPlayerMoney(playerid) >= geld)//Wenn das Geld das der player hat mehr ist wie das das er einzahlen will passiert das...
    {
    GivePlayerMoney(playerid, -geld); //Zieht dem Spieler das Geld ab das er in den Inputtext geschrieben hat und...
    SetPVarInt(playerid, "Bank", GetPVarInt(playerid, "Bank")+geld); //... erhöt die Variable geld auf den Betragt.
    return 1;
    }
    else //Wenn der Spieler nicht soviel Geld hat wie er in die Textbox geschrieben hat bekommt er eine Meldung, das er nicht soviel geld bei sich hat!
    {
    SendClientMessage(playerid,COLOR_RED, "Soviel Geld hast du nicht bei dir!");
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_BANK_AUSZAHLEN) //Wenn die Dialog id "DIALOG_AUSZAHLEN" ist passiert das...
    {
    if(!strlen(inputtext)) //Wenn die Textbox leer ist kommt diese Meldung...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_AUSZAHLEN, DIALOG_STYLE_INPUT, "{FF0000}Auszahlen", "{FF7700}Bitte gebe den gewünschten Betrag ein.", "Auszahlen", "Verlassen");
    return 1;
    }
    else//Wenn die Textbox nicht leer ist, passier folgendes...
    {
    new geld = strval(inputtext); //Erstellt wieder eine Varialbe (geld) und liest diese aus dem Inputtext (Textbox) aus.
    if(GetPVarInt(playerid, "Bank") >= geld) //Wenn einen kleineren oder den gleichen betrg in den inputtext schreibt wie er auf der Bank hat(Die "Bank" variable ist sein Konto!).
    {
    GivePlayerMoney(playerid, geld); //...bekommt der Player das eingegebene Geld und...
    SetPVarInt(playerid, "Bank", GetPVarInt(playerid, "Bank") -geld);//... das geld wir von der Variable, also seinem Konto abgezogen
    return 1;
    }
    else //Wenn die Variable Bank(Sein Guthaben auf der Bank) geringer ist als die Zahl im Inputtext,...
    {
    SendClientMessage(playerid,COLOR_RED, "Soviel Geld hast du nicht auf der Bank!");
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_BANK_UEBERWEISEN_Stepp1)//Wenn die Diealog id "DIALOG_BANK_UEBERWEISEN_Stepp1" ist passiet das...
    {
    if(!strlen(inputtext))//Wenn der Inputtext (die Textbox) leer ist kommt folgende Meldung:...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp1, DIALOG_STYLE_INPUT, "{FF0000}Überweisen", "{FF7700}Bitte gebe den Namen des Players ein, dem du Geld überweisen willst.", "Weiter", "Abbrechen");
    return 1;
    }
    if(response == 0)//Wenn er den Abbrechen Button drückt passiert nichts und der Dialog schliesst sich.
    {
    return 1;
    }
    if(response == 1)//Wenn er auf den Button "Weiter" drückt und die ID des Players in die TExtbox geschrieben hat passiert folgendes,...
    {
    new giveplayerid = strval(inputtext);//neue Variable die die ID übernimmt
    SetPVarInt(playerid, "Überweisung", giveplayerid); //Das speichert die ID des Player dem man etwas überweisen möchte. (Mann muss diesen Vorgang in Zwei schritten machen und muss die ID deshalb abspeichern!!)
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp1, DIALOG_STYLE_INPUT, "{FF0000}Überweisen", "{FF7700}Bitte gebe den Namen des Players ein, dem du Geld überweisen willst.", "Weiter", "Abbrechen");
    return 1;
    }
    if(IsPlayerConnected(giveplayerid))//Wenn der Player online ist,...
    {//Bekommt der Player den nächsten Dialog indem er den Gewünschten betrag den er überweisen will, eingeben muss.
    ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp2, DIALOG_STYLE_INPUT, "{FF0000}Überweisen", "{FF7700}Bitte gebe nun den Betrag ein den du überweisen willst.", "Überweisen", "Abbrechen");
    }
    else//Wenn der Player nicht Online ist, bekommt der Player diese Meldung...
    {
    SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist nicht Online!");
    return 1;
    }
    }
    }
    if(dialogid == DIALOG_BANK_UEBERWEISEN_Stepp2)//Wenn die Dialogid "DIALOG_BANK_UEBERWEISEN_Stepp2" passiert das...
    {
    if(!strlen(inputtext))//Wenn der Inputtext(Textbox) leer ist kommt diese Meldung...
    {
    ShowPlayerDialog(playerid, DIALOG_BANK_UEBERWEISEN_Stepp2, DIALOG_STYLE_INPUT, "{FF0000}Überweisen", "{FF7700}Bitte gebe nun den Betrag ein den du überweisen willst.", "Überweisen", "Abbrechen");
    return 1;
    }
    if(response == 0)//Wenn er den Abbrechen Button drückt passiert nichts und der Dialog schliesst sich.
    {
    return 1;
    }
    if(response == 1)//Wenn er auf den Button "Überweisen" drückt und die die Menge an Geld in die T3xtbox geschrieben hat passiert folgendes,...
    {
    new giveplayerid = GetPVarInt(playerid, "Überweisung");//Hier wird die Variable nun gebraucht um die ID des Players herauszufinden dem das Geld überwiesen werden soll.
    new geld = strval(inputtext); //Hier wird die Variable "geld" genommen umd die Menge des Geldes das der Player in den Inputtext geschriebn hat herauszufinden.
    if(IsPlayerConnected(giveplayerid))//Wenn die ID Online ist passiert folgendes...
    {
    if(GetPVarInt(playerid, "Bank") >= geld)//Wenn der Player mehr oder genau soviel geld auf der Bank hat wie er in den Inputtext geschrieben hat geht es weiter.
    {
    new name[MAX_PLAYER_NAME];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));//Hier wird der name des Player herausgefunden der das GEld überweist
    GetPlayerName(giveplayerid, pname, sizeof(pname));//Hier wird der Name des Players herausgefunden dem das Geld überwiesen wird.
    SetPVarInt(playerid, "Bank", GetPVarInt(playerid, "Bank") -geld);//Hier wird dem Player das geld abgezogen
    SetPVarInt(giveplayerid, "Bank", GetPVarInt(giveplayerid, "Bank") +geld); //Und hier wird dem Player das Geld überwiesen
    format(string, sizeof(string), "Du hast %s gerage $%d überwiesen.", pname, geld);
    SendClientMessage(playerid,F_O, string);//Der Player bekommt eine Meldung wem und wieviel geld er gerade überwiesen hat.
    format(string, sizeof(string), "%s hat dir gerage $%d überwiesen.", name, geld);
    DeletePVar(playerid, "Überweisung");//Und hier bekommt der Player eine Meldung das er gerade von dem Player geld bekommen hat und wie viel.
    return 1;
    }
    else //Wenn der Player nicht soviel geld auf der Bank hat, bekommt er diese Meldung...
    {
    SendClientMessage(playerid,COLOR_RED,"So viel Geld hast du nicht auf der Bank!");
    return 1;
    }
    }
    else //Wenn der Player nicht online ist bekommt man diese Meldung...
    {
    SendClientMessage(playerid, COLOR_RED, "Dieser Spieler ist nicht Online!");
    return 1;
    }
    }
    }


    und hier wo die alte bank gesaved wird was ich vermute


    public OnPlayerRegister(playerid, password[])


    format(var, 32, "Bank=%d\n",PlayerInfo[playerid][pAccount]);fwrite(hFile, var);


    und noch das


    public OnPlayerLogin(playerid,password[]


    if( strcmp( key , "Bank" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAccount] = strval( val ); }
    was muss ich ändern ? MFG
    //EDIT