Skin Speichern Problem ..

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Abend


    Ich habe wieder mal ein kleines problem, dieses ma liegt das problem bei Den Skins. Also ich habe für eine Fraktion ein Befehl erstellt, /skin wenn sie dies machen kommt ein Dialog wo 4 skins ausgesucht werden können, klicken sie auf einen wird der skin auch Gechanget aber wenn ich z.B den Server Neu Starte dann hat er wieder den normalen skin wie vorher :S ..


    Also was ich möchte ist wenn er /skin eingibt und ein Skin auswählt das der Skin nach einen Restart immer noch da ist.. Ich hoffe ihr könn mir weiter helfen :D





    MFG: Equ_Res :)

  • Wie soll man dir ohne irgendeinen Code deiner Scriptes zu sehen helfen?

  • .. ehm ja hier ist der /skin Befehl ..



    ocmd:skin(playerid,params[])
    {
    // Mafia Skin Equipment
    if(isPlayerInFrakt(playerid,1))
    if(IsPlayerInRangeOfPoint(playerid,1.0,-2654.3274,1396.4691,906.4609))
    {
    ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Mafia Skin Auswahl"," Skin 1 \n Skin 2 \n Skin 3 \n Skin 4 ","Okay","Schliessen");
    }
    // LSPD Skin Equipment
    if(isPlayerInFrakt(playerid,3))
    if(IsPlayerInRangeOfPoint(playerid,1.0,251.7556,120.8995,1003.2188))
    {
    ShowPlayerDialog(playerid,4,DIALOG_STYLE_LIST,"LSPD Skin Auswahl"," Skin 1 \n Skin 2 \n Skin 3 \n Skin 4 ","Okay","Schliessen");
    }
    return 1;
    }

  • Der Befehl sagt auch gar nichts über das Speichern oder Laden aus.

  • EDIT: Villeicht hilft dir das weiter


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerSkin(playerid);
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Rank",GetPVarInt(playerid,"Rank"));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"Coins",GetPVarInt(playerid,"Coins"));
    dini_IntSet(Spielerdatei,"Warns",GetPVarInt(playerid,"Warns"));
    }
    return 1;
    }

  • dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));

  • so Richtig ?



    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Rank",GetPVarInt(playerid,"Rank"));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"Coins",GetPVarInt(playerid,"Coins"));
    dini_IntSet(Spielerdatei,"Warns",GetPVarInt(playerid,"Warns"));
    dini_IntSet(Spielerdatei,"Skins",GetPlayerSkin(playerid));
    }
    return 1;
    }

  • leute das heißt


    GetPlayerSkin(playerid);
    wenn es mehr werden gibts errors!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    GetPlayerMoney(playerid);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Rank",dini_Int(Spielerdatei,"Rank"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Level",dini_Int(Spielerdatei,"Level"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    SetPVarInt(playerid,"Coins",dini_Int(Spielerdatei,"Coins"));
    SetPVarInt(playerid,"Warns",dini_Int(Spielerdatei,"Warns"));
    SetPVarInt(playerid,"Skin",dini_Int(Spielerdatei,"Skin"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du Bist doch Gebannt...");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

  • OnPlayerSpawn brauch dann noch SetPlayerSkin(playerid, GetPVarInt(playerid,"Skin"));

  • Also so müsste es dann bei OnPlayerSpawn aussehen ?


    public OnPlayerSpawn(playerid)
    {
    SetPlayerSkin(playerid, GetPVarInt(playerid,"Skin"));
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{}
    case 1:{SetPlayerPos(playerid,mafiaspawn);SetPlayerInterior(playerid,3);}
    case 2:{SetPlayerPos(playerid,oamtspawn);SetPlayerInterior(playerid,18);}
    case 3:{SetPlayerPos(playerid,lspdspawn);SetPlayerInterior(playerid,10);}
    case 4:{SetPlayerPos(playerid,fbispawn);SetPlayerInterior(playerid,6);}
    }
    return 1;
    }

  • Wofür noch eine extra PVar, wenn es eine direkte Funktion gibt?



    dini_IntSet(Spielerdatei,"Skins",GetPlayerSkin(playerid));


    Das ist ja schon mal korrekt, danach geh unter das OnPlayerSpawn-Callback und schreibe folgendes darunter:


    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));


    Und schon wurde dein Skin gespeichert.. picóbello!

    Let the party begin - turn all the lights on!

  • Die PVar kann man dafür nehmen, damit man später ein Anti Skin-Cheat machen kann.;)

  • Die PVar kann man dafür nehmen, damit man später ein Anti Skin-Cheat machen kann.;)


    Dazu muss er aber noch einen Timer starten, der überprüft, ob GetPlayerSkin der PVar entspricht. ;)


    Wenn es nur beim Login „überprüft“ wird, bringt es ja einem wenig.

    Let the party begin - turn all the lights on!