Kleines Abfragenproblem

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
  • Hallo Leute,


    eben ein kleines Problem. Ich speichere einen Inputtext via String und Dini in einer Ini-Datei in den Scriptfiles.
    In einem Dialog möchte ich nun den gespeicherten String auslesen, folgendermaßen gehe ich dabei vor:


    new Spielerdatei[64], Name[MAX_PLAYER_NAME], Text[256];
    GetPlayerName(playerid, Name, sizeof Name);
    format(Spielerdatei, sizeof Spielerdatei, "/Pfad/%s.ini", Spielername(playerid));
    format(Text, sizeof Text, "Text und so weiter und so fort. %s", dini_Get(Spielerdatei, "Name"));
    ShowPlayerDialog(playerid, DIALOG_TEST, DIALOG_STYLE_INPUT, "Test", Text, "Weiter", "Beenden");


    So weit, so gut. Hier taucht kein Problem auf, der Name wird ausgelesen und Ingame wiedergegeben.
    Mir ist diese Variante schlicht weg zu unübersichtlich und zu lang.


    Diese sollte, meiner Meinung nach Abhilfe schaffen:


    stock Acc_Get(playerid, Zeile[])
    {
    new Spielerdatei[64], Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof Name);
    format(Spielerdatei, sizeof Spielerdatei, "/Pfad/%s.ini", Spielername(playerid));
    dini_Get(Spielerdatei, Zeile);
    return 1;
    }


    Wie wende ich das ganze nun an? Seht her:


    new Text[256];
    format(Text, sizeof Text, "Text und so weiter und so fort. %s", Acc_Get(playerid, "Name"));
    ShowPlayerDialog(playerid, DIALOG_TEST, DIALOG_STYLE_INPUT, "Test", Text, "Weiter", "Beenden");


    Pff, denkt sich das Script jetzt. Was wird ausgegeben? Der Spielername, der mit Spielername(playerid), abgefragt wird. Dazu kommt noch, dass Hex-Codes verschoben werden ... :wacko:


    Wo liegt aber nun der Fehler?


    MfG
    Eliot Ness

  • stock Acc_Get(playerid, Zeile[])
    {
    new Spielerdatei[64];
    format(Spielerdatei, sizeof Spielerdatei, "/Spielerdaten/Accounts/%s.acc", Spielername(playerid));
    return dini_Get(Spielerdatei, Zeile);
    }


    Ein Wunder ist geschehen. Jetzt folgt noch nicht einmal der Dialog :)


    MfG
    Eliot Ness