[Fehler]skin speichern und spawnen

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
  • so speicher ich den skin das ist ja in ordnung:
    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128], Float:saveX, Float:saveY, Float:saveZ;
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);


    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    new
    namee[MAX_PLAYER_NAME],
    string[128];
    GetPlayerName(playerid,namee,sizeof(namee));
    format(string,sizeof(string),"%s hat den Server verlassen.",namee);
    SendClientMessageToAll(0xFFFFFFAA,string);
    dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
    dini_IntSet(accFormat,"skin",GetPlayerSkin(playerid));
    GetPlayerPos(playerid,saveX, saveY, saveZ);
    dini_FloatSet(accFormat,"lastx",saveX);
    dini_FloatSet(accFormat,"lasty",saveY);
    dini_FloatSet(accFormat,"lastz",saveZ);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][wanted] = 0;
    Spieler[playerid][skin] = 0;
    return 1;
    }


    und hier soll ewr ihn auslesen:
    public OnPlayerSpawn(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);


    if(dini_Isset(accFormat,"lastx"))
    {
    SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
    }
    if(dini_Isset(accFormat,"skin"))
    {
    SetPlayerSkin(playerid,skin);
    }
    if(death[playerid] == true)
    {
    SetPlayerPos(playerid,-2656.4094,635.7793,14.4531);//Krankenhausposition
    SendClientMessage(playerid, 0xAA3333AA, "|_____________Krankenhaus_____________|");
    SendClientMessage(playerid, 0xAA3333AA, "Du warst schwer Verletzt.");
    SendClientMessage(playerid, 0xAA3333AA, "Die Arztrechnung beträgt $500.");
    GivePlayerMoney(playerid,-400);
    death[playerid] = false;
    }
    return 1;
    }


    aber wenn ich spawne dan habe ich immer einen skin der gar nicht zur auswahl steht und den habe ich dan die ganze zeit
    was ist da falsch ??


    MfG bad_company

  • if(dini_Isset(accFormat,"skin"))
    {
    SetPlayerSkin(playerid,dini_Int(accFormat, "skin"));
    }

    Versuchs mal so.

  • das müsst ich doch bei OnPlayerSpawn reinschreiben irgendwie
    das wenn man /speicherskin eintippt das dan ins dini gespeichert wird mit dcmd habe ich es grade nicht hinbekommen hier script:
    public OnPlayerSpawn(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    {
    dcmd(speicherskin,12,cmdtext);
    }


    dcmd_speicherskin(playerid,params[])
    #pragma unused params
    {
    new
    string[128];
    format(string,sizeof(string),"Skin gespeichert.");
    SendClientMessage(playerid,0xFFFF00AA,string);
    dini_IntSet(accFormat,"skin",GetPlayerSkin(playerid));
    return 1;
    }


    if(dini_Isset(accFormat,"lastx"))
    {
    SetPlayerPos(playerid,Spieler[playerid][lastx],Spieler[playerid][lasty],Spieler[playerid][lastz]);
    }
    if(dini_Isset(accFormat,"skin"))
    {
    SetPlayerSkin(playerid,dini_Int(accFormat, "skin"));
    }
    if(death[playerid] == true)
    {
    SetPlayerPos(playerid,-2656.4094,635.7793,14.4531);//Krankenhausposition
    SendClientMessage(playerid, 0xAA3333AA, "|_____________Krankenhaus_____________|");
    SendClientMessage(playerid, 0xAA3333AA, " Du warst schwer Verletzt.");
    SendClientMessage(playerid, 0xAA3333AA, " Die Arztrechnung beträgt $500.");
    GivePlayerMoney(playerid,-400);
    death[playerid] = false;
    }
    return 1;
    }