Hallo Community!
Ich habe ein kleines problem und zwar Speichert mein banksystem das Geld auf der Datenbank aber wenn ich es abheben möchte sagt er das ich kein geld habe.
Und mein Kontostand sagt auch das ich kein Geld habe.
Und unter OnPlayerConnect soll das Konto laden und kriege ein mysql_log da steht cache_get_field_content_int ist nicht aktiv.
Hier die Codes
public BankSpeichern(playerid)
{
new query[128];
format(query,128,"UPDATE bank SET b_geld='%d'",bkInfo[playerid][b_geld]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
public BankLaden(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new tmp_name[MAX_PLAYER_NAME];
strmid(bkInfo[playerid][b_besitzer],tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
bkInfo[playerid][b_geld] = cache_get_field_content_int(i,"b_geld",dbhandle);
bkInfo[playerid][b_id] = cache_get_field_content_int(i,"id",dbhandle);
}
return 1;
}
if(dialogid == DIALOG_BABHEBEN)
{
if(response)
{
new query[128];
new bankgeld = bkInfo[playerid][b_geld];
new summe = strval(inputtext);
if(bankgeld <= strval(inputtext))return SendClientMessage(playerid,COLOR_GRAU,"[BankInfo]: Sie haben nicht genug Geld auf der Bank. ** Vorgang wurde Abgebrochen **");
GivePlayerMoney(playerid,summe);
bkInfo[playerid][b_geld] -=summe;
format(query,128,"[BankInfo]: Du hast erfolgreich %d$ abgehoben.",summe);
SendClientMessage(playerid,COLOR_GRAU,query);
BankSpeichern(playerid);
SpielerSpeichern(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Bank","Geld abheben\nGeld Einzahlen\nGeld Überweisen","Auswählen","Abbrechen");
}
return 1;
}
if(dialogid == DIALOG_BEINZAHLEN)
{
if(response)
{
new query[128];
new summe = strval(inputtext);
if(GetPlayerMoney(playerid) <= strval(inputtext))return SendClientMessage(playerid,COLOR_GRAU,"[BankInfo]: Sie haben nicht genug Geld auf der Hand. ** Vorgang wurde Abgebrochen **");
GivePlayerMoney(playerid,-summe);
bkInfo[playerid][b_geld] +=summe;
format(query,128,"[BankInfo]: Du hast erfolgreich %d$ eingezahlt.",summe);
SendClientMessage(playerid,COLOR_GRAU,query);
BankSpeichern(playerid);
SpielerSpeichern(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Bank","Geld abheben\nGeld Einzahlen\nGeld Überweisen","Auswählen","Abbrechen");
}
return 1;
}
enum bankEnum{ b_id, b_besitzer[MAX_PLAYER_NAME], b_geld}
new bkInfo[MAX_PLAYERS][bankEnum]
unter OnGameModeExit:
public OnGameModeExit()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
SpielerSpeichern(i);
BankSpeichern(i);
}
mysql_close(dbhandle);
return 1;
}
unter OnPlayerConnect:
//Bank
format(query,128,"SELECT * FROM bank WHERE b_besitzer='%s'",SpielerName(playerid));
mysql_function_query(dbhandle,query,true,"OnBankCheck","i",playerid);
BankLaden(playerid);
OnBankCheck:
public OnBankCheck(playerid)
{
new query[200],name[MAX_PLAYER_NAME];
new num_rows,num_fields;
GetPlayerName(playerid,name,sizeof(name));
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
format(query,200,"INSERT INTO bank (b_besitzer,b_geld) VALUES ('%s','0')",name);
mysql_function_query(dbhandle,query,true,"BankSpeichern","i",playerid);
}
else
{
format(query,200,"SELECT * FROM bank WHERE b_besitzer='%s'",SpielerName(playerid));
mysql_function_query(dbhandle,query,false,"","");
}
return 1;
}