Spielerposition speichert nicht [MySQL]

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
  • Bei mir wird die Spieler-Position nicht in die MySQL Datenbank abgespeichert


    Spoiler anzeigen
    enum spielerdaten
    {
    sName[MAX_PLAYER_NAME],
    Float:sX,
    Float:sY,
    Float:sZ,
    Float:sA
    }

    Spoiler anzeigen
    stock SpielerSpeichern(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    { mysql_SetFloat("accounts", "X", Spieler[playerid][sX], "Name", Spieler[playerid][sName]);
    mysql_SetFloat("accounts", "Y", Spieler[playerid][sY], "Name", Spieler[playerid][sName]);
    mysql_SetFloat("accounts", "Z", Spieler[playerid][sZ], "Name", Spieler[playerid][sName]);
    mysql_SetFloat("accounts", "A", Spieler[playerid][sA], "Name", Spieler[playerid][sName]);
    }
    }
    return 1;
    }

    Spoiler anzeigen
    stock SpielerLaden(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, Spieler[playerid][sName], MAX_PLAYER_NAME);
    Spieler[playerid][sX] = mysql_GetFloat("accounts", "X", "Name", Spieler[playerid][sName]);
    Spieler[playerid][sY] = mysql_GetFloat("accounts", "Y", "Name", Spieler[playerid][sName]);
    Spieler[playerid][sZ] = mysql_GetFloat("accounts", "Z", "Name", Spieler[playerid][sName]);
    Spieler[playerid][sA] = mysql_GetFloat("accounts", "A", "Name", Spieler[playerid][sName]);
    }
    return 1;
    }

    Spoiler anzeigen
    OnPlayerSpawn:
    SetPlayerPos(playerid, Spieler[playerid][sX], Spieler[playerid][sY], Spieler[playerid][sZ]);
    SetPlayerFacingAngle(playerid, Spieler[playerid][sA]);

    Spoiler anzeigen
    OnPlayerDisconnect:
    SpielerSpeichern(playerid);

  • Du musst unter OnPlayerDisconnect folgendes Schreibe:
    new Float:x,Float:y,Float:z,
    GetPlayerPos(playerid,x,y,z);
    PlayerInfo[playerid][sX] = X;
    und so weiter


    Dann jetzt fragest du nicht die Aktuelle Psoition ab.


    Muss nicht unter OnPlayerDisconect Passieren.


    Ich persöhnlich würde es einfach in den Stock reinschreiben 8)

  • Es ist nicht empfehlenswert maddin's MySQL-Funktionen zu nutzen. Sie sind zwar anfängerfreundlich aber du kloppst da Queries raus ohne Ende.


    Mach das mit einem Query. Im übrigen: debuggen.

  • Ich Empfehle dir bei OnPlayerDisconnect das mal einzufügen


    GetPlayerPos(playerid,Spieler[playerid][sX],Spieler[playerid][sY],Spieler[playerid][sZ]);
    GetPlayerFacingAngle(playerid,Spieler[playerid][sA]);


    Warum unnötig den Callback OnPlayerDisconnect zuknallen ?
    Er brauch lediglich bei dem stock SpielerSpeichern die Pos abfragen & setzten 8) !