Mysql Spieler-Laden

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


    Ich habe ein Problem, wenn ich mich Registriere, Dann klappt alles, ich logge mich aus und dann wieder ein, wir auch der Skin sowie Geld und Position Geladen.
    Jedoch wenn ich jetzt den Server-Restarte, habe ich dann den CJ Skin und Spawne in Blueberry (Spawn ist wo man sich ausgeloggt hat).


    Hier mein Speicher sstock :



    stock SpielerSpeichern(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[1000];


    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d', `Admin` = '%d', `Geld` = '%d', `Kills` = '%d', `Tode` = '%d', `FM` = '%d', `Skin` = '%d', `Frak` = '%d', `Rang` = '%d', `pX` = '%f', `pY` = '%f', `pZ` = '%f', `Alter` = '%d' WHERE `Name` = '%s'",
    PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pTode],PlayerInfo[playerid][pFM],PlayerInfo[playerid][pSkin],
    PlayerInfo[playerid][pFrak],PlayerInfo[playerid][pRang],PlayerInfo[playerid][pPx],PlayerInfo[playerid][pPy],PlayerInfo[playerid][pPz],PlayerInfo[playerid][pName]);
    mysql_query(query);
    }
    }
    return 1;
    }


    Mein LoadPlayer Stock :



    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    new str[520];
    format(str,sizeof str,"SELECT * FROM `accounts` WHERE `Name` = '%s'",SpielerName(playerid));
    mysql_query(str);
    mysql_store_result();
    mysql_fetch_row(str);
    sscanf(str,"p<|>{i}s[24]s[130]{i}dddddddddfffd",PlayerInfo[playerid][pName],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pTode],
    PlayerInfo[playerid][pFM],PlayerInfo[playerid][pSkin],PlayerInfo[playerid][pFrak],PlayerInfo[playerid][pRang],PlayerInfo[playerid][pPx],PlayerInfo[playerid][pPy],PlayerInfo[playerid][pPz],PlayerInfo[playerid][pAge]);
    mysql_free_result();
    }
    return 1;
    }


    Hoffentlich kann mir einer von euch Helfen...

    MFG

  • stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    new str[520];
    format(str,sizeof str,"SELECT * FROM `accounts` WHERE `Name` = '%s'",SpielerName(playerid));
    mysql_query(str);
    mysql_store_result();
    mysql_fetch_row(str);
    sscanf(str,"p<|>{i}s[24]s[130]{i}dddddddddfffd",PlayerInfo[playerid][pName],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pTode],
    PlayerInfo[playerid][pFM],PlayerInfo[playerid][pSkin],PlayerInfo[playerid][pFrak],PlayerInfo[playerid][pRang],PlayerInfo[playerid][pPx],PlayerInfo[playerid][pPy],PlayerInfo[playerid][pPz],PlayerInfo[playerid][pAge]);
    mysql_free_result();
    }
    return 1;
    }


    das ist nicht ganz richtig, ich habs z.B. So



    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)){
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
    }
    }

  • Naja wieso ?
    Die sieht so aus :



    if(GetPVarInt(playerid,"logged") == 0)
    {
    PlayAudioStreamForPlayer(playerid,"http://k002.kiwi6.com/hotlink/f1q4tif7mp/hit_the_floor_take_3_.mp3");
    if(mysql_CheckAccount(playerid) == 0)
    {
    InterpolateCameraPos(playerid, 1255.030273, -1323.599487, 136.420806, 891.130859, -1385.070800, 136.420806, 25000);
    InterpolateCameraLookAt(playerid, 1250.062255, -1323.727905, 135.871139, 892.092041, -1380.257934, 135.465774, 2000);
    new rstr[300];
    format(rstr,sizeof(rstr),"{FFFFFF}Herzlich Willkommen, {0041FF}%s\n{FFFFFF}Da du noch nicht Registriert bist, musst du es jetzt !\nGebe nun dein Passwort an",SpielerName(playerid));
    ShowPlayerDialog(playerid,D_REGISTER,DIALOG_STYLE_INPUT,"NoL-Register",rstr,"Register","Abbrechen");
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    InterpolateCameraPos(playerid, 1255.030273, -1323.599487, 136.420806, 891.130859, -1385.070800, 136.420806, 25000);
    InterpolateCameraLookAt(playerid, 1250.062255, -1323.727905, 135.871139, 892.092041, -1380.257934, 135.465774, 2000);
    new lstr[300];
    format(lstr,sizeof(lstr),"{FFFFFF}Herzlich Willkommen zurück, {0041FF}%s\n{FFFFFF}Sofern du weiter spielen möchtest, logge dich ein\nGib dein Passwort an",SpielerName(playerid));
    ShowPlayerDialog(playerid,D_LOGIN,DIALOG_STYLE_INPUT,"NoL-Login",lstr,"Login","Abbrechen");
    }
    }

    MFG

  • Naja wieder das gleiche, ich Registriere mich, Logg mich aus wieder ein geht alles perfekt, dann logge ich mich aus Starte Server neu logge mich ein, Der Account wird gefunden, aber die Daten sind weg..
    Hast Bock über TV drüber zu kucken

    MFG

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • [19:48:36] CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '1', `Admin` = '0', `Geld` = '6500', `Kills` = '0', `Tode` = '0', `FM` = '1', `Skin` = '79', `Frak` = '0', `Rang` = '0', `pX` = '369.895812', `pY` = '-2024.861938', `pZ` = '7.671875', `Alter` = '0' WHERE `Name` = '') - An error has occured. (Error ID: 1054, Unknown column 'Admin' in 'field list')


    Der holt den Namen nicht bzw den hat er nicht
    Arbeite da mit GetPlayerName
    Und das Feld Admin gibt es in der Tabelle nicht


    Also der gesammte Update funktioniert nicht


    ((das SSCANF2 Plugin nutzt du oder?))

    All in all it's just another brick in the wall

  • Ich bitte dich mal ein Ausschnitt aus der serverlog zu posten wo du die ganzen Daten laden lässt also du kannst auch den string welchen du splittest posten lass dir diesen am besten ausgeben und dazu hin noch poste bitte dein enum.
    Beim laden kann es auch ein problem mit der abfolge der parameter geben. Dann wird nix ausgeladen.

  • Ich bitte dich mal ein Ausschnitt aus der serverlog zu posten wo du die ganzen Daten laden lässt also du kannst auch den string welchen du splittest posten lass dir diesen am besten ausgeben und dazu hin noch poste bitte dein enum.
    Beim laden kann es auch ein problem mit der abfolge der parameter geben. Dann wird nix ausgeladen.


    Hier mein Enum :

    enum PlayerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pAdmin,
    pGeld,
    pKills,
    pTode,
    pFM, // Frau2 / Mann1
    pSkin,
    pFrak,
    pRang,
    Float:pPx,
    Float:pPy,
    Float:pPz,
    pAge
    }

    MFG