Skin 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
  • Heyyho, ich brauche eure Hilfe:


    In meinem Login-/Registersystem wird unter anderem der Skin gespeichert- aber die Skin ID wird ja bekanntlich- wie bei fast allen enum Funktionen erst wenn der Spieler den Server verlässt in die .ini eingetragen...


    enum SInfo
    {
    ...,
    ...,
    ...,
    ...,
    Skin

    }
    new SpielerInfo[MAX_PLAYERS][SInfo];


    Und nun die beiden stocks, Save Account und LoadAccount..und da auch der entscheidene Punkt- da LoadAccount erst nach Spawn des Spielers stattfindet, muss ich das Skin setzen bei OnPlayerSpawn machen, denn sonst könnte man in der Skinselection einfach nen anderen Skin auswählen und dann wäre das Speichern des Skins unnötig...


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    ...
    ...
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
    return 1;


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    ...
    ...
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
    return 1;
    }


    Und bei OnPlayerSpawn:


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));



    Tja... ein sehr kompliziertes Problem, ich hoffe auf schnelle Hilfe ^^




    MfG

  • Hmm... also ich möchte dass der Skin der zuvor im Skinshop gekauft wurde auch nach dem Tot bleibt, und nicht der aus der .ini geladen wird- da dieser ja beim Spawn bei mir geladen wird...



    Mist hab ich echt das Problem vergessen reinzuschreiben... xD

  • Hm.... Auf ReVides Weise hab ich es noch nicht versucht, aber das mit beim kaufen speichern hab ich schon versucht, es klappt nicht: ich mache dann immer:


    SpielerInfo[playerid][Skin] = 280;


    Aber beim Kaufen wird der Skin leider nicht gespeichert...

  • Wie wärs wenn du es in die Datei schreibst? Nicht in einer Variable speichern, in der Spieler-Datei.



    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));