Spawnen wo man sich ausgeloggt hat ?

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • dann bekomme ich warnings ?


    warning:


    C:\Users\Jan\Desktop\MYSQL-Selfmade\gamemodes\mysql.pwn(826) : warning 213: tag mismatch
    C:\Users\Jan\Desktop\MYSQL-Selfmade\gamemodes\mysql.pwn(826) : warning 213: tag mismatch
    C:\Users\Jan\Desktop\MYSQL-Selfmade\gamemodes\mysql.pwn(826) : warning 213: tag mismatch
    C:\Users\Jan\Desktop\MYSQL-Selfmade\gamemodes\mysql.pwn(873) : warning 213: tag mismatch


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    GetPlayerPos(playerid,SpielerInfo[playerid][PosX] ,SpielerInfo[playerid][PosY] ,SpielerInfo[playerid][PosZ]);
    mysql_SetFloat("accounts", "PosX", SpielerInfo[playerid][PosX], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "PosY", SpielerInfo[playerid][PosY], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "PosZ", SpielerInfo[playerid][PosZ], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    SpielerInfo[playerid][PosX] = mysql_GetFloat("accounts","PosX","Name",SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][PosY] = mysql_GetFloat("accounts","PosY","Name",SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][PosZ] = mysql_GetFloat("accounts","PosZ","Name",SpielerInfo[playerid][pName]);
    }
    return 1;
    }


    so richtig ?


    Auslesen weiß ich ja nicht das sage ich ja als.

    Mit freundlichen Grüßen


    Atomfisch


  • Hast du das unter OnPlayerDisconnect
    SavePlayer(playerid);

  • Ich versuche dir mal zu helfen:


    Ersteinmal setzt du in deinem Speicherenum folgende Punkte ein:



    Float:pLastX,
    Float:pLastY,
    Float:pLastZ


    Deine letzten Koordinaten speicherst du dann bei OnPlayerDisconnect.


    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    mysql_SetFloat("accounts", "LastX", Float:x, "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "LastY", Float:y, "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "LastZ", Float:z, "Name", SpielerInfo[playerid][pName]);
    SavePlayer(playerid);


    Nun musst du sie nurnoch laden. Das machst du einfach bei deinem LoadPlayer stock.


    SpielerInfo[playerid][pLastX] = mysql_GetFloat("accounts", "LastX", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLastY] = mysql_GetFloat("accounts", "LastY", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pLastZ] = mysql_GetFloat("accounts", "LastZ", "Name", SpielerInfo[playerid][pName]);


    Zu guter letzt setzt du den Spieler einfach an die abgespeicherte Position... bei OnPlayerSpawn


    new Float:Lx = mysql_GetFloat("accounts", "LastX", "Name", SpielerInfo[playerid][pName]);
    new Float:Ly = mysql_GetFloat("accounts", "LastY", "Name", SpielerInfo[playerid][pName]);
    new Float:Lz = mysql_GetFloat("accounts", "LastZ", "Name", SpielerInfo[playerid][pName]);
    SetPlayerPos(playerid,Lx,Ly,Lz);

    //edit:


    Dein mysql_GetFloat muss im übrigen oben stehen, also im Header. Ausserdem musst du "Float:" davorschreiben.
    Also so:


    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }
    Ich hoffe ich konnte dir weiterhelfen :)

    Mit freundlichen Grüßen

    #define