Mit dini Variable aus .txt herauslesen - Warum geht es nicht ?

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
  • Guten Morgen,
    Ich habe mir mithilfe eines Accountsystems angelegt, das pro Spieler eine .txt mit allen möglichen Variablen darin angelegt werden.
    Ich möchte nun einfach einspeichern und herauslesen können, ob der Benutzer Waffendealer ist oder nicht.
    Das abspeichern klappt gut, nur das herauslesen funktioniert nicht:

    new waffendealer[MAX_PLAYERS] = 0;
    #define DIALOG_WD 3

    Stocks:

    stock JOB_WD(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.txt",name);
    dini_Set(Spielerdatei,"JOB_WD","1");
    }
    stock JOB_WD_GET(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.txt",name);
    if(dini_Isset("accounts/%s.txt","JOB_WD=1"))
    {
    waffendealer[playerid] = 1;
    }
    else
    {
    waffendealer[playerid] = 0;
    }
    return 1;
    }
    stock JOB_WD_CANCEL(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.txt",name);
    dini_Set(Spielerdatei,"JOB_WD","0");
    return 1;
    }

    Dialog:

    public onDialogResponse(...)
    {
    if(dialogid==DIALOG_WD)
    {
    if(response==1)
    {
    if(waffendealer[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du bist schon Waffendealer!");
    }
    else
    {
    waffendealer[playerid] = 1;
    JOB_WD(playerid);
    SendClientMessage(playerid,COLOR_GELB,"Du bist nun Waffendealer! Für weitere Infos tippe '/help Waffendealer' in den Chat ein!");
    }
    }
    }
    }


    Der Pickup ist ja nicht so wichtig, aber hier noch:

    public onPlayerConnect(...)
    {
    JOB_WD_GET(playerid);
    }


    Was stimmt hier nicht ?


    MfG ;*

  • stimmt tausch dein dini_set durch dini_IntSet aus dann sollte es klappen

  • Habe sie als Integer gesetzt, funktionniert allerdings immer noch nicht, ich drehe solangsam durch =D


    // Edit: Also mein Code sieht jetzt so aus:

    stock JOB_WD(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"JOB_WD",1);
    }
    stock JOB_WD_GET(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.txt",name);
    if(dini_Isset("accounts/%s.txt","JOB_WD") == 1)
    {
    waffendealer[playerid] = 1;
    SendClientMessage(playerid,COLOR_RED,"RANDOM!");
    }
    else
    {
    waffendealer[playerid] = 0;
    }
    return 1;
    }

  • s1con1337:
    So wie ich es lesen Konnte, willst du das man Aus der .txt Rauslesen.
    Kan ob man Waffendealer ist or nicht.


    Ich habe mich mal dran gesetz,und geschaut wie man es am besten machen könnte.


    Hier villt mal ein Beispiel:
    stock JOB_WD(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/waffendealer/%s.dini",name);
    dini_IntSet(Spielerdatei,"JOB_WD","1");
    }
    stock JOB_WD_GET(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/waffendealer/%s.dini",name);
    if(dini_IntSet("waffendealer/%s.dini","JOB_WD=1"))
    {
    waffendealer[playerid] = 1;
    }
    else
    {
    waffendealer[playerid] = 0;
    }
    return 1;
    }
    stock JOB_WD_CANCEL(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/waffendealer/%s.dini",name);
    dini_IntSet(Spielerdatei,"JOB_WD","0");
    return 1;
    }


    Du musst dan Natürlich den Ordner Waffendelader In den Script Files haben


    Wenn es dir nicht geholfen hat, kontaktiere mich mal


    MFG
    Blackfly