[MySQL] Waffen & Andere dinge eines Spieler speichern

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 zusammen,


    Ich habe mein Login System von dieser Quelle raus gebastelt. :

    [ SCRIPTING ]
    MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel)?



    Ich möchte nun zu den Standart Kritierien die gespeichert werden (Vom spieler) auch andere hinzufügen, sprich : (Waffen,Skin,Lizensen & Scheine)


    Wie kann ich das nun umsetzen? und woran erkenne ich ob ich bei MySQL für die Tabellen Zeile INT oder FLOAT nehmen muss?



    Vielen dank für eure Aufmerksamkeit! :love: :S

  • Habe gerade geantwortet, kann das aber auch nochmal hier posten (vielleicht haben andere ähnliche Probleme):


    Ein kleines Beispiel zum Erstellen einer neuen Variable, in dem Fall der Skin-ID eines Spielers:
    Ich will eine neue Variable hinzufügen, die den Skin speichert und verwende das Beispiels von Maddin (Link oben im ersten Post)


    enum SpielerDaten
    {
    pName[MAX_PLAYER_NAME],
    pLevel,
    pGeld,
    pKills,
    pTode,
    Float:pHealth,
    pSkin
    }
    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
    }
    return 1;
    }


    Ich kann leider nicht farblich die Änderungen kenntlich machen, aber ich denke dass du siehst, dass jeweils die letzte Zeile im Code neu ist. Im ersten Absatz erstellst du eine Variable pSkin im enum SpielerInfo. Diese Variable ist vom Typ ein Integer, also eine Zahl (Skin-IDs sind ja auch Zahlen :D). Im zweiten Absatz lädst du dir aus der Datenbank die Skin-ID zum passenden Spieler. Die Zahl wird dann in SpielerInfo[playerid][pSkin] gespeichert und du kannst sie dann beispielsweise bei SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]) verwenden.
    Damit du die Skin-ID aber speichern kannst, brauchst du erst in der Datenbank in der Tabelle accounts noch eine Spalte namens Skin. Dort speicherst du dann für den Spieler die gewünschte Skin-ID, die beim Connect geladen werden soll ^^

  • Hat mir Super geholfen! :) Vielen dank!


    Ich habe nun unter :


    public OnPlayerRequestClass(playerid, classid)
    Dies geschrieben :
    SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);


    Ist das so richtig? Denn ich bekomme immer nur den CJ Standart skin.... ID:0
    Das seltsame ist, der standart skin auf meinen Script ist ein Obdachloser. SkinID(137)