Guten Abend.
Ich habe ingame jetzt Stunts gemacht und hatte dadurch 240$ auf der hand.
Normal sollte es gespeichert werden und nach dem Reloggen wieder da sein.
Nun das geld ist nicht wieder erschienen.
In den Myqsl-Logs steht leider auch kein fehler drin warum kein geld gesetzt wird.
Hier der Code zu alles:
Mysql Log:
Spieler Enum:
OnPlayerRequestClass:
Code
public OnPlayerRequestClass(playerid, classid)
{
//Wenn der Spieler die Class-Selection betritt prüfe ob er bereits eingeloggt ist
if(!PlayerInfo[playerid][eingeloggt])
{
//Wenn nicht, dann prüfe ob der Spieler ein Konto hat
new query[128];
mysql_format(handle,query,sizeof(query),"SELECT id FROM account WHERE name = '%e'",PlayerInfo[playerid][pname]);
//Das Query wird abgesendet und die Playerid an OnUserCheck übergeben
mysql_pquery(handle,query,"OnUserCheck","d",playerid);
}
return 1;
}
Alles anzeigen
OnplayerConnect:
Code
public OnPlayerConnect(playerid)
{
PlayerInfo[playerid][spielerid] =0;
PlayerInfo[playerid][eingeloggt] = false;
PlayerInfo[playerid][level] = 0;
PlayerInfo[playerid][admin] = 0;
PlayerInfo[playerid][pmoney] = 0;
PlayerInfo[playerid][fraktion] = 0;
PlayerInfo[playerid][frank] = 0;
PlayerInfo[playerid][spawn] = 0;
GetPlayerName(playerid,PlayerInfo[playerid][pname],MAX_PLAYER_NAME);
return 1;
}
Alles anzeigen
OnPlayerDisconnect
OnDialogResponse:
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTER)
{
//spieler hat abbrechen gewählt
if(!response)return Kick(playerid);
//Wenn der Spieler kein oder ein zu kurzes, Passwort eingegeben hat
if(strlen(inputtext) < 5)return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registration","Bitte registriere dich; \n{0x008E00FF}Mindestens 5 Zeichen!","Registrieren","Abbrechen");
//wenn alles passt wird spieler angelegt
new query[256];
mysql_format(handle,query,sizeof(query), "INSERT INTO account(name,passwort)VALUES('%e',MD5('%e'))",PlayerInfo[playerid][pname],inputtext);
//Das Query wird abgesendet und die playerid an OnUserRegister übergeben
mysql_pquery(handle,query,"OnUserRegister","d",playerid);
return 1;
}
if(dialogid == DIALOG_LOGIN)
{
//spieler hat abbrechen gewählt
if(!response)return Kick(playerid);
//Wenn der spieler kein, oder ein zu kurzes Passwort eingegeben hat
if(strlen(inputtext) < 5)return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung","Bitte logge dich ein:\n{0x008E00FF}Mindestens 5 Zeichen!","Anmelden","Abbrechen");
//Wenn alles Passt wird die Datenbank ausgelsen
new query[256];
mysql_format(handle,query,sizeof(query),"SELECT * FROM account WHERE name = '%e' AND passwort = MD5('%e')",PlayerInfo[playerid][pname],inputtext);
mysql_pquery(handle,query,"OnUserLogin","d",playerid);
return 1;
}
return 0;
}
Alles anzeigen
OnUserCheck:
Code
public OnUserCheck(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows == 0)
{
//Der Spieler konnte nicht gefunden werden, er muss sich registrieren
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registration","Bitte registriere dich","Registrieren","Abbrechen");
}
else
{
//Es existiert ein Ergbins, das heißt der Spieler ist registriert und muss sich einloggen
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Anmeldung","Bitte logge dich ein","Einloggen","Abbrechen");
}
return 1;
}
Alles anzeigen
OnUserRegister und OnUserLogin:
Code
public OnUserRegister(playerid)
{
PlayerInfo[playerid][spielerid] = cache_insert_id();
SendClientMessage(playerid,green,"[KONTO]Registration erfolgreich");
return 1;
}
public OnUserLogin(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows == 0)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Anmeldung","Bitte logge dich ein:\n{0x008E00FF}Falsches Passwort","Einloggen","Abbrechen");
}
else
{
cache_get_value_name_int(0,"id",PlayerInfo[playerid][spielerid]);
cache_get_value_name_int(0,"level",PlayerInfo[playerid][level]);
cache_get_value_name_int(0,"admin",PlayerInfo[playerid][admin]);
cache_get_value_name_int(0,"money",PlayerInfo[playerid][pmoney]);
cache_get_value_name_int(0,"fraktion",PlayerInfo[playerid][fraktion]);
cache_get_value_name_int(0,"frank",PlayerInfo[playerid][frank]);
cache_get_value_name_int(0,"spawn",PlayerInfo[playerid][spawn]);
PlayerInfo[playerid][eingeloggt] = true;
SendClientMessage(playerid,green,"[KONTO]Eingeloggt.");
GivePlayerMoney(playerid,PlayerInfo[playerid][pmoney]);
}
return 1;
}
Alles anzeigen
SaveUserStats:
Code
stock SaveUserStats(playerid)
{
if(!PlayerInfo[playerid][eingeloggt])return 1;
new query[256];
mysql_format(handle,query,sizeof(query),"UPADTE account SET level = '%d',admin = '%d',money = '%d',fraktion = '%d',frank = '%d',spawn = '%d'WHERE id = '%d'",PlayerInfo[playerid][level],PlayerInfo[playerid][admin],PlayerInfo[playerid][pmoney],PlayerInfo[playerid][fraktion],PlayerInfo[playerid][frank],PlayerInfo[playerid][spawn]);
mysql_pquery(handle,query);
return 1;
}