Moin.
Wenn man sich auf meinem Server registriert wird in der Datenbank Level auf 1 und Geld auf 10.000$ gesetzt.
Ingame ist man aber Level 0 und hat 0 $.
Wenn man reloggt, dann wird das Geld und level wieder auf einen anderen Wert gesetzt , woran liegt das?
Code:
public OnPlayerConnect(playerid)
{
new query[500];
query = "";
format(query,sizeof(query),"SELECT * FROM `accounts` WHERE `Name`='%s'",SpielerName(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows()>0)
{
new string[128];
format(string,sizeof(string),"Dein Account {00FFFA}%s {FFFFFF}wurde gefunden.\n Bitte gib das Passwort ein.",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login",string,"Login","Abbrechen");
//einloggen[playerid] = 3;
}
else
{
new string[128];
format(string,sizeof(string),"Dein Account {00FFFA}%s {FFFFFF}wurde nicht gefunden.\n Bitte gib das gewünschte Passwort ein.",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung",string,"Registrieren","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SetPlayerName(playerid,SInfo[playerid][Name]);
OnLogOut[playerid] = 1;
SInfo[playerid][Eingeloggt] = 0;
SpielerSpeichern(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTER)
{
if(response == 1)
{
if(!strlen(inputtext))
{
new string[128];
format(string,sizeof(string),"Dein Account {00FFFA}%s {FFFFFF}wurde nicht gefunden.\n Bitte gib das gewünschte Passwort ein.",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung",string,"Registrieren","Abbrechen");
}
else
{
CreateAccount(playerid,MD5_Hash(inputtext));
}
return 1;
}
if(response == 0)
{
Kick(playerid);
SendClientMessage(playerid,COLOR_ROT,"Du hast den Vorgang abgebrochen.");
return 1;
}
}
if(dialogid == DIALOG_LOGIN)
{
if(response == 0)
{
SendClientMessage(playerid,COLOR_ROT,"Du musst eingeloggt sein, um spielen zu können!");
Kick(playerid);
return 1;
}
if(response == 1)
{
if(!strcmp(MD5_Hash(inputtext),GetPW(SpielerName(playerid))))
{
new query[80], string[128];
SInfo[playerid][Eingeloggt] = 1;
format(query,sizeof(query),"UPDATE `accounts` SET Eingeloggt='%i' WHERE Name='%s'",SInfo[playerid][Eingeloggt],SpielerName(playerid));
mysql_query(query);
Accladen(playerid);
format(string,sizeof(string),"Willkommen zurück %s!",SpielerName(playerid));
SendClientMessage(playerid,COLOR_DUNKELBLAU,string);
}
else
{
new string[128];
SendClientMessage(playerid,COLOR_ROT,"Das Passwort war falsch.");
format(string,sizeof(string),"Dein Account {00FFFA}%s {FFFFFF}wurde gefunden.\n Bitte gib das Passwort ein.",SpielerName(playerid));
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login",string,"Login","Abbrechen");
}
return 1;
}
return 1;
}
return 1;
}
stock CreateAccount(playerid, pass[])
{
new query[500];
SInfo[playerid][Name] = SpielerName(playerid);
format(query,sizeof(query),"INSERT INTO `accounts` (`Name`,`Passwort`) VALUES ('%s','%s')",SInfo[playerid][Name],pass);
mysql_query(query);
SInfo[playerid][Eingeloggt] = 1;
SetPlayerScore(playerid,SInfo[playerid][Level]);
printf(query);
return true;
}
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
stock Accladen(playerid)
{
if(SInfo[playerid][Eingeloggt] == 1)
{
new query[250];
format(query,sizeof(query),"SELECT * FROM `accounts` WHERE Name='%s'",SpielerName(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows()>0)
{
mysql_fetch_row_format(query,"|");
sscanf(query,"p<|>e<is[24]s[36]idi>",SInfo[playerid]);
printf(query);
mysql_free_result();
}
else
{
SendClientMessage(playerid,COLOR_ROT,"LOGIN ERROR: Bitte reconnecten!");
}
return 1;
}
return 1;
}
stock GetPW(SName[])
{
new query[130], Get[36];
mysql_real_escape_string(SName, SName);
format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", SName);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
//
stock SpielerSpeichern(playerid)
{
if(SInfo[playerid][Eingeloggt] == 1 || OnLogOut[playerid] == 1)
{
new query[250], sqlmain[500];
OnLogOut[playerid] = 0;
format(query,sizeof(query),"UPDATE `accounts` SET ");strcat(sqlmain,query);
format(query,sizeof(query),"Level = '%i' ,Geld = '%d' ,Eingeloggt = '%i' WHERE Name='%s'",SInfo[playerid][Level],SInfo[playerid][Geld],SInfo[playerid][Eingeloggt],SInfo[playerid][Name]);strcat(sqlmain,query);
mysql_query(sqlmain);
print(sqlmain);
}
return 1;
}