Hallo, sorry das ich den alten Thread gelöscht habe, da nun ein neues Problem besteht muss ich ihn leider neu eröffnen.
Also kurz zur Situation:
Ich habe ein Banksystem mit MySQL, dass System läuft über eine eigene Tabelle.
Eigentlich sollte anhand des Names das jeweilige Bankkonto zugewiesen werden.
Ich gehe InGame und erstelle mein Bankkonto, es wird gespeichert und geladen und ich kann auch ein/auszahlen.
Habe ich das Bankkonto erstellt geht alles perfekt, doch sobald ich mich auslogge und wieder einlogge, sagt er mir ich habe kein Bankkonto.
Deswegen denke ich, dass er nicht ausliest zu wem das Konto gehört, ja ich könnte auch einfach alles über die SpielerDaten speichern aber ich möchte das Seperat.
Nun mein Speicher & Laden stock:
stock BankLaden(playerid)
{
new query[150];
format(query,sizeof(query),"SELECT * FROM `bkonto` WHERE `bname` = '%s'",SpielerName(playerid));
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
cache_get_field_content(0, "bname", SpielerName(playerid));
Bank[playerid][Abholen] = cache_get_field_content_int(0, "Abholen");
Bank[playerid][Konto] = cache_get_field_content_int(0, "Konto");
Bank[playerid][Kontostand] = cache_get_field_content_int(0, "Kontostand");
Bank[playerid][Beantragt] = cache_get_field_content_int(0, "Beantragt");
Bank[playerid][Pin] = cache_get_field_content_int(0, "Pin");
Bank[playerid][Kontonummer] = cache_get_field_content_int(0, "Kontonummer");
Bank[playerid][Abholen] = cache_get_field_content_int(0, "Abholen");
}
return 1;
}
{
new query[200];
format(query,sizeof(query),"UPDATE `bkonto` SET `Konto` = '%d',`Kontostand` = '%d',`Beantragt` = '%d',`Pin` = '%d',`Kontonummer` = '%d',`Abholen` = '%d' WHERE `bname` = '%s'",
Bank[playerid][Konto],Bank[playerid][Kontostand],Bank[playerid][Beantragt],Bank[playerid][Pin],Bank[playerid][Kontonummer],Bank[playerid][Abholen],SpielerName(playerid));
mysql_tquery(handle, query);
return 1;
}
Meine Dialoge:
{
if(response)
{
if(listitem==0)
{
if(Bank[playerid][Konto] == 1)return SendClientMessage(playerid,error,"Du besitzt bereits ein Konto!");
String(playerid,info,"Vielen Danke %s, das Sie sich für die Sparkasse entschieden habe.",SpielerName(playerid));
SetTimerEx("Kontobeantragt",10000,0,"d",playerid);
Bank[playerid][Beantragt] = 1;
return 1;
}
if(listitem==1)
{
new string[512],query[200];
if(Bank[playerid][Konto] == 1)return SendClientMessage(playerid,error,"Du besitzt bereits ein Konto!");
if(Bank[playerid][Beantragt] == 0)return SendClientMessage(playerid,error,"Du hast kein Konto beantragt!");
if(Bank[playerid][Abholen] == 0)return SendClientMessage(playerid,error,"Dein Konto ist noch nicht fertig!");
new pin = random(8999) + 1000, nummer = random(18999) + 1000;
Bank[playerid][Abholen] = 0;
Bank[playerid][Beantragt] = 0;
Bank[playerid][Konto] = 1;
Bank[playerid][Pin] = pin;
Bank[playerid][Kontonummer] = nummer;
Bank[playerid][Kontostand] += Geschenk;
format(string,sizeof(string),"{FEFEFE}Dein Konto ist fertiggestellt.\n\nDeine Kontonummer lautet: {23FF00}%i{FEFEFE}\nDein Bankpin lautet: {23FF00}%i{FEFEFE}\n\nGib auf dein Bankpin gut acht!",pin,nummer);
ShowPlayerDialog(playerid,DIALOG_DATEN,DIALOG_STYLE_MSGBOX,"Dein Konto",string,"Fertig","");
String(playerid,erfolg,"Als Geschenk erhälst du von uns %i$ auf dein Konto gutgeschrieben.",Geschenk);
format(query,sizeof(query),"INSERT INTO `bkonto` (`bname`,`Konto`,`Kontostand`,`Beantragt`,`Pin`,`Kontonummer`,`Abholen`) VALUES ('%s','%d','%d','%d','%d','%d','%d')",
SpielerName(playerid),Bank[playerid][Konto],Bank[playerid][Kontostand],Bank[playerid][Beantragt],Bank[playerid][Pin],Bank[playerid][Kontonummer],Bank[playerid][Abholen]);
mysql_tquery(handle, query);
//BankSpeichern(playerid);
return 1;
}
if(listitem==2)
{
if(Bank[playerid][Konto] == 0)return SendClientMessage(playerid,error,"Du besitzt kein Konto!");
ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Sparkasse - Konto Verwalten","Um auch wirklich sicher zu gehen, dass das dein Konto ist,\ngib bitte den Konto Pin an!","Absenden","Abbrechen");
return 1;
}
}
}
if(dialogid==DIALOG_PINABFRAGE)
{
if(!response)return ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
if(response)
{
if(strval(inputtext) != Bank[playerid][Pin])return ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Sparkasse - Konto Verwalten","{E10000}Falscher Pin!\n\n{FEFEFE}Bitte gib den Korrekten Pin ein!","Absenden","Abbrechen");
ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\nÜberweisen","Auswahl","Abbrechen");
return 1;
}
}
if(dialogid==DIALOG_VERWALTEN)
{
if(!response)return ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
if(response)
{
if(listitem==0)
{
SendClientMessage(playerid,-1, " ");
SendClientMessage(playerid,-1,"| ==================== |");
SendClientMessage(playerid,-1, " ");
String(playerid,info,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
SendClientMessage(playerid,-1, " ");
SendClientMessage(playerid,-1,"| ==================== |");
ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\nÜberweisen","Auswahl","Abbrechen");
return 1;
}
if(listitem==1)
{
ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Geld einzahlen","Wieviel Geld möchtest du auf dein Konto einzahlen ?","Einzahlen","Abbrechen");
return 1;
}
if(listitem==2)
{
ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Geld auszahlen","Wieviel Geld möchtest du von deinem Konto auszahlen ?","Auszahlen","Abbrechen");
return 1;
}
if(listitem==3)
{
ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN,DIALOG_STYLE_INPUT,"Überweisung","An welchen Spieler möchtest du Geld überweisen ?\nGib die Kontonummer des Spielers an!","Absenden","Abbrechen");
return 1;
}
}
}
if(dialogid==DIALOG_UEBERWEISEN)
{
new string[128], pID = Kontonummerrichtig(strval(inputtext));
if(pID == -1)return ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN,DIALOG_STYLE_INPUT,"Überweisung","{E10000}Dieses Konto Exisitiert nicht oder der Besitzer ist nicht Online!\n\n{FEFEFE}An welchen Spieler möchtest du Geld überweisen ?\nGib die Kontonummer des Spielers an!","Absenden","Abbrechen");
format(string,sizeof(string),"Wieviel Geld möchtest du an {23FF00}%s{FEFEFE} Überweisen ?",SpielerName(pID));
ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN1,DIALOG_STYLE_INPUT,"Überweisung",string,"Absenden","Abbrechen");
Bank[playerid][Partner] = pID;
return 1;
}
if(dialogid==DIALOG_UEBERWEISEN1)
{
new pID = Bank[playerid][Partner];
if(strval(inputtext) > Bank[playerid][Kontostand])return ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN1,DIALOG_STYLE_INPUT,"Überweisung","Bitte gib einen Betrag an den du auch besitzt","Absenden","Abbrechen");
Bank[playerid][Kontostand] -= strval(inputtext);
Bank[pID][Kontostand] += strval(inputtext);
String(playerid,info,"Du hast an %s {23FF00}%i${FEFEFE} überwiesen.\nAktuelles Guthaben {23FF00}%i$",SpielerName(pID),strval(inputtext),Bank[playerid][Kontostand]);
String(pID,info,"%s hat dir {23FF00}%i${FEFEFE} überwiesen.\nAktueller Kontostand {23FF00}%i$",SpielerName(playerid),strval(inputtext),Bank[pID][Kontostand]);
Bank[playerid][Partner] = -1;
return 1;
}
if(dialogid==DIALOG_EINZAHLEN)
{
if(!response)return ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\nÜberweisen","Auswahl","Abbrechen");
if(strval(inputtext) > GetPlayerMoney(playerid))return ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Geld einzahlen","{E10000}So viel Geld besitzt du nicht!\n{FEFEFE}Bitte gib einen Betrag an den du auch besitzt!","Einzahlen","Abbrechen");
GivePlayerMoney(playerid,-strval(inputtext));
Bank[playerid][Kontostand] += strval(inputtext);
SendClientMessage(playerid,-1, " ");
String(playerid,info,"Du hast {23FF00}%i${FEFEFE} in dein Konto eingezahlt!",strval(inputtext));
String(playerid,info,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
return 1;
}
if(dialogid==DIALOG_AUSZAHLEN)
{
if(!response)return ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\bÜberweisen","Auswahl","Abbrechen");
if(strval(inputtext) > Bank[playerid][Kontostand])return ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Geld auszahlen","{E10000}So viel Geld besitzt du nicht!\n{FEFEFE}Bitte gib einen Betrag an den du auch besitzt!","Auszahlen","Abbrechen");
Bank[playerid][Kontostand] -= strval(inputtext);
GivePlayerMoney(playerid, GetPlayerMoney(playerid) +strval(inputtext));
SendClientMessage(playerid,-1," ");
String(playerid,erfolg,"Du hast dir {23FF00}%i${FEFEFE} von deinem Konto ausgezahlt!",strval(inputtext));
String(playerid,info,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
return 1;
}
Falls ihr meint, dass es sinnvoller wäre das Banksystem über die Spielerdaten zu machen und nicht Seperat, würde ich es auch so machen.
Aber solang es auch so geht und keine Umstände bereitet, wäre es mir so auch lieber.
PS. Jeffry:
Mit freundlichen Grüßen
TV