3 Warns - OnPlayerSpawn | 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
  • Hallo Community,


    ich habe 3 Warnings, die ich umbedingt weg haben wollte.
    Es geht darum.. das ich gerne wenn man sich eingeloggt hat Spawnt. Nur möchte ich das so -> Wenn man sich ausloggt wird die Position gespeichert und beim Login Spawnt man wieder an dieser Stelle.


    Code & Warns:
    C:\Users\acer\Desktop\Activ Reallife\gamemodes\activrl.pwn(123) : warning 213: tag mismatch
    C:\Users\acer\Desktop\Activ Reallife\gamemodes\activrl.pwn(124) : warning 213: tag mismatch
    C:\Users\acer\Desktop\Activ Reallife\gamemodes\activrl.pwn(125) : warning 213: tag mismatch



    public OnPlayerSpawn(playerid)
    {
    new Skin = mysql_GetInt("Accounts", "Skin", "Benutzername", SpielerInfo[playerid][pBenutzername]);
    new SpawnX = mysql_GetFloat("Accounts", "SpawnX", "Benutzername", SpielerInfo[playerid][pBenutzername]); //Warn hier
    new SpawnY = mysql_GetFloat("Accounts", "SpawnY", "Benutzername", SpielerInfo[playerid][pBenutzername]); // Und hier
    new SpawnZ = mysql_GetFloat("Accounts", "SpawnZ", "Benutzername", SpielerInfo[playerid][pBenutzername]); // Und hier

    if(SpielerInfo[playerid][pNeu] == 1)
    {
    SetPlayerPos(playerid,1754.4458,-1894.3413,270.7986);
    SetCameraBehindPlayer(playerid);
    }
    else
    {
    SetPlayerPos(playerid,SpawnX,SpawnY,SpawnZ);
    SetPlayerSkin(playerid,Skin);
    }
    return 1;
    }


    Ich hoffe mir kann jemand weiterhelfen :)


    Mfg, Markus

  • Das würde ich an deiner Stelle lieber unter deinen "Loadaccount" stock schreiben, falls es sowas überhaupt gibt.


    Dann würde ich das lieber so schreiben:


    new Float:SpawnX = mysql_GetFloat("Accounts", "SpawnX", "Benutzername", SpielerInfo[playerid][pBenutzername]); //Warn hier
    new Float:SpawnY = mysql_GetFloat("Accounts", "SpawnY", "Benutzername", SpielerInfo[playerid][pBenutzername]); // Und hier
    new Float:SpawnZ = mysql_GetFloat("Accounts", "SpawnZ", "Benutzername", SpielerInfo[playerid][pBenutzername]); // Und hier


    Sollte dann eigentlich funktionieren.

  • Noch eine Frage :D
    Oben beim Enum habe ich das so...


    enum SpielerDaten
    {
    pBenutzername[MAX_PLAYER_NAME],
    pNeu,
    Float: pSpawnX,
    Float: pSpawnY,
    Float: pSpawnZ
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    Stimmt das so?
    Und beim Speichern und Laden so:


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new Float: Health;
    new Float: SpawnX, Float: SpawnY, Float: SpawnZ;
    mysql_SetInt("Accounts", "Level", GetPlayerScore(playerid), "Benutzername", SpielerInfo[playerid][pBenutzername]);
    mysql_SetInt("Accounts", "Geld", GetPlayerMoney(playerid), "Benutzername", SpielerInfo[playerid][pBenutzername]);
    mysql_SetInt("Accounts", "Neu", SpielerInfo[playerid][pNeu], "Benutzername", SpielerInfo[playerid][pBenutzername]);
    mysql_SetFloat("Accounts", "Health", GetPlayerHealth(playerid, Health), "Benutzername", SpielerInfo[playerid][pBenutzername]);
    mysql_SetFloat("Accounts", "SpawnX", SpawnX, "Benutzername", SpielerInfo[playerid][pBenutzername]);
    mysql_SetFloat("Accounts", "SpawnY", SpawnY, "Benutzername", SpielerInfo[playerid][pBenutzername]);
    mysql_SetFloat("Accounts", "SpawnZ", SpawnZ, "Benutzername", SpielerInfo[playerid][pBenutzername]);
    }
    }
    return 1;
    }



    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pBenutzername], MAX_PLAYER_NAME);
    SetPlayerScore(playerid, mysql_GetInt("Accounts", "Level", "Benutzername", SpielerInfo[playerid][pBenutzername]));
    GivePlayerMoney(playerid,mysql_GetInt("Accounts", "Geld", "Benutzername", SpielerInfo[playerid][pBenutzername]));
    new Skin = mysql_GetInt("Accounts", "Skin", "Benutzername", SpielerInfo[playerid][pBenutzername]);
    SetPlayerSkin(playerid,Skin);
    SpielerInfo[playerid][pNeu] = mysql_GetInt("Accounts", "Neu", "Benutzername", SpielerInfo[playerid][pBenutzername]);
    SpielerInfo[playerid][pSpawnX] = mysql_GetFloat("Accounts", "SpawnX", "Benutzername", SpielerInfo[playerid][pBenutzername]);
    SpielerInfo[playerid][pSpawnY] = mysql_GetFloat("Accounts", "SpawnY", "Benutzername", SpielerInfo[playerid][pBenutzername]);
    SpielerInfo[playerid][pSpawnZ] = mysql_GetFloat("Accounts", "SpawnZ", "Benutzername", SpielerInfo[playerid][pBenutzername]);

    }
    return 1;
    }


    Stimmt das so?



    Ich habe noch einen Warning:
    C:\Users\acer\Desktop\Activ Reallife\gamemodes\activrl.pwn(507) : warning 208: function with tag result used before definition, forcing reparse


    Zeile:
    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[]) //Hier
    {
    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;
    }

  • stock Float:mysql_getFloat
    musst du vor der ersten Nutzung schreiben und nicht nach unten an das Ende des Scripts setzen o.ä.
    Mein Tipp, setze es oben unter deine Enums und defines, bzw. bevor die erste Methode beginnt!


    Gruß

    VIVA LA REVOLUCIÓN


  • einfach nur die Methode an den Anfang bzw. weit genug oben hinschreiben, bevor du sie das erste mal nutzt!


    Danke, aber muss ich das jetzt die ganze Zeit oben im Script haben...?


    Irgendwie wird kein Account erstellt...

  • Hat sich erledigt mir hat was in OnGa.... gefehlt :D
    Nur Health wird als 1 in der Tabelle anzeigt und Spawn x,y,z auf 0
    Obwohl in der Tabelle "float" angegeben ist :/

    Einmal editiert, zuletzt von [Markus] ()