Level und Geld werden falsch gesetzt.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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;
    }