Problem mit Code Eingabe (inputtext)

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
  • Guten Morgen, nachtaktive Leutee ;D


    Ich habe gemacht, wenn man auf den Server kommt, das ein Dialog kommt und man ne random zahl eingeben muss, aber wie es der zufall will funktioniert es nicht ^^...
    Sprich wenn ich den code eingebe gibts nen kick oder halt ein neuer ^^...sehe selbst

    Zitat

    Beim Callback


    ShowPlayerDialog(playerid, DG_SICHERHEITSCODE, DG_MSGBOX,ServerName,""COLW"Um dich mit dem Server zu verbinden, musst du vorher einen Sicherheitscode eingeben!\n"COLR"Info:"COLW"\nSolltest du dich weigern, kannst du nicht auf das Spiel zugreifen!","Weiter","Abbrechen");

    Zitat

    OnDialogResponse


    case DG_SICHERHEITSCODE:
    {
    if(!response)return Kick(playerid);
    new randomcode = 1000 + random(9999),string[100];
    format(string, sizeof(string),""COLW"Bitte gebe folgenden Sicherheitscode ein!\n"COLR"Code:"COLB" %d",randomcode);
    ShowPlayerDialog(playerid, DG_SICHERHEITSCODE, DG_INPUT,ServerName,string,"Weiter","Abbrechen");

    //Wenn er richtig eingibt zum Login o. Register! Ansonsten wenn nicht, wird man gekickt
    if(strlen(inputtext) == randomcode)
    {if(CheckAccount(playerid) == 0){ShowDialog(playerid, DG_REGISTER);}else{ShowDialog(playerid, DG_LOGIN);}mysql_free_result();}
    else Kick(playerid);
    }


    Hoffe ihr könnt mir helfen ^^
    Lg :P

  • strlen() holt sich die Anzahl der Zeichen eines Strings, so gibt strlen bei "4444" eine 4 zurück, da es vier Zeichen sind.
    Du brauchst vermutlich strval(), was "4444" in 4444 verwandeln würde.

    Ich bin Dittis Signatur.

  • Öhm, du schickst den Nutzer in eine Endlosschleife. :D


    Wenn er zu OnDialogResponse geht, wurde der Dialog einmal aufgerufen, in OnDialogResponse rufst du genau den Dialog aber nochmal auf, der Code danach wird, vermute ich zumindest, gar nicht erst ausgeführt und der Nutzer wird sofort wieder in OnDialogResponse geschickt, wo wieder der Dialog gezeigt wird, es geht wieder zu OnDialogResponse, zum Dialog, zu OnDialogResponse, …
    Ich hoffe, du verstehst, was ich meine. :D

    Ich bin Dittis Signatur.

  • Öhm, du schickst den Nutzer in eine Endlosschleife. :D


    Wenn er zu OnDialogResponse geht, wurde der Dialog einmal aufgerufen, in OnDialogResponse rufst du genau den Dialog aber nochmal auf, der Code danach wird, vermute ich zumindest, gar nicht erst ausgeführt und der Nutzer wird sofort wieder in OnDialogResponse geschickt, wo wieder der Dialog gezeigt wird, es geht wieder zu OnDialogResponse, zum Dialog, zu OnDialogResponse, …
    Ich hoffe, du verstehst, was ich meine. :D


    Joa so ungefähr ^^, trotzdem danke für deine (nette) hilfe :)


    Lg & jute nacht :love: