Probleme beim 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
  • Hay Leute.


    Bin gerade dabei ein Register System zu erstellen. (DINI)


    Bei einem Dialog kann man auswählen woher man kommt. Das geht auch, so sieht der return von dem Dialog aus:


    new string[50];
    format(string, sizeof(string), "Deutschland");
    SetPVarString(playerid,"Herkunft",string);



    So wird die Spielerdatei einen Dialog davor erstellt:


    stock Reg(playerid,key[])
    {
    new SpielerD[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(SpielerD,sizeof(SpielerD),"/User/%s.txt",name);
    dini_Create(SpielerD);
    dini_Set(SpielerD,"Passwort",key);
    dini_Set(SpielerD,"Herkunft","error");
    dini_IntSet(SpielerD,"Level",1);
    dini_IntSet(SpielerD,"Adminlevel",0);
    ......



    Wieso speichert er mir den Ort nicht ab?
    In der Spielerdatei steht immer Herkunft= error


    Bitte um Hilfe,
    Danke :)

  • evtl. weil du auch nur error abspeicherst ?!


    dini_Set(SpielerD,"Herkunft","error");


    Anstatt Error die Herkunft ?!
    Für was verwendest du eig. Dini Das mysql ORM System ist doch noch leichter :D

    Naja, dass "error" wird ja einen Dialog davor als Platzhalter gespeichert.
    Beim Dialog, inwelchen man den Ort angeben muss, soll dann error durch Deutschland ersetzt werden.


    Hab leider immernoch keine Lösung :(

  • stock Reg(playerid,key[], inputtext[])
    {
    new SpielerD[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(SpielerD,sizeof(SpielerD),"/User/%s.txt",name);
    dini_Create(SpielerD);
    dini_Set(SpielerD,"Passwort",key);
    dini_Set(SpielerD,"Herkunft",inputtext);
    dini_IntSet(SpielerD,"Level",1);
    dini_IntSet(SpielerD,"Adminlevel",0);
    ......


    Probiert Probier s mal :)

  • Danke für deine Hilfe, aber das kann nicht gehen.
    Weil es sich unteranderem um DIALOG_STYLE_LIST handelt und nicht um einen Inputtext (sorry hatte ich vergessen zu erwähnen) ;)

  • if(dialogid == DIALOG_ORT)
    {
    if(response)
    {
    if(listitem == 0)
    {
    new string[50];
    format(string, sizeof(string), "Deutschland");
    SetPVarString(playerid,"Herkunft",string);
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,"{FF4000}DLR{FFFFFF} Alterseingabe","Du kommst also aus Deutschland.\nNun fehlt nur noch dein Alter, um deine Spielerakte zu vervollständigen.\nDazu gibst du einfach dein Alter in das Eingabefeld ein.","Weiter"," ");
    }
    if(listitem == 1)
    {
    new string[50];
    format(string, sizeof(string), "Österreich");
    SetPVarString(playerid,"Herkunft",string);
    //SetPVarInt(playerid,"Herkunft","Österreich");
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,"{FF4000}DLR{FFFFFF} Alterseingabe","Du kommst also aus Österreich.\nNun fehlt nur noch dein Alter, um deine Spielerakte zu vervollständigen.\nDazu gibst du einfach dein Alter in das Eingabefeld ein.","Weiter"," ");
    }
    }
    }

  • du hast nicht kappiert was ich meine?
    dini_Set(SpielerD,"Herkunft",GetPVarString(playerid,"Herkunft"));


    Ich arbeite aber net mit PVars ich hoffe die Paramenter sind richtig

    Nein sind sie nicht, GetPVarString hat 4 Parameter. Habe einmal den Wikibeitrag dazu rausgesucht und verlinkt. Sollte dir das nicht weiterhelfen, weißst du ja wo du mich finden kannst Askari :D .

  • stock Reg(playerid, key[])
    {
    new SpielerD[64], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(SpielerD,sizeof(SpielerD),"/User/%s.txt",name);
    dini_Create(SpielerD);
    dini_Set(SpielerD,"Passwort",key);
    dini_Set(SpielerD,"Herkunft",GetPVarString(playerid,"Herkunft"));
    dini_IntSet(SpielerD,"Level",1);
    dini_IntSet(SpielerD,"Adminlevel",0);
    return 1;
    }


    So Sollte es Klappen

  • Weil GetPVarString() auch keinen string, sondern die Länge des Strings (sprich einen Integer) zurückgibt. Wie die richtige Verwendung von GetPVarString() aussieht, kannst du im Wikibeitrag nachlesen.

  • dini_Set(SpielerD,"Herkunft",GetPVarString(playerid,"Herkunft"));


    Also, schreib es so:


    new tmp[32];
    GetPVarString(playerid,"Herkunft",tmp);
    dini_Set(SpielerD,"Herkunft",tmp);


    mfg. :thumbup:

    ast2ufdyxkb1.png


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