Waffen in meiner Spielerdatei abspeichern?

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
  • Hey ;)


    Also ich weiß nicht genau wie ich meine waffen in der spielerdatei speichern soll..


    so sieht die bei mir aus:


    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,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Money",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    new Float:Health;
    new Float:Armour;
    new Float:x, Float:z, Float:y;
    GetPlayerHealth(playerid,Health);
    GetPlayerArmour(playerid,Armour);
    dini_FloatSet(Spielerdatei,"Armour",Armour);
    GetPlayerPos(playerid,x,y,z);
    dini_FloatSet(Spielerdatei,"Health",Health);



    }
    return 1;
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Money"));
    SetPlayerHealth(playerid,dini_Int(Spielerdatei,"Health"));
    SetPlayerArmour(playerid,dini_Int(Spielerdatei,"Armour"));
    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,COLOR_RED,"You are baned from this server.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

  • Okay habs jetzt hinbekommt das kein fehler kommt..


    Der speichert die waffen zwar aber läd sie nicht..


    Speichern:
    new waffe, ammo;
    GetPlayerWeaponData(playerid,2,waffe,ammo);
    dini_IntSet(Spielerdatei,"Wslot1",waffe);
    dini_IntSet(Spielerdatei,"Mslot1",ammo);
    Laden:
    GivePlayerWeapon(playerid, dini_Int(Spielerdatei,"Wslot1"), dini_Int(Spielerdatei,"Mslot1"));


    Weiß einer warum's nicht läd?..

    2 Mal editiert, zuletzt von xOFxK1LLER ()

  • Das müsste so aussehen:
    Du musst alles erst laden bevor du etwas vergeben kannst.
    Also so:

    dini_IntSet(Spielerdatei,"Waslot1",waffe);
    dini_IntSet(Spielerdatei,"Mslot1",ammo);
    GetPlayerWeaponData(playerid,2,waffe,ammo);
    So sollte es gehen.
    mfg


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Zitat

    dini_IntSet(Spielerdatei,"Waslot1",waffe);
    dini_IntSet(Spielerdatei,"Mslot1",ammo);
    GetPlayerWeaponData(playerid,2,waffe,ammo);


    ... :thumbdown: :thumbdown: :thumbdown:


    Bei sowas krieg ich Agressionen.



    erst laden vs. dini_IntSet


    Set ist schon ein schweres Wort...





    Was steht denn unter Waslot1 und Mslot1 in der Datei?


  • Waslot isn schreibfehler gewesen es is wslot und in der spielerdatei steht:
    Wslot1=0
    Mslot1=0


    wenn ich mir jetzt ingame ne deagle oderso gebe mit 500 muni steht da:
    Wslot1=24
    Mslot1=500


    aber nach relog wird nichts geladen und wenn ich dann wieder raus gehe steht wieder
    Wslot1=0
    Mslot1=0

  • SetPVarInt(playerid, "Wslot1", dini_Int(Spielerdatei, "Wslot1"));
    SetPVarInt(playerid, "Mslot1", dini_Int(Spielerdatei, "Mslot1"));
    //Das hier erst bei OnPlayerSpawn:
    GivePlayerWeapon(playerid, GetPVarInt(playerid, "Wslot1"), GetPVarInt(playerid, "Mslot1"));


    Vielleicht gehts ja, bin mir aber nicht sicher ^^