• 07 Juillet 2025, 01:16:38


Auteur Sujet: Problème système register/login  (Lu 1274 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Xx_Men_xX

  • *
  • Nouveau
  • Messages: 19
    • Voir le profil
Problème système register/login
« le: 02 Novembre 2013, 11:07:16 »
Bonjour,

J'ai un problème avec mon système de Register/Login

Je veux que lorsque l'on entre 4 fois un mot de passe incorrect, le joueur soit kické, donc j'ai fais ça :

Code : http://pastebin.com/0NZf6iy8


Le problème c'est que In Game, si je rentre un mot de passe incorrect sa me kick à la 1ère tentative alors que normalement, j'ai le droit à 4 tentatives ?

Je ne vois pas ce qui vas pas dans mon code.

Pouvez-vous m'aider SVP ?

Merci d'avance.

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Problème système register/login
« Réponse #1 le: 02 Novembre 2013, 11:24:30 »
Tu as créé une boucle infinie qui incrémente la variable et déconnecte donc le joueur après 4 tentatives (mais une seule pour le joueur). Pour résoudre ça, transforme ta boucle en condition et nettoies un peu ton code. Voilà ton code modifié et fonctionnel (pas compilé, j'ai codé ça sur le forum) :

Code: (pawn) [Sélectionner]
new incorrect_password = 0;

case DIALOG_LOGGER:
{
  if(response)
  {
    if(udb_hash(inputtext) != PlayerInfo[playerid][pPasse])
    {
      incorrect_password++;

      if(incorrect_password >= 4)
        Kick(playerid);

      ShowPlayerDialog(playerid,  DIALOG_LOGGER, DIALOG_STYLE_INPUT, "Connexion", "Mot de passe incorrect. Réessayez:", "Connexion", "Quitter");
    }
 
    else if(udb_hash(inputtext) == PlayerInfo[playerid][pPasse])
    {
      INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
      GivePlayerMoney(playerid, PlayerInfo[playerid][pArgent]);
      EstLogger[playerid] = true;
      ShowPlayerDialog(playerid, 500, DIALOG_STYLE_MSGBOX, "Connexion", "Vous êtes maintenant connecté à votre compte.", "Ok", "");
    }

  }

  else
    Kick(playerid);

  return true;
}