Dialog Register umschreiben auf TextDraw Register

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
  • Heyho
    ich möchte folgendes wissen. Un zwar wenn ich auf "Passwort eingeben" klicke soll ein Dialog kommen wo der Spieler sein oder bisher gewähltes Passwort reinschreiben muss. Wenn er dann auf Registrieren oder Login ( auf dem Bild nicht vorhanden) klickt soll er halt entweder Registriert werden oder Eingeloggt werden.


    Bisher habe ich, dass der wenigstens schonmal das Richtige Textdraw hinbastelt. Aber wie mach ich das nun mit dem Extra Textdraw (das Passwort was "gespeichert" wird und dann beim klicken auf Register/Login abgerufen wird und er eingeloggt oder registiert wirs)?


    Hier der Code:


    Nach abfrage ob er schon einen Account besitzt:
    public CheckUser(playerid)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, mysql);
    if(num_rows == 0){
    //Registrierung
    PlayerTextDrawShow(playerid, SB_REGISTER);
    }
    else
    {
    //Login
    // new input[200];
    // format(input,sizeof(input),"{908B8E}Willkommen zurück auf {FF9E00}%s{908B8E}!\nDein Account wurde in der Datenbank gefunden.\nGebe hier bitte dein Passwort ein, welches du bei der Registrierung gewählt hast.",SERVERNAME);
    // ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"{FF9E00}Login",input,"Absenden","Verlassen");


    PlayerTextDrawShow(playerid, SB_LOGIN);
    }
    return 1;
    }


    Hier die Dialoge die ich bisher hatte:
    if(dialogid == DIALOG_REGISTER){
    if(response){
    new query[1024],query2[1024],passwort[35];
    if(strlen(inputtext) >= 6){
    mysql_escape_string(inputtext,passwort,mysql);
    format(query,sizeof(query),"INSERT INTO accounts (Name,Passwort) VALUES ('%s',MD5('%s')) ",SpielerName(playerid),passwort);
    mysql_function_query(mysql,query,false,"","");
    format(query2,sizeof(query2),"SELECT ID FROM accounts WHERE Name='%s'",SpielerName(playerid));
    mysql_function_query(mysql,query2,true,"AfterRegister","i",playerid);


    sInfo[playerid][pEingeloggt] = 1;
    sInfo[playerid][pLevel] = 1;

    SetSpawnInfo( playerid, 0, 289, 1511.8359, -1713.5916, 14.0469, 222.1692, 0, 0, 0, 0, 0, 0 );
    SpawnPlayer(playerid);

    SetPlayerScore(playerid,sInfo[playerid][pLevel]);
    GivePlayerMoney(playerid,150);
    } else {
    new input[200];
    format(input,sizeof(input),"{908B8E}Das Passwort ist nicht lang genug. (min. {FF9E00}6{908B8E} Zeichen)\nGebe hier dein gewünschtes Passwort ein, mit welchem du dich registrieren möchtest!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,3,"{FF9E00}Registrierung",input,"Absenden","Verlassen");
    }
    } else {
    Kick(playerid);
    }
    return 1;
    }

    //##########################################################################################################################################################################


    if(dialogid == DIALOG_LOGIN){
    if(response){
    new query[1024],passwort[35];
    if(strlen(inputtext) > 0){
    mysql_escape_string(inputtext,passwort,mysql);
    format(query,sizeof(query),"SELECT * FROM accounts WHERE Name='%s' AND Passwort=MD5('%s')",SpielerName(playerid),passwort);
    mysql_function_query(mysql,query,true,"OnPasswortResponse","i",playerid);
    } else {
    new input[200];
    format(input,sizeof(input),"{908B8E}Du hast kein Passwort angegeben.\nGebe hier bitte dein Passwort ein, welches du bei der Registrierung gewählt hast.",SERVERNAME);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"{FF9E00}Login",input,"Absenden","Verlassen");
    }
    } else {
    Kick(playerid);
    }
    return 1;
    }


    Hier wenn er auf den Register Button klickt was aber auch bisher noch Falsch ist:
    public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
    {
    if(playertextid == SB_REGISTER){
    CancelSelectTextDraw(playerid);
    new input[200];
    format(input,sizeof(input),"{908B8E}Herzlich Willkommen auf {FF9E00}%s{908B8E}!\nDein Account wurde nicht in der Datenbank gefunden.\nGebe hier dein gewünschtes Passwort ein, mit welchem du dich registrieren möchtest!",SERVERNAME);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,3,"{FF9E00}Registrierung",input,"Absenden","Verlassen");
    }
    return 1;
    }

    Mit freundlichen Grüßen,
    Derakar

  • Nicht ganz so hab ich das ja auch schon aber ich möchte das ja machen, dass man auf Passwort eingeben klickt da dann das passwort eingeben und dann auf Registieren oder Login klickt


    Hier ein Bild habs vergessen!


    Mit freundlichen Grüßen,
    Derakar

  • Das klappt auch so.
    Du kannst es so machen:
    Der Spieler klickt auf den Nickname Textdraw und du lässt einen Input Dialog öffnen.
    Dort kann er dann einen Nicknmane zum registrieren eingeben.
    Nachdem er ihn eingegeben hab updatest du das Textdraw entsprechend auf den Namen und speicherst den Namen in einem string.
    Das selbe Prinzip mit dem Passwört Textdraw.
    Nur das du dort einen Passwort Dialog öffnen lässt, die Zeichen zählst und den Textdraw auf entsprechend viele * updatest.
    Das Passwort speicherst du auch als String, registrierst den Account entsprechend und es klappt.