[Problem] Nach der dritten falschen PW Eingabe kicken

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,


    Ich habe ein Problem. Ich will machen, dass nach der dritten falschen PW eingabe man gekickt wird.


    Das Problem: Wenn man einmal das falsche PW eingibt, kommen alle drei meldungen und man wird gekickt.
    So sieht es aus:


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",SpielerName(playerid));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SendClientMessage(playerid,blau,"Du hast dich erfolgreich eingeloggt.");
    Spielerlogin[playerid] = 0;
    return 1;
    }
    else
    {
    if(Spielerlogin[playerid] == 1)
    {
    SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch zwei weitere Versuche!");
    Spielerlogin[playerid] = 2;
    }
    if(Spielerlogin[playerid] == 2)
    {
    SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch einen Versuch!");
    Spielerlogin[playerid] = 3;
    }
    if(Spielerlogin[playerid] == 3)
    {
    SendClientMessage(playerid,blau,"Du hast dreimal ein falsches Passwort eingegeben. Du wurdest vom Server gekickt!");
    Kick(playerid);
    }
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte dein Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }


    Schonmal danke für eure Hilfe!
    LG
    Phyber


    //edit Rechtschreibfehler :whistling:

  • so vlcht:

    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",SpielerName(playerid));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SendClientMessage(playerid,blau,"Du hast dich erfolgreich eingeloggt.");
    Spielerlogin[playerid] = 0;
    return 1;
    }
    else
    {
    Spielerlogin[playerid] = 1; // das hier haste vergessen
    if(Spielerlogin[playerid] == 1)
    {
    SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch zwei weitere Versuche!");
    Spielerlogin[playerid] = 2;
    }
    if(Spielerlogin[playerid] == 2)
    {
    SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch einen Versuch!");
    Spielerlogin[playerid] = 3;
    }
    if(Spielerlogin[playerid] == 3)
    {
    SendClientMessage(playerid,blau,"Du hast dreimal ein falsches Passwort eingegeben. Du wurdest vom Server gekickt!");
    Kick(playerid);
    }
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte dein Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }

  • Beitrag von palma7071 ()

    Dieser Beitrag wurde vom Autor gelöscht ().

  • // Ich würde es so schreiben ~>

    #define DIALOG_LOGIN (1)

    public OnPlayerRequestClass(playerid, classid)
    {
    // dein zeugs
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte dein Passwort ein.","Login","Abbrechen");
    Spielerlogin[playerid]=1;
    // dein zeugs, weiß ja nicht was du drin hast
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if (!response) return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte dein Passwort ein.","Login","Abbrechen");
    if(strlen(inputtext)==0) return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Du hast kein Passwort eingegeben. Gib bitte dein Passwort ein.","Login","Abbrechen");


    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",SpielerName(playerid));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SendClientMessage(playerid,blau,"Du hast dich erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    if(Spielerlogin[playerid]>2)
    {
    SendClientMessage(playerid,blau,"Du hast drei mal ein falsches Passwort eingegeben. Du wurdest vom Server gekickt!");
    Kick(playerid);
    }
    else
    {
    new string[256];

    format(string,sizeof(string),"Du hast das Passwort bereits %i mal falsch eingegeben!",Spielerlogin[playerid]);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    Spielerlogin[playerid]++;
    }
    }
    }
    return 1;
    }


    ich hoffe ihr kommt zurecht wenn nicht einfach schreiben


    // EDIT: Sorry was falsch geschrieben ~> fehler behoben