Pin speichert falsch

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
  • Hey,
    wenn ich den Pin(1234) speichern will, kommt immer 0!



    if(dialogid==DIALOG_CREATEPIN)
    {
    new Bankdatei[64];
    if(response==0)
    {
    SCM(playerid,COLOR_BLUE,"Du hast den Vorgang abgebrochen");
    }
    if(response==1)
    {
    new string[128];
    format(Bankdatei,sizeof(Bankdatei),"/Bankdaten/%s.ini",SpielerName(playerid));
    dini_Create(Bankdatei);
    dini_IntSet(Bankdatei,"Pin",strval(inputtext));
    dini_IntSet(Bankdatei,"Geld",STARTBONUS);
    dini_IntSet(Bankdatei,"ECKarte",0);
    BankSpeichern(playerid);
    BankLaden(playerid);
    format(string,sizeof(string),"Du hast absofort ein Bankkonto.\nDu erhielst außerdem ein Startbonus von $2000.\nPin: %d\nGeld: 2000\n\n BITTE MACH EIN RELOG !\n Damit auch alles funktioniert",strval(inputtext));
    ShowPlayerDialog(playerid,bankdaten,DIALOG_STYLE_MSGBOX,"Übersicht",string,"Bestätigen","Abbrechen");
    }
    }



    stock BankSpeichern(playerid)
    {
    new Bankdatei[64];
    format(Bankdatei,sizeof(Bankdatei),"/Bankdaten/%s.ini",SpielerName(playerid));
    if(fexist(Bankdatei))
    {
    dini_IntSet(Bankdatei,"Geld",Bank[playerid][sGeld]);
    dini_IntSet(Bankdatei,"Pin",Bank[playerid][sPin]);
    dini_IntSet(Bankdatei,"ECKarte",Bank[playerid][sKarte]);
    }
    return 1;
    }
    stock BankLaden(playerid)
    {
    new Bankdatei[64];
    format(Bankdatei,sizeof(Bankdatei),"/Bankdaten/%s.ini",SpielerName(playerid));
    if(fexist(Bankdatei))
    {
    Bank[playerid][sGeld] = dini_Int(Bankdatei,"Geld");
    Bank[playerid][sPin] = dini_Int(Bankdatei,"Pin");
    Bank[playerid][sKarte] = dini_Int(Bankdatei,"ECKarte");
    }
    return 1;
    }

  • Hi


    Um dir dein Ablauf mal zu erläutern:


    • Speichere Input in Datei (Nicht in Benutzervariablen)
    • Speichere Benutzervariablen in Datei
    • Lade Daten aus Datei und setzte Benutzervariablen

    sGeld, sPin und sKarte werden also in BankSpeichern leere Werte (0) haben und diese speicherst Du dann. Die Lösung liegt also darin, gleich die Benutzervariablen zu setzen oder nur BankLaden und nicht davor BankSpeichern aufzurufen


    Edit: Versuch es also mal so:


    if(dialogid==DIALOG_CREATEPIN)
    {
    new Bankdatei[64];
    if(response==0)
    {
    SCM(playerid,COLOR_BLUE,"Du hast den Vorgang abgebrochen");
    }
    else
    {
    new string[128];
    format(Bankdatei,sizeof(Bankdatei),"/Bankdaten/%s.ini",SpielerName(playerid));
    dini_Create(Bankdatei);
    dini_IntSet(Bankdatei,"Pin",strval(inputtext));
    dini_IntSet(Bankdatei,"Geld",STARTBONUS);
    dini_IntSet(Bankdatei,"ECKarte",0);
    BankLaden(playerid);
    format(string,sizeof(string),"Du hast absofort ein Bankkonto.\nDu erhielst außerdem ein Startbonus von $2000.\nPin: %d\nGeld: 2000\n\n BITTE MACH EIN RELOG !\n Damit auch alles funktioniert",strval(inputtext));
    ShowPlayerDialog(playerid,bankdaten,DIALOG_STYLE_MSGBOX,"Übersicht",string,"Bestätigen","Abbrechen");
    }
    }