Waffen Speichern

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
  • Moin


    ich hab probiert Waffen zu speichern nun habe ich es so


    public SpeicherWaffen(playerid)
    {
    GetPlayerName(playerid,pName,sizeof pName);
    format(accFormat,sizeof accFormat,"SAP/User%s.datei",pName);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    new waffe,muni,frm[20];
    for(new i = 0;i<13;i++)
    {
    GetPlayerWeaponData(playerid,i,waffe,muni);
    format(frm,sizeof frm,"WSlot%d",i);
    Spieler[playerid][frm] = waffe;
    format(frm,sizeof frm,"WAmmu%d",i);
    Spieler[playerid][frm] = muni;
    }
    }
    SpielerDatenSpeichern(playerid);
    SendClientMessageToAll(COLOR_WHITE,"Die Waffen sind nun gespeichert!");
    return 1;
    }


    die Enum ist ca. so aufgebaut



    enum blalbla
    {
    WSlot1,
    WSlot2,
    etc.
    WAmmu1,
    WAmmu2,
    etc
    }


    mit dem String möchte ich bewirken das genau nur der derzeitige WSlot + WAmmu abgerufen wird.
    Gibt es eine möglichkeit, das dies funktioniert weil derzeit bekomme ich nur 2 Fehler raus.


    Zeile (2703) : error 033: array must be indexed (variable "frm")
    Zeile (2706) : error 033: array must be indexed (variable "frm")


    mfG. Apoolecu

  • format(frm,sizeof frm,"WSlot%d",i);
    Spieler[playerid][frm] = waffe;

    Das funktioniert nicht, dann müsstest du das enum so erstellen
    enum blalbla
    {
    WSlot1,
    WSlot2,
    etc.
    WAmmu1,
    WAmmu2,
    frm[20] // einen String erstellen
    }
    weil das sonst nicht mit format funktioniert.

  • Hey,


    ich habe ein wenig herum probiert und bin auf dies herraus gekommen.


    public SpeicherWaffen(playerid)
    {
    GetPlayerName(playerid,pName,sizeof pName);
    format(accFormat,sizeof accFormat,"SAP/User/%s.datei",pName);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    new waffe,muni,frm[20];
    for(new i = 0;i<13;i++)
    {
    GetPlayerWeaponData(playerid,i,waffe,muni);
    {
    format(frm,sizeof frm,"WSlot%d",i);
    dini_IntSet(accFormat,frm,waffe);
    format(frm,sizeof frm,"WAmmu%d",i);
    dini_IntSet(accFormat,frm,muni);
    printf(" %d, Waffe: %d, Ammu: %d",i,waffe,muni);
    }
    }
    }
    SpielerDatenSpeichern(playerid);
    SendClientMessageToAll(COLOR_WHITE,"Die Waffen sind nun gespeichert!");
    return 1;
    }


    problem bei printf kommt jedes mal nur diese Anzeige ,,SlotID (richtige anzeige) Waffe: 0 , Ammu: 0"
    das kann aber nicht sein weil ich jedes mal wenn ich die Funktion teste eine Shotgun in meiner Hand habe mit 500 Schuss..


    MfG: Apoolecu