Login problem

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,


    Das ist mein login Dialog:


    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_GRAU,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    new string [125];
    SendClientMessage(playerid,COLOR_ROT,"Das eingegebene Passwort ist falsch!");
    format(string,sizeof(string),"Willkommen auf dem server.\n\nBenutzername: %s\n\nBitte log dich mit deinem Passwort ein: ",name);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Benutzerlogin:",string,"Einloggen","Abbrechen");
    return 1;
    }
    else if(strlen(inputtext))
    {
    Login(playerid,inputtext);
    SendClientMessage(playerid,COLOR_BLAU,"Wilkommen auf dem Server");
    return 1;
    }
    }
    }


    beim login, wenn man das passwort allerdings falsch eingibt wird dieser teil vom dialog nicht ausgeführt:


    if(!strlen(inputtext))
    {
    new string [125];
    SendClientMessage(playerid,COLOR_ROT,"Das eingegebene Passwort ist falsch!");
    format(string,sizeof(string),"Willkommen auf dem server.\n\nBenutzername: %s\n\nBitte log dich mit deinem Passwort ein: ",name);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Benutzerlogin:",string,"Einloggen","Abbrechen");
    return 1;
    }


    stattdessen wird das ganze ausgeführt als ob das passwort richtig eigegebn wurde, sprich die nachricht willkommen auf dme server wird dem spieler angezeigt. Allerdings wird natürlich nicht der account geladen.

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • hab es jetzt so gemacht:
    if(strlen(inputtext)== dini_Int(Spielerdatei,"Passwort"))


    funktioniert trotzdem nicht

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Du liest ja auch einen integer aus. X(
    Das Passwort ist aber ein String.
    Nutze hierfür bitte die Funktion "dini_Get".
    if(strlen(inputtext)==dini_Get(Spielerdatei,"Passwort")){..}


    Aber mit strlen prüfst du doch nur die Länge des Strings, die Funtion heißt ja auch String-Length.
    Bsp. Passwort ist:"Test" , ich gebe "Haus" ein und bin dann eingeloggt, weil die Längen übereinstimmen ^^


    Wenn du den String mit dem Passwort abgleichen möchtest (was ja durchaus sinnvoll ist), dann nutze doch einfach String-Comapre (strcmp).
    Der Code hierfür wäre auch recht simpel:

    if(strcmp(inputtext,dini_Get(Spielerdatei,"Passwort"),false,strlen(dini_Get(Spielerdatei,"Passwort"))) == 0){..}



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )