Lo_Waffen Speichern/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
  • Guten Tag,
    ich möchte euch heute mein Waffen Speicher/Lade System vorstellen. Es war ursprünglih
    in meinem Shop verfügbar, jedoch lief dieser nicht al zu gut und ich hatte immer weniger Zeit.
    Nun habe ich mich dafür entschieden es Öffentlich zu machen. Es ist nichts großes oder tolles,
    jedoch wird es bestimmt einigen helfen:
    [tabmenu]

    [tab='Beschreibung'] Durch dieses System verfallen die Waffen nicht wie herkömmlich, sondern sie werden beim
    Offline gehen gespeichert. Sobald mann dann wieder auf den Server kommt und Gespawnt wird, bekommt man
    sämtliche Waffen wieder, die man beim Offline gehen hatte.[tab='Screenshots'] Zu diesem System gibt es leider keine Screenshots, da man hier schlecht Bilder machen kann.[tab='Download'] Zu erst den pastebin das ihr auch sehen könnt was drinne ist:
    Pastebin
    Und natürlich auch der Download mit allen Scriptfiles Includes etc.:
    Download [tab='Credits'] Credits an:
    SA-MP Developer: -Pawno Includes
    Dracoblue: -Include Dini
    lollipop: -Scripting[/tabmenu]


    Ich hoffe es konnte einigen von euch helfen.
    Mit freundlichen Grüßen
    Sven



    //edit Download Link vergessen
    //Edit Credits
    //Edit Donwloadlink u. Pastebin erneuert


    Bewerte mich und meine Transaktionen als Mittelsmann

    2 Mal editiert, zuletzt von lollipop ()

  • Bitte so umschreiben, dass man es als Filterscript verwenden kann...


    Sonst Präfix ändern


    main(){ print("\n----------------------------------"); print(" Waffen Speichern/Laden by Sven"); print("----------------------------------\n");} #endif

  • ich hab mir die zwei stocks und den enum + das dazugehörige new ... in mein GM kopiert den rest habe ich so gescriptet


    if(strcmp(cmdtext,"/saveguns",true)==0){
    if(PlayerInfo[playerid][pInt] >= 1){
    WaffenSpeichern(playerid);
    }return SendClientMessage(playerid,COLOR_WHITE,"Du bist in keinem Haus.");
    }
    if(strcmp(cmdtext,"/getguns",true)==0){
    if(PlayerInfo[playerid][pInt] >= 1){
    WaffenLaden(playerid);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot],wInfo[playerid][aslot]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot1],wInfo[playerid][aslot1]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot2],wInfo[playerid][aslot2]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot3],wInfo[playerid][aslot3]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot4],wInfo[playerid][aslot4]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot5],wInfo[playerid][aslot5]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot6],wInfo[playerid][aslot6]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot7],wInfo[playerid][aslot7]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot8],wInfo[playerid][aslot8]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot9],wInfo[playerid][aslot9]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot10],wInfo[playerid][aslot10]);
    GivePlayerWeapon(playerid,wInfo[playerid][wslot11],wInfo[playerid][aslot11]);
    }return SendClientMessage(playerid,COLOR_WHITE,"Du bist in keinem Haus.");
    }


    nun bekomme ich immer diese Errors
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(14444) : error 021: symbol already defined: "strtok"
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(14459) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(26930) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(26964) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(27005) : error 047: array sizes do not match, or destination array is too small
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(44909) : error 021: symbol already defined: "StripNewLine"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.


    die hatte ich vorher nicht..

  • C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(14444) : error 021: symbol already defined: "strtok"

    Schon definiert einfach das new löschen
    C:\Users\Test\Desktop\Neuer Ordner\GDR.pwn(44909) : error 021: symbol already defined: "StripNewLine"

    exakt das selbe
    Ansosnten kann ich dir ohne Zeile auch nicht weiter helfen.
    Mit freundlichen Grüßen
    Sven


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Also ich habe alles genau so in mein GM eingebaut und habe jetz ein befehl gemacht das es die speichert ^^ (die waffen speichert es nicht beim ausloggen) also habe ich gedacht mach ich ein befehl ab die speichert es auch nicht alles muss am stock liegen ^^


    da is der befehl
    if(strcmp(cmdtext, "/SpeichernWaff", true) == 0)//Befehl beginnt
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du hast deine Waffen gespeichert");
    WaffenSpeichern(playerid);
    return 1;
    }


    der geht auch gut


    da ist stocks
    waffenladen und speichern könnt ihr da mal rüber schauen und gucken ob es einen fehler gibt also errors gibt es da nix

    stock WaffenSpeichern(playerid)
    {
    new waffe,ammo,save[40],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Speichern____________________________________
    GetPlayerWeaponData(playerid,0,waffe,ammo);
    dini_IntSet(save,"waslot",waffe);
    dini_IntSet(save,"amslot",ammo);
    GetPlayerWeaponData(playerid,1,waffe,ammo);
    dini_IntSet(save,"waslot1",waffe);
    dini_IntSet(save,"amslot1",ammo);
    GetPlayerWeaponData(playerid,2,waffe,ammo);
    dini_IntSet(save,"waslot2",waffe);
    dini_IntSet(save,"amslot2",ammo);
    GetPlayerWeaponData(playerid,3,waffe,ammo);
    dini_IntSet(save,"waslot3",waffe);
    dini_IntSet(save,"amslot3",ammo);
    GetPlayerWeaponData(playerid,4,waffe,ammo);
    dini_IntSet(save,"waslot4",waffe);
    dini_IntSet(save,"amslot4",ammo);
    GetPlayerWeaponData(playerid,5,waffe,ammo);
    dini_IntSet(save,"waslot5",waffe);
    dini_IntSet(save,"amslot5",ammo);
    GetPlayerWeaponData(playerid,6,waffe,ammo);
    dini_IntSet(save,"waslot6",waffe);
    dini_IntSet(save,"amslot6",ammo);
    GetPlayerWeaponData(playerid,7,waffe,ammo);
    dini_IntSet(save,"waslot7",waffe);
    dini_IntSet(save,"amslot7",ammo);
    GetPlayerWeaponData(playerid,8,waffe,ammo);
    dini_IntSet(save,"waslot8",waffe);
    dini_IntSet(save,"amslot8",ammo);
    GetPlayerWeaponData(playerid,9,waffe,ammo);
    dini_IntSet(save,"waslot9",waffe);
    dini_IntSet(save,"amslot9",ammo);
    GetPlayerWeaponData(playerid,10,waffe,ammo);
    dini_IntSet(save,"waslot10",waffe);
    dini_IntSet(save,"amslot10",ammo);
    GetPlayerWeaponData(playerid,11,waffe,ammo);
    dini_IntSet(save,"waslot11",waffe);
    dini_IntSet(save,"amslot11",ammo);
    return 1;
    }


    stock WaffenLaden(playerid)
    {
    new save[40],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Laden____________________________________
    wInfo[playerid][wslot] =dini_Int(save,"waslot");
    wInfo[playerid][wslot1] =dini_Int(save,"waslot1");
    wInfo[playerid][wslot2] =dini_Int(save,"waslot2");
    wInfo[playerid][wslot3] =dini_Int(save,"waslot3");
    wInfo[playerid][wslot4] =dini_Int(save,"waslot4");
    wInfo[playerid][wslot5] =dini_Int(save,"waslot5");
    wInfo[playerid][wslot6] =dini_Int(save,"waslot6");
    wInfo[playerid][wslot7] =dini_Int(save,"waslot7");
    wInfo[playerid][wslot8] =dini_Int(save,"waslot8");
    wInfo[playerid][wslot9] =dini_Int(save,"waslot9");
    wInfo[playerid][wslot10] =dini_Int(save,"waslot10");
    wInfo[playerid][wslot11] =dini_Int(save,"waslot11");
    wInfo[playerid][aslot] =dini_Int(save,"amslot");
    wInfo[playerid][aslot1] =dini_Int(save,"amslot1");
    wInfo[playerid][aslot2] =dini_Int(save,"amslot2");
    wInfo[playerid][aslot3] =dini_Int(save,"amslot3");
    wInfo[playerid][aslot4] =dini_Int(save,"amslot4");
    wInfo[playerid][aslot5] =dini_Int(save,"amslot5");
    wInfo[playerid][aslot6] =dini_Int(save,"amslot6");
    wInfo[playerid][aslot7] =dini_Int(save,"amslot7");
    wInfo[playerid][aslot8] =dini_Int(save,"amslot8");
    wInfo[playerid][aslot9] =dini_Int(save,"amslot9");
    wInfo[playerid][aslot10] =dini_Int(save,"amslot10");
    wInfo[playerid][aslot11] =dini_Int(save,"amslot11");
    return 1;
    }

  • Hallo,
    kleine Frage es klappt alles super :), danke nur habe noch eine Frage:
    wie kann man selber eine waffe bestimmen z.B. bei OnPlayerSpawn (also Standardwaffen) z.B.

    Code
    GivePlayerWeapon(playerid,WaffenSpeichern[playerid]1,WaffenSpeichern[playerid]1);//schlagring


    aber es klappt nicht oder ich habe bei Grove-Team folgende Waffen:

    Code
    GivePlayerWeapon(playerid,1,1);//Schlagring	    
    GivePlayerWeapon(playerid,24,100);//Deagle	    
    GivePlayerWeapon(playerid,29,150);//MP5	    
    GivePlayerWeapon(playerid,31,150);//M4



    und wenn ich sterbe dann behalte ich die anzahl von alten Waffe oder die ganz alte Waffen also die anderen Waffen wie Shotgun oder so werden nicht auf 0 gesetzt :S .


    jou meine Frage ist eben wie kann man die Waffen in dieser art vergeben?

    Code
    GivePlayerWeapon(playerid,WaffenSpeichern[playerid][waffenslot],WaffenSpeichern[playerid][munislot]);//schlagring


    somit wenn es möglich ist kann ich dann bei OnPlayerDeath die waffen auf 0 setzen :) .


    MfG,
    kilgut

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das geht aber noch um einiges besser, ich zeige dir mal ein Beispiel von WaffenSpeichern:


    stock WaffenSpeichern(playerid)
    {
    new waffe,ammo,save[40],name[MAX_PLAYER_NAME], i, string[9];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Speichern____________________________________
    for(; i!=11; i++) {
    GetPlayerWeaponData(playerid,i,waffe,ammo);
    format(string, sizeof string,"waslot%d",i);
    dini_IntSet(save,string,waffe);
    format(string, sizeof string,"amslot%d",i);
    dini_IntSet(save,string,ammo);
    }
    return 1;
    }
    Dann musst du das nicht 11x ausführen, das hättest du bei den anderen Sachen auch machen können, würdest einiges an Code sparen ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Ich kann dir da leider nicht helfen, da es bei mir wunderbar und einwandfrei funktioniert hat.
    Mit der optimierung des Codes hätte ich Zeilen sparen könne. Naja damals war ich halt noch nicht so weit.
    Von meiner Seite wird es kein Update geben.


    Mit fruendlichen Grüßen
    Sven


    Bewerte mich und meine Transaktionen als Mittelsmann