Skin laden

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,
    ich hatte grade ein Topic offen wo mein /setskin Befehl nicht richtig ging. Jetzt kann ich meinen Skin nicht laden. Speichern tut ers ja...


    SaveAccount:

    stock SaveAccount(playerid)
    {
    new SpielerDatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(SpielerDatei,sizeof(SpielerDatei),"/accounts/%s.ini",name);
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(SpielerDatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(SpielerDatei,"baned",GetPVarInt(playerid,"baned"));
    dini_IntSet(SpielerDatei,"Skin",GetPlayerSkin(playerid));
    return 1;
    }


    LoadAccount:

    stock LoadAccount(playerid)
    {
    new SpielerDatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(SpielerDatei,sizeof(SpielerDatei),"/accounts/%s.ini",name);
    SetPlayerScore(playerid,dini_Int(SpielerDatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(SpielerDatei,"Geld"));
    SetPlayerSkin(playerid,dini_Int(SpielerDatei,"Skin"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(SpielerDatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(SpielerDatei,"Fraktion"));
    SetPVarInt(playerid,"baned",dini_Int(SpielerDatei,"baned"));
    if(GetPVarInt(playerid,"baned")==1)
    {
    SendClientMessage(playerid,ADMINCMD,"Leider wurdest du von der Community ausgeschlossen. Sprich: gebannt.");
    SendClientMessage(playerid,ADMINCMD,"Wie es aussieht hast du etwas schlimmes getan. Aber gebe die Hoffnung nicht auf!");
    SendClientMessage(playerid,ADMINCMD,"Gehe einfach in unser Forum und schreibe einen Entbanantag.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

  • Huhu,


    also du machst unter:


    SaveAccount - dini_IntSet(Spielerdatei,"Skin",GetPVarInt(playerid,"Skin"));


    LoadAccount - SetPVarInt(playerid,"Skin",dini_Int(Spielerdatei,"Skin"));


    OnPlayerSpawn - SetPlayerSkin(playerid,GetPVarInt(playerid,"Skin"));


    hier noch ein SetSkin befehl:


    ocmd:setskin(playerid,params[])
    {
    //Adminabfrage
    new pID,sID;
    if(sscanf(params,"ui",pID,sID))return SendClientMessage(playerid,BLAU,"/setskin [ID] [SkinID]");
    SetPlayerSkin(pID,sID);
    SendClientMessage(playerid,ORANGE,"Du hast nun ein neuen Skin");
    return 1;
    }


    Gruß Brand


    #e Befehl eingefügt

  • Save Account dini_IntSet(Spielerdatei,"Skin", GetPlayerSkin(playerid));
    Load Account SetPlayerSkin(playerid, dini_Int(Spielerdatei,"Skin"));

  • Save Account = dini_IntSet(Spielerdatei,"Skin", GetPlayerSkin(playerid));
    Load Account = SetPlayerSkin(playerid, dini_Int(Spielerdatei,"Skin"));


    darunter machst dus


    hoffe konnte helfen

  • Wenn du z. B. den Sever nur Restartest ohne auszuloggen wird es eh nicht gespeichert außer du hast die funktion drin.


    stock SaveAllPlayerAccounts()
    {
    for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
    {
    if(IsPlayerConnected(playerid) && playerid != INVALID_PLAYER_ID)
    {
    SaveAccount(playerid);
    }
    }
    return 1;
    }


    Restartbefehl müsste dann so aussehn..


    if(strcmp(cmdtext, "/restart", true) == 0)
    {
    //Adminabfrage
    SaveAllPlayerAccounts();
    GameModeExit();
    return 1;
    }


    Gruß Brand

  • Geht tortzdem nich Brand...


    WTF: Ich habe mal ein paar Tests gemacht. Wenn ich mir inGame Skinid 50 gebe und mich auslogge, wurde es gespeichert. Dann logge ich mich garnz normal ein und habe wieder den festgelegten Skin. Wenn ich in der .ini Datei aber meinen Skin per Hand auf 50 setzte, mich dann mit einem falschen und im 2.Versuch mit einem richtigen Passwort einlogge, habe ich den Skin 50...

  • Problem gelöst. PVars heißt die Antwort. ^^


    Bei LoadAccount einfach:

    SetPVarInt(playerid,"Skin",dini_Int(SpielerDatei,"Skin"));


    Bei SaveAccount einfach:

    dini_IntSet(SpielerDatei,"Skin",GetPVarInt(playerid,"Skin"));


    Und dann bei OnPlayerSpawn:

    SetPlayerSkin(playerid,GetPVarInt(playerid,"Skin"));


    Danke an blay09 für seine selbstlose Hilfe. :)

  • Aber das wäre auch mit anderen Variablen gegangen!;)

  • Bei mir auch nicht :( mir wird immer der CJ Skin gesetzt

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco