Login & Register Hilfe :)

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
  • Abend:


    hat jemand ne idee wie ich bei diesem Register system wenn er links klickt registriert wird und wenn er rechts klickt gekickt wird machen kann?


    weil so wie ichs hier habe gehts nicht könnt ja mal schauen:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(!Eingeloggt[playerid])
    {
    if(!strlen(inputtext))
    {
    if(response)
    {
    new kayitmsg[128];
    format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
    }
    if(!response)
    {
    SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
    Kick(playerid);
    }
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    dini_Create(s);
    dini_IntSet(s,"Passwort",udb_hash(inputtext));
    dini_FloatSet(s,"X",-2756.4143);
    dini_FloatSet(s,"Y",374.9626);
    dini_FloatSet(s,"Z",4.3366);
    dini_FloatSet(s,"A",269.2460);
    dini_FloatSet(s,"Health",100);
    dini_FloatSet(s,"Armor",0);
    dini_IntSet(s,"Geld",500);
    dini_IntSet(s,"Skin",26);
    dini_IntSet(s,"Virt",0);
    dini_IntSet(s,"Inte",0);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
    }
    }
    }
    return 1;
    }


    MFG: Qini :love:


    //EDIT: Zeilen gerückt


    //EDIT: Kann mir den keiner helfen?


    //EDIT: Überschrift geändert

    3 Mal editiert, zuletzt von Quini ()

  • Könnte mir bitte bitte bitte jemand helfen ich finde einfach keine lösungen mehr bitte helft mir bitte ;(


    Was ich brauche bzw haben möchte das ich seit einer woche net hin bekomme steht oben ;(


    //EDIT: Text geändert

    2 Mal editiert, zuletzt von Quini ()

  • Mal in meinem alten Specimen schaun moment.


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(!Eingeloggt[playerid])
    {
    if(!strlen(inputtext))
    {
    if(response)
    {
    new kayitmsg[128];
    format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
    Kick(playerid);
    }
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    dini_Create(s);
    dini_IntSet(s,"Passwort",udb_hash(inputtext));
    dini_FloatSet(s,"X",-2756.4143);
    dini_FloatSet(s,"Y",374.9626);
    dini_FloatSet(s,"Z",4.3366);
    dini_FloatSet(s,"A",269.2460);
    dini_FloatSet(s,"Health",100);
    dini_FloatSet(s,"Armor",0);
    dini_IntSet(s,"Geld",500);
    dini_IntSet(s,"Skin",26);
    dini_IntSet(s,"Virt",0);
    dini_IntSet(s,"Inte",0);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
    }
    }
    }
    return 1;
    }


    Dieses (!response) ist eigentlich Sinnlos, hab ein "else" reingemacht. So muss es funktionieren.

  • Dann probiers mal so:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(!Eingeloggt[playerid])
    {
    if(!strlen(inputtext))
    {
    if(response)
    {
    new kayitmsg[128];
    format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
    }
    if(!response)
    {
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    dini_Create(s);
    dini_IntSet(s,"Passwort",udb_hash(inputtext));
    dini_FloatSet(s,"X",-2756.4143);
    dini_FloatSet(s,"Y",374.9626);
    dini_FloatSet(s,"Z",4.3366);
    dini_FloatSet(s,"A",269.2460);
    dini_FloatSet(s,"Health",100);
    dini_FloatSet(s,"Armor",0);
    dini_IntSet(s,"Geld",500);
    dini_IntSet(s,"Skin",26);
    dini_IntSet(s,"Virt",0);
    dini_IntSet(s,"Inte",0);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du wurdest gekickt Grund: nicht Registriert!");
    Kick(playerid);
    }
    }
    }
    return 1;
    }

  • is aber igendwie komisch bei if(response) öffnet er dialog == 1


    und dann wenn er rechts klick speichert er erst die dateien ??


    //EDIT:


    Links if(response)


    Rechts if(!response)


    er soll sich ja bei links registrieren und bei rechts kick ..

    Einmal editiert, zuletzt von Quini ()

  • Gehört das


    new kayitmsg[128];
    format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");


    eigentlich nicht bei OnPlayerConnect hin, bei OnPlayerConnect ne Abfrage einbaun, ob der Spieler registriert ist, und dann müsste der Dialog so aussehen:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(!Eingeloggt[playerid])
    {
    if(!strlen(inputtext))
    {
    if(response)
    {
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    dini_Create(s);
    dini_IntSet(s,"Passwort",udb_hash(inputtext));
    dini_FloatSet(s,"X",-2756.4143);
    dini_FloatSet(s,"Y",374.9626);
    dini_FloatSet(s,"Z",4.3366);
    dini_FloatSet(s,"A",269.2460);
    dini_FloatSet(s,"Health",100);
    dini_FloatSet(s,"Armor",0);
    dini_IntSet(s,"Geld",500);
    dini_IntSet(s,"Skin",26);
    dini_IntSet(s,"Virt",0);
    dini_IntSet(s,"Inte",0);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Bla bla blubb");
    Kick(playerid);
    }
    }
    }
    return 1;
    }

  • Ich habe die abfrage ob er regi ist bei OnPlayerRequestClass


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerFacingAngle(playerid, 136.3925);
    SetPlayerPos(playerid, -1531.6234,686.8140,133.0514);
    SetPlayerCameraPos(playerid, -1544.0018,672.2354,147.4409);
    SetPlayerCameraLookAt(playerid, -1531.6234,686.8140,133.0514);
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    new kayitmsg[128];
    format(kayitmsg,128,"Herzlich Willkommen %s \n\nBitte Registrieren sie sich \n\nGeben sie nun ihr Passwort ein.",Name);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren",kayitmsg,"Registrieren","Verlassen");
    }
    else
    if(dini_Exists(s))
    {
    new girismsg[128];
    format(girismsg,128,"Herzlich Willkommen %s \n\nBitte Loggen sie sich ein \n\nGeben sie nun ihr Passwort ein",Name);
    ShowPlayerDialog(playerid,9,DIALOG_STYLE_INPUT,"Einloggen",girismsg,"Login","Verlassen");
    }
    return 1;
    }


    und mit dem dialog so hatte ichs auch probiert dann geht meines wissens aber links registrieren nicht und kick geht dann würdest du das
    if(response) ein stück höher setzen würde regi gehen aber kick wieder net komisch ?(

  • Der Fehler liegt schon beim strlen().

    Zitat

    if(!strlen(inputtext))


    Der Code geht an dieser Stelle nur weiter,wenn man KEINEN Text eingegeben hat und somit die Stringlänge 0 ist.


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(!Eingeloggt[playerid])
    {
    if(response)
    {
    if(!inputtext[0]) { // funktioniert wie strlen(inputtext) == 0
    SendClientMessage(playerid,COLOR_RED,"Kein input-text für Passwort");
    }
    else {
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    dini_Create(s);
    dini_IntSet(s,"Passwort",udb_hash(inputtext));
    dini_FloatSet(s,"X",-2756.4143);
    dini_FloatSet(s,"Y",374.9626);
    dini_FloatSet(s,"Z",4.3366);
    dini_FloatSet(s,"A",269.2460);
    dini_FloatSet(s,"Health",100);
    dini_FloatSet(s,"Armor",0);
    dini_IntSet(s,"Geld",500);
    dini_IntSet(s,"Skin",26);
    dini_IntSet(s,"Virt",0);
    dini_IntSet(s,"Inte",0);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Bla bla blubb");
    Kick(playerid);
    }
    }
    }
    }
    }
    return 1;
    }
    Hab den Code mal umstrukturiert,logischer ist es nämlich,dass die Abfrage der Stringlänge nach der Abfrage kommt,ob response 1 ist.

  • Schau doch den Code an.Gibt er keinen Text ein,wird nichts erstellt.
    if(!inputtext[0]) { // funktioniert wie strlen(inputtext) == 0
    SendClientMessage(playerid,COLOR_RED,"Kein input-text für Passwort");
    }
    else { // Ein Text wurde eingegeben ...

  • Ne Also ich möchte es so haben


    Ist ein Dialog wenn er connectet und noch kein acc hat


    und dann Links Registrieren Rechts Verlassen


    So klickt er Links Registrieren Werden die daten dort angelegt + ein acc für ihn


    Drückt er Verlassen Kick Du wurdest gekickt Grund Nicht Registriert so wollte ichs gerne haben

  • Das hast du dann aber schon ganz oben in deinem Code falsch gehabt.
    Du müsstest aber schon in der Lage sein,dass selber hinzubekommen.Denn es ist kaum Aufwand,nur den Kick() Abschnitt zu verschieben 0o.
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1)
    {
    if(!Eingeloggt[playerid])
    {
    if(response)
    {
    if(!inputtext[0]) { // funktioniert wie strlen(inputtext) == 0
    SendClientMessage(playerid,COLOR_RED,"Kein input-text für Passwort");
    }
    else {
    GetPlayerName(playerid,Name,sizeof(Name));
    format(s,sizeof(s),"acc/%s.ini",Name);
    if(!dini_Exists(s))
    {
    dini_Create(s);
    dini_IntSet(s,"Passwort",udb_hash(inputtext));
    dini_FloatSet(s,"X",-2756.4143);
    dini_FloatSet(s,"Y",374.9626);
    dini_FloatSet(s,"Z",4.3366);
    dini_FloatSet(s,"A",269.2460);
    dini_FloatSet(s,"Health",100);
    dini_FloatSet(s,"Armor",0);
    dini_IntSet(s,"Geld",500);
    dini_IntSet(s,"Skin",26);
    dini_IntSet(s,"Virt",0);
    dini_IntSet(s,"Inte",0);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Wohnort","Bitte geben sie an wo sie Wohnen möchten.","SF","LV");
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Bla bla blubb");
    Kick(playerid);
    }
    }
    }
    return 1;
    }