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