Passwort Speichert nicht

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
  • new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(dini_Exists(Spielerdatei))
    {
    SendClientMessage(playerid,Rot, "Fehler: Dieser Account exestiert bereits!");
    }
    else
    {
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    //SetPasswort(playerid,key[]);
    SpielerInfo[playerid][Eingeloggt] = 1;
    Anmelden(playerid,key);
    SendClientMessage(playerid,LichtGruen,"Du wurdest automatisch eingeloggt");
    }


    Und in der ini:

    Zitat
    Code
    Passwort=
  • Mein gesunder Menschenverstand sagt mir, dass key ein leerer String sein muss.
    Und bei Anmelden(playerid,key) kommt kein "falsches Passwort" o.ä., weil es den Bug gibt, dass ein leeres Passwort als richtig angesehen wird (strcmp).
    Zeig mal den Code, wo du den string key ermittelst.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {

    if(dialogid == Register)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    new passx[128];
    strmid(passx,inputtext,0,strlen(inputtext),128);
    Registrieren(playerid,passx);
    }
    }
    if(dialogid == Login)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    new pass[128];
    strmid(pass,inputtext, 0,strlen(inputtext),128);
    Anmelden(playerid,pass);
    }
    }

  • Hmm... an sich ist da kein Fehler.
    Du solltest mal versuchen, anstatt einen neuen String zu formatieren, einfach direkt inputtext zu übermitteln:
    Anmelden(playerid,inputtext);


    Und als Schutz, falls jemand ein leeres Passwort eingeben möchte, füg das direkt als erstes nach dialogid == bla ein:
    if(!strlen(inputtext)) return ShowPlayerDialog(...); // Dein Dialog zum einloggen/registrieren mit dem Text: "Keine Eingabe, bitte jetzt richtig eingeben oder so"


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {

    if(dialogid == Register)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Regestrieren","Bitte tippe dein Passwort in das TextFeld ein um dich zu Regestrieren!","Register","Abbruch");
    strmid(inputtext,inputtext,0,strlen(inputtext),128);
    Registrieren(playerid,inputtext);
    }
    }
    if(dialogid == Login)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Login","Bitte tippe dein Passwort in das TextFeld ein um dich einzuloggen!","Login","Abbruch");
    strmid(inputtext,inputtext, 0,strlen(inputtext),128);
    Anmelden(playerid,inputtext);
    }
    }


    Danke, geht immernochnicht.
    Hast du es so gemeint?

  • strmid(inputtext,inputtext,0,strlen(inputtext),128);


    Das bei beiden löschen. Dann sollte es theoretisch funktionieren.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Mhm gelöscht und es steht immernoch in der ini:

    Code
    Passwort=

    obwohl ich pw: lol eingegeben hab
    CODE:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {

    if(dialogid == Register)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    Registrieren(playerid,inputtext);
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Regestrieren","Bitte tippe dein Passwort in das TextFeld ein um dich zu Regestrieren!","Register","Abbruch");
    }
    }
    if(dialogid == Login)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Rot,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    Anmelden(playerid,inputtext);
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Login","Bitte tippe dein Passwort in das TextFeld ein um dich einzuloggen!","Login","Abbruch");
    }
    }

  • ja wird ausgegeben.
    public Registrieren(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(dini_Exists(Spielerdatei))
    {
    SendClientMessage(playerid,Rot, "Fehler: Dieser Account exestiert bereits!");
    }
    else
    {
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    //SetPasswort(playerid,key[]);
    //dini_Set(Spielerdatei,"AdminP",pw);
    SpielerInfo[playerid][Eingeloggt] = 1;
    Anmelden(playerid,key);
    SendClientMessage(playerid,LichtGruen,"Du wurdest automatisch eingeloggt");
    }
    new temp = 1000 + random(8999);
    new gBIN[64];
    new nachricht[128];
    format(gBIN,sizeof(gBIN),"/Accounts/%d.ini",temp);
    if(!dini_Exists(gBIN))
    {
    dini_Create(gBIN);
    dini_IntSet(gBIN,"Bank",SpielerInfo[playerid][bank]);
    SpielerInfo[playerid][BIN] = temp;
    format(nachricht,sizeof(nachricht),"GENBIN : %d SBIN : %d",temp,SpielerInfo[playerid][BIN]);
    SendClientMessage(playerid,LichtGruen,nachricht);
    }
    else
    {
    temp = 1000 + random(8999);
    format(gBIN,sizeof(gBIN),"/Accounts/%d.ini",temp);
    dini_Create(gBIN);
    dini_IntSet(gBIN,"Bank",SpielerInfo[playerid][bank]);
    SpielerInfo[playerid][BIN] = temp;
    format(nachricht,sizeof(nachricht),"GENBIN : %d SBIN : %d",temp,SpielerInfo[playerid][BIN]);
    //SendClientMessage(playerid,LichtGruen,nachricht);
    }

    return 0;
    }