Skin speichern lassen

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
  • Lädst du bei OnPlayerConnect den Wert von "Skin" aus deiner Datenbank/Spielerdatei in die Variable "sSpieler[playerid][Skin]", wie ich es gesagt habe?
    Wenn ja, poste den Code wie du das machst. Wenn nein, mache das und vergesse nicht die Spalte in der Datenbank anzulegen.


    Du kannst (wenn du das mit dem Standard-Wert nicht verstehst) auch einfach
    sSpieler[playerid][Skin] = -1;
    bei OnPlayerConnect hinschreiben, und erst danach, wenn du geprüft hast ob der Spieler registriert ist (=Splate in der Datenbank vorhanden / Datei existiert) den Skin-Stat laden.

  • stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    dini_IntSet(Spieler,"Skin",0);
    SendClientMessage(playerid,CHATFARBE,"Du hast dich erfolgreich registriert!");
    SpielerReset(playerid);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    //LSPD MATERIAL
    SetObjectMaterial(comisaria, 4, 19378, "all_walls", "mp_shop_floor2", 0);
    SetObjectMaterial(comisaria, 5, 19378, "all_walls", "mp_shop_floor2", 0);
    SetObjectMaterial(comisaria, 6, 19378, "all_walls", "cj_lightwood", 0);
    SetObjectMaterial(comisaria, 7, 19378, "all_walls", "cj_lightwood", 0);
    SetObjectMaterial(comisaria, 8, 19378, "all_walls", "cj_lightwood", 0);
    SetObjectMaterial(comisaria, 12, 4586, "skyscrap3_lan2", "sl_skyscrpr05", 0);
    SetObjectMaterial(comisaria, 13, 19378, "all_walls", "mp_shop_floor2", 0);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),true))
    {
    SendClientMessage(playerid,CHATFARBE,"Du hast dich erfolgreich eingeloggt!");
    SpielerLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,CHATFARBE,"Du hast ein falsches Passwort eingegeben!");
    Kick(playerid);
    }
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
    dini_IntSet(Spieler,"Skin",sSpieler[playerid][Skin]);
    }
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
    sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][Team] = dini_Int(Spieler,"Team");
    sSpieler[playerid][sLogin] = 1;
    }
    return 1;
    }


    stock SpielerReset(playerid)
    {
    sSpieler[playerid][Skin] = -1;
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][Level] = 0;
    sSpieler[playerid][Fraktion] = 0;
    sSpieler[playerid][Team] = 0;
    return 1;
    }

  • Das:
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
    }
    else sSpieler[playerid][Skin] = -1;


    bei OnPlayerConnect hinschreiben.


    Den Rest so machen wie ich es in Post #8 beschrieben habe.