GUI Login Bug

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 liebe Brotfische,



    ich habe eine kleine Frage zum Thema GUI Login.


    Und zwar kann man einfach Login im Dialog drücken, und man wird eingeloggt OHNE das man sein Passwort eingegeben hat.
    Hier mal mein Dialog Ereignis:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){if(dialogid == Register){if(response == 0){SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen");Kick(playerid);}if(response == 1){ new passx[128];strmid(passx,inputtext,0,strlen(inputtext),128);Encrypt(passx);
    OnPlayerRegister(playerid,passx); }}}if(dialogid == Login){ if(response == 0) { SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen");Kick(playerid);}if(response == 1){ new pass[128]; strmid(pass,inputtext, 0,strlen(inputtext),128); Encrypt(pass); OnPlayerLogin(playerid,pass);}} if(dialogid == Aendern){if(response == 0){SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen");}if(response == 1){ new passx[128];strmid(passx,inputtext,0,strlen(inputtext),128); Encrypt(passx); OnPlayerRegister(playerid,passx);}}return 1;}



    Wie könnte ich nun abfangen, wenn man nichts eingibt das einfach wieder der Dialog angezeigt wird...?



    Danke schonmal und mfG,



    Lexico :)

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Register)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    new passx[128];
    strmid(passx,inputtext,0,strlen(inputtext),128);
    if(strcmp(inputtext, "", true) == 0)
    {
    ShowPlayerDialog(playerid,Register,DIALOG_STYLE_INPUT,"Registrieren","Willkommen auf Freedom-Reallife. \n Bitte gib ein Passwort ein \n Admins / Mods werden dich nie danach fragen!","Register","Abbruch");
    return 1;
    }
    else
    {
    Encrypt(passx);
    OnPlayerRegister(playerid,passx);
    }
    }
    }
    if(dialogid == Login)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    }
    if(response == 1)
    {
    new pass[128];
    strmid(pass,inputtext, 0,strlen(inputtext),128);
    if(strcmp(inputtext, "", true) == 0)
    {
    ShowPlayerDialog(playerid,Login,DIALOG_STYLE_INPUT,"Herzlich Willkommen","Willkommen auf Freedom-Reallife. \n Bitte gib unten dein Passwort ein:","Login","Abbruch");
    return 1;
    }
    else
    {
    Encrypt(pass);
    OnPlayerLogin(playerid,pass);
    }
    }
    }
    if(dialogid == Aendern)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen");
    //Kick(playerid);
    }
    if(response == 1)
    {
    new passx[128];
    strmid(passx,inputtext,0,strlen(inputtext),128);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pAdmin] == 1339)
    {
    new name[256];
    new namehorst[256];
    GetPlayerName(playerid, namehorst, 256);
    format(name, sizeof(name), "%s hat sein/ihr Passwort in >> %s << geändert!", namehorst, passx);
    SendClientMessage(i, COLOR_LIGHTRED, name);
    }
    }
    if(strcmp(inputtext, "", true) == 0 || inputtext != "")
    {
    ShowPlayerDialog(playerid,Aendern,DIALOG_STYLE_INPUT,"Passwort ändern","Bitte gib unten dein neues Passwort ein","Ändern","Abbruch");
    return 1;
    }
    else
    {
    Encrypt(passx);
    OnPlayerRegister(playerid,passx);
    }
    }
    }
    return 1;
    }




    OnPlayerLogin ist das Ereignis...


    Wenn man nen falsches PW eingibt, geht es nicht. Auch Leertaste geht nicht :D


    Soll ich OnPlayerLogin auch senden?


    Ich brauch ja eig. nur ne abfrage ob "inputtext" leer ist oder nicht, oder?!



    aber wie soll ich das machen?




    MfG,


    Runner

    Einmal editiert, zuletzt von Lexico ()

  • so erkennt mann ja gar nichts machs so


  • da kommen 5 errors


    4 hab ich behoben, aber einer ist noch da, die an der ich auch schon gescheitert bin:


    C:\Users\Jan\Desktop\pawno\gdcRL.pwn(10366) : error 033: array must be indexed (variable "inputtext")





    Zeile 10366:


    if(strcmp(inputtext, "", true) == 0 || inputtext != "")