Spieler wird nicht gespeichert

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
  • Hallo,


    wieso wird mein spieler nicht mehr gespeichert?


    In der MySQL log steht nicht mal drinne das da irgentwas reingeschrieben wird.


    Hier mal die funktion:


    SpielerSpeichern(playerid)
    {
    if(sInfo[playerid][eingeloggt] == 0)return 1;
    new query[2000];
    format(query,sizeof(query),"UPDATE user SET level='%i', bargeld='%i', bankkonto='%i', bankguthaben='%i', perso='%i', pAlter='%i', geschlecht='%i', adminlevel='%i', fraktion='%i', rang='%i' WHERE id='%i'",
    GetPlayerScore(playerid),GetPlayerMoney(playerid),sInfo[playerid][BankKonto],sInfo[playerid][BankGuthaben],sInfo[playerid][perso],sInfo[playerid][pAlter],sInfo[playerid][Geschlecht],sInfo[playerid][adminlevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }



    Und da sollte es direkt nach dem register aufgerufen werden. Jedoch verschwinden nicht mal die Textdraws wenn man spawnt 8|


    if(dialogid == DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[200],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>3)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,false,"","");


    sInfo[playerid][BankGuthaben] = 2000;
    sInfo[playerid][eingeloggt] = 1;


    SetPlayerSkin(playerid,137);
    SetPlayerScore(playerid,1);
    SetPlayerMoney(playerid,500);


    CancelSelectTextDraw(playerid);


    SpawnPlayer(playerid);
    SpielerSpeichern(playerid);
    }
    else
    {
    //Kleiner als 3 Zeicen
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,""#SERVERNAME" -Registrierungs System","Dein Passwort muss minderstens 4 Zeichen lang sein","Registrieren","Zurück");
    }
    }


    bitte um Hilfe Ich weiß nicht mehr weiter


    In phpmyadmin steht dann überall 0 drinne außer im username und passwort


    aber geladen wird alles. Wenn ich dann die werte in der datenbank änder dann wird es normal geladen :(

  • Kannst du bitte mal den MySQL Debug Modus einschalten und dann posten was im MySQL Log ausgegeben wird, wenn du den Code ausführst?
    Tipps: Scripting-Probleme richtig erklären -> Punkt 4

    nach dem ich mich registriert habe und den server verlassen habe:


  • Ändere
    mysql_function_query(dbhandle,query,false,"","");
    zu:
    mysql_function_query(dbhandle,query,true,"OnPlayerRegister","d",playerid);


    Entferne
    SpielerSpeichern(playerid);
    aus dem Dialog und füge das hier ganz unten im Gamemode ein:


    forward OnPlayerRegister(playerid);
    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = cache_insert_id();
    return SpielerSpeichern(playerid);
    }

  • Oh cool danke dir hat funktioniert :)