Login Textdraw 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
  • Hallo leute.


    Ich habe ein Problem mit meinem Login/Register Textdraw.
    Der Login und Register Button ist beides der selbe, blos lass ich den String entweder zu Einloggen oder Regestrieren ändern, was auch perfekt klappt.


    Nun, wenn ich aber schon Regestriert bin steht ja einloggen da, klick ich aber drauf kommt der Regestrierungsdialog was ja eigentlich nicht sein dürfte..


    Beim Regestrieren passt alles, da gehts wunderbar..


    Hier mal mein Code wo ich den textdraw string ändere, was auch gut funkt.


    Spoiler anzeigen
    forward CheckAccount(playerid);
    public CheckAccount(playerid)
    {
    new string[128];
    if(cache_num_rows() == 0)//Register
    {
    for(new i =0;i<100;i++)
    {
    SendClientMessage(playerid,-1,"");
    }
    SelectTextDraw(playerid, 0xA3B4C5FF);
    PlayerTextDrawShow(playerid, Login1[playerid]);
    PlayerTextDrawShow(playerid, Login2[playerid]);
    PlayerTextDrawShow(playerid, Login3[playerid]);
    PlayerTextDrawShow(playerid, Login4[playerid]);
    PlayerTextDrawShow(playerid, Login5[playerid]);
    PlayerTextDrawShow(playerid, Login6[playerid]);
    PlayerTextDrawShow(playerid, Login7[playerid]);
    PlayerTextDrawShow(playerid, Login8[playerid]);
    PlayerTextDrawShow(playerid, Login9[playerid]);
    format(string, sizeof(string), "Regestrieren");
    PlayerTextDrawSetString(playerid,Login6[playerid],string);
    }
    else//Login
    {
    for(new i =0;i<100;i++)
    {
    SendClientMessage(playerid,-1,"");
    }
    SelectTextDraw(playerid, 0xA3B4C5FF);
    PlayerTextDrawShow(playerid, Login1[playerid]);
    PlayerTextDrawShow(playerid, Login2[playerid]);
    PlayerTextDrawShow(playerid, Login3[playerid]);
    PlayerTextDrawShow(playerid, Login4[playerid]);
    PlayerTextDrawShow(playerid, Login5[playerid]);
    PlayerTextDrawShow(playerid, Login6[playerid]);
    PlayerTextDrawShow(playerid, Login7[playerid]);
    PlayerTextDrawShow(playerid, Login8[playerid]);
    PlayerTextDrawShow(playerid, Login9[playerid]);
    format(string, sizeof(string), "Einloggen");
    PlayerTextDrawSetString(playerid,Login6[playerid],string);
    }
    return 1;
    }


    Und hier Login6


    Spoiler anzeigen
    if(playertextid == Login6[playerid])//Register/Login
    {
    if(cache_num_rows() == 0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte konnte nicht gefunden werden. Bitte Registrieren Sie sich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte gib dein Persöhnliches Passwort ein:","Register","Abbrechen");
    PlayerTextDrawHide(playerid, Login1[playerid]);
    PlayerTextDrawHide(playerid, Login2[playerid]);
    PlayerTextDrawHide(playerid, Login3[playerid]);
    PlayerTextDrawHide(playerid, Login4[playerid]);
    PlayerTextDrawHide(playerid, Login5[playerid]);
    PlayerTextDrawHide(playerid, Login6[playerid]);
    PlayerTextDrawHide(playerid, Login7[playerid]);
    PlayerTextDrawHide(playerid, Login8[playerid]);
    PlayerTextDrawHide(playerid, Login9[playerid]);
    CancelSelectTextDraw(playerid);
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte wurde gefunden. Bitte Loggen Sie sich ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein:","Login","Abbrechen");
    PlayerTextDrawHide(playerid, Login1[playerid]);
    PlayerTextDrawHide(playerid, Login2[playerid]);
    PlayerTextDrawHide(playerid, Login3[playerid]);
    PlayerTextDrawHide(playerid, Login4[playerid]);
    PlayerTextDrawHide(playerid, Login5[playerid]);
    PlayerTextDrawHide(playerid, Login6[playerid]);
    PlayerTextDrawHide(playerid, Login7[playerid]);
    PlayerTextDrawHide(playerid, Login8[playerid]);
    PlayerTextDrawHide(playerid, Login9[playerid]);
    CancelSelectTextDraw(playerid);
    }
    return 1;
    }


    Davor war alles so und da gings ja auch ?


    forward CheckAccount(playerid);
    public CheckAccount(playerid)
    {
    if(cache_num_rows() == 0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte konnte nicht gefunden werden. Bitte Registrieren Sie sich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte gib dein Persöhnliches Passwort ein:","Register","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte wurde gefunden. Bitte Loggen Sie sich ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    return 1;
    }


    Hoffe auf hilfe, danke euch.


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Das würde so nicht klappen.
    Du Überprüfst bereits im Public "CheckAccount", ob ein Account Vorhanden ist oder nicht.
    Entweder regelst du das mit Variablen:


    Sprich, wenn du den Textdraw auf "Einloggen" stringst:


    new Einloggen[MAX_PLAYERS];
    Einloggen[playerid] = 1;


    Oder auf "Registrieren" stringst:


    new Registrieren[MAX_PLAYERS];
    Registrieren[playerid] = 1;


    Danach fragst du im Public folgendermaßen ab:


    if(playertextid == Login6[playerid])//Register/Login
    {
    if(Registrieren[playerid] == 1)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte konnte nicht gefunden werden. Bitte Registrieren Sie sich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte gib dein Persöhnliches Passwort ein:","Register","Abbrechen");
    PlayerTextDrawHide(playerid, Login1[playerid]);
    PlayerTextDrawHide(playerid, Login2[playerid]);
    PlayerTextDrawHide(playerid, Login3[playerid]);
    PlayerTextDrawHide(playerid, Login4[playerid]);
    PlayerTextDrawHide(playerid, Login5[playerid]);
    PlayerTextDrawHide(playerid, Login6[playerid]);
    PlayerTextDrawHide(playerid, Login7[playerid]);
    PlayerTextDrawHide(playerid, Login8[playerid]);
    PlayerTextDrawHide(playerid, Login9[playerid]);
    CancelSelectTextDraw(playerid);
    }
    if(Einloggen[playerid] == 1)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte wurde gefunden. Bitte Loggen Sie sich ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein:","Login","Abbrechen");
    PlayerTextDrawHide(playerid, Login1[playerid]);
    PlayerTextDrawHide(playerid, Login2[playerid]);
    PlayerTextDrawHide(playerid, Login3[playerid]);
    PlayerTextDrawHide(playerid, Login4[playerid]);
    PlayerTextDrawHide(playerid, Login5[playerid]);
    PlayerTextDrawHide(playerid, Login6[playerid]);
    PlayerTextDrawHide(playerid, Login7[playerid]);
    PlayerTextDrawHide(playerid, Login8[playerid]);
    PlayerTextDrawHide(playerid, Login9[playerid]);
    CancelSelectTextDraw(playerid);
    }
    return 1;
    }


    Oder du erstellst wieder einen Threaded Query im Public OnPlayerClickPlayerTextdraw und checkst dort, ob ein Account vorhanden ist und leitest diesen auf einen neuen Public weiter und dort fragst du dann normal ab:


    forward CheckAccount2(playerid);
    public CheckAccount2(playerid)
    {
    if(cache_num_rows() == 0)
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte konnte nicht gefunden werden. Bitte Registrieren Sie sich!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte gib dein Persöhnliches Passwort ein:","Register","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF,"________Herzlich Wilkommen auf San Francisco Reallife________");
    SendClientMessage(playerid, 0xFFFFFFFF,"Datenbank: Akte wurde gefunden. Bitte Loggen Sie sich ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Einloggen","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    return 1;
    }

  • Beitrag von Fernando_Jizuya ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Methode 1 ist ja wesentlich einfacher, was würdest du mir empfehlen?


    //Edit:


    Habe Methode 1 genommen, danke für deine Hilfe.


    //Edit:
    Jetzt funktioniert so gut wie gar nichts mehr, wenn ich mich neu regestriere, auslogge und wieder einlogge werden irgendwie sachen wie bsp skins und admin level von anderen accounts genommen und kopiert?


    Jeffry:



    MfG



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF ()

  • Bei OnPlayerDisconnect;
    reged[playerid] = 0;
    logged[playerid] = 0;


    Extra so hässliche Namen gegeben, nicht das irgendwas überschrieben wird.


    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Nein. Das war davor auch nie ein Problem da funktionierte alles immer perfekt.


    Ich habe alle Accounts(3) in der DB gelöscht, Reg. mich komplett neu, erster Spawn Funktioniert genau perfekt(nach reg.)
    Logge ich mich aus, und wieder ein dann Spawn ich irgendwo, wo ich mit einem alten Account schon mal war oder bekomme dann alles von einem anderen account kopiert,



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Aber was würde das dann nützen, dann speichert er ja alles auf 0 :o?


    //Edit:


    Ich habe keine Ahnung was das ist. Ich erstelle mir einen Spieler der normal Spawnt und mach ihn bsp Admin lv5 und stelle ihn in SF BHF.
    Dann mach ich nen 2ten Account und den Regestriere ich, der nimmt dann die Werte vom ersten Spieler und steht dann genau so dort.


    Ich bitte um Hilfe, das war davor nie, aber egal welches Script Backup ich nehme, es passiert trotzdem.


    Welchen Code braucht ihr?


    Jeffry:
    Kannst du mir helfen?



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF ()

  • Es scheint nun zu funktionieren, zum Glück ^^


    Wäre fast verzweifelt, danke an:
    @0x0040FB80:
    Jeffry:



    Falls es Probleme gibt, editiere ich den Beitrag, bis dahin Erledigt.



    Mit freundlichen Grüßen



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)