[BUG]Problиme systиme de login
#1

Bonsoir,
j'ai un problиmes l'hors de ma connection sur mon serveur, on va dire je me connecte avec le compte de quelqu'un d'autres il me dise de mettre le mot de passe, j'йcrit rien du tout je clique juste sur Connexion SA SPAWN LE JOUEUR AVEC LES INFORMATIONS DU GARS LEVEL SKIN ETC. mais sa me dit MOT DE PASSE INCORRECTE MAIS IL ET SPAWN IL Y A JUSTE UN DIALOGUE QUI DIT MOT DE PASSE INCORRECTE aprйs il a juste a cliquer sur F6 et faire /changepass et il change le mot de passe du compte et il se reco avec le mot de passe qu'il a mis, pourrez vous m'aidez a faire que si il met pas de mot de passe ou un faux mot de passe sa le spawn mкmes pas svp ?

Merci

Code:
    if(dialogid == DIALOG_LOGIN)
    {
        if(!response)
        {
            SendClientMessage(playerid, GREY, "Vous n'etes pas connecter.");
		    Kick(playerid);
		}
        if(response)
        {
            if(!strlen(inputtext))
            {
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Connection","Vous avez entrй un mot de passe incorrect.\nMerci de mettre le vrais pour vous connecter.","Connection","Quitter");
            }
			else if(strlen(inputtext) < 4)
			{
                SendClientMessage(playerid, GREY, "Minimum 4 characters.");
		        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Connection","Vous avez entrй un mot de passe incorrect.\nMerci de mettre le vrais pour vous connecter.","Connection","Quitter");
			}
            if(INI_Open(Accounts(playerid)))
		    {
                INI_ReadString(PlayerStat[playerid][Password],"Password",20);
		        if(strcmp(inputtext,PlayerStat[playerid][Password],false))
				{
				   if(PlayerStat[playerid][WrongPw] == 1)
				   {
                       SendClientMessage(playerid, GREY, "Vous avez йtй kick pour mot de passe incorrecte.");
				       Kick(playerid);
				   }
				   else
				   {
  					   ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Connection","Vous avez entrй un mot de passe incorrect.\nMerci de mettre le vrais pour vous connecter.","Connection","Quitter");
                       SendClientMessage(playerid, GREY, "Vous avez seulement une derniиre chance d'entrer le mot de passe de ce compte ou vous serrez kick.");
                       PlayerStat[playerid][WrongPw] = 1;
                       TogglePlayerControllable(playerid, false);
				       SetPlayerInterior(playerid,5);
                       SetPlayerVirtualWorld(playerid, playerid+0);
                       SetSpawnInfo(playerid, 0, 0, 1825.1848,-1723.9135,5202.5859 , 0, 0, 0, 0, 0, 0, 0);
                       SpawnPlayer(playerid);
                       SetPlayerCameraPos(playerid, 1752.4188, -1527.8185, 20.2753);
                       SetPlayerCameraLookAt(playerid, 1753.0366, -1528.6036, 19.8853);
				   }
                }
                else
				{

				    new str[128];
				    format(str, sizeof(str), "Bienvenue %s sur BadJail RolePlay, ", GetOOCName(playerid));
				    SendClientMessage(playerid, GREEN, str);
				    format(str, sizeof(str), "~w~Bienvenue ~n~~y~ %s", GetOOCName(playerid));
	                GameTextForPlayer(playerid, str, 3000, 1);
				    SendClientMessage(playerid, GREEN, SERVER_MOTD);

				    new Hour, Minute, Second;
	   	            new Day, Month, Year;
                    gettime(Hour, Minute, Second);
                    getdate(Year, Month, Day);
                    PlayerStat[playerid][LastLoginSecond] = Second;
                    PlayerStat[playerid][LastLoginMinute] = Minute;
                    PlayerStat[playerid][LastLoginHour] = Hour;
                    PlayerStat[playerid][LastLoginDay] = Day;
                    PlayerStat[playerid][LastLoginMonth] = Month;
	                PlayerStat[playerid][LastLoginYear] = Year;
                    INI_WriteInt("LastLoginSecond",PlayerStat[playerid][LastLoginSecond]);
                    INI_WriteInt("LastLoginMinute",PlayerStat[playerid][LastLoginMinute]);
                    INI_WriteInt("LastLoginHour",PlayerStat[playerid][LastLoginHour]);
                    INI_WriteInt("LastLoginDay",PlayerStat[playerid][LastLoginDay]);
                    INI_WriteInt("LastLoginMonth",PlayerStat[playerid][LastLoginMonth]);
                    INI_WriteInt("LastLoginYear",PlayerStat[playerid][LastLoginYear]);

                    if(PlayerStat[playerid][GangID] >= 1)
					{
                        format(str, sizeof(str), "Gang MOTD: %s", GangStat[PlayerStat[playerid][GangID]][MOTD]);
				        SendClientMessage(playerid, GangStat[PlayerStat[playerid][GangID]][Color], str);
				    }

				    PlayerStat[playerid][Logged] = 1;
				    LoadPlayerData(playerid);

				    INI_Save();
                    INI_Close();

				}
            }
        }
	}
}
Reply
#2

Tu mets une variable boolйenne а false quand le joueur se connecte, quand il a entrй le BON mot de passe, tu passes cette variable а TRUE.
Quand il rentre une commande, tu checks si la variable est active, si pas tu lui refuses. ZCMD est parfait pour зa (OnPlayerCommandReceived return 0 ainsi aucune commande n'est exйcutйe). Si tu es encore sur ce vieux strcmp tout pourri met un check dans la commande elle mкme.

Et enlиve ton SpawnPlayer quand tu rentres un faux password
Reply
#3

Je suis sur ZCMD, mais j'aurais pas les capacitй pour faire ce que tu m'as dit tu me peux me le faire/guider sur la piste ?
Reply
#4

PHP Code:
new IsConnected[MAX_PLAYERS];

public 
OnPlayerConnect(playerid)
{
    
// On remet а zйro la variable quand il se connecte pour йviter d'avoir un bug (ex: si le mec avec l'ID 1 dйco le nouveau joueur avec l'ID 1 aura la variable а "1", donc on remet а "0".
    
IsConnected[playerid] = 0;
    return 
1;
}

public 
OnPlayerSpawn(playerid)
{
    
// Quand le joueur est connecter et qu'il est spawn, on lui attribue а 1 la variable.
    
IsConnected[playerid] = 1;
    return 
1;
}

CMD:changepass(playeridparams[])
{
    if(
IsConnected[playerid] == 0) return SendClientMessage(playerid, -1"Tu n'es pas connecter, tu peut pas changer le mot de passe.");
    
//Suite de ta commande
    
return 1;

Si tu comprends pas contacte moi sur skype.
Reply
#5

Merci

Je sais faire sa, mais je parle que quand il rentre rien sa le spawn pas ^^
Reply
#6

Essaye sa :

PHP Code:
OnPlayerConnect(playerid)
{
    
// Si MDP incorrect, applique lui зa :
    
ForceClassSelection(playerid); // = on force le joueur а retourner aux choix des classes
    
TogglePlayerSpectating(playeridtrue); // On le fait retourner aux classes (зa йvite de le kill).
    
TogglePlayerSpectating(playeridfalse); // On le fait retourner aux classes (зa йvite de le kill).
    
    // Oublie pas de retourner.
    
return 1;

Reply
#7

Sa fonctionne pas. Je pesne que le problиmes viens de la ?
Code:
else
				   {
  					   ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Connection","Vous avez entrй un mot de passe incorrect.\nMerci de mettre le vrais pour vous connecter.","Connection","Quitter");
                       SendClientMessage(playerid, GREY, "Vous avez seulement une derniиre chance d'entrer le mot de passe de ce compte ou vous serrez kick.");
                       PlayerStat[playerid][WrongPw] = 1;
                       TogglePlayerControllable(playerid, false);
				       SetPlayerInterior(playerid,5);
                       SetPlayerVirtualWorld(playerid, playerid+0);
                       SetSpawnInfo(playerid, 0, 0, 1825.1848,-1723.9135,5202.5859 , 0, 0, 0, 0, 0, 0, 0);
                       SpawnPlayer(playerid);
                       SetPlayerCameraPos(playerid, 1752.4188, -1527.8185, 20.2753);
                       SetPlayerCameraLookAt(playerid, 1753.0366, -1528.6036, 19.8853);
				   }
                }
                else
				{

				    new str[128];
				    format(str, sizeof(str), "Bienvenue %s sur BadJail RolePlay, ", GetOOCName(playerid));
				    SendClientMessage(playerid, GREEN, str);
				    format(str, sizeof(str), "~w~Bienvenue ~n~~y~ %s", GetOOCName(playerid));
	                GameTextForPlayer(playerid, str, 3000, 1);
				    SendClientMessage(playerid, GREEN, SERVER_MOTD);

				    new Hour, Minute, Second;
	   	            new Day, Month, Year;
                    gettime(Hour, Minute, Second);
                    getdate(Year, Month, Day);
                    PlayerStat[playerid][LastLoginSecond] = Second;
                    PlayerStat[playerid][LastLoginMinute] = Minute;
                    PlayerStat[playerid][LastLoginHour] = Hour;
                    PlayerStat[playerid][LastLoginDay] = Day;
                    PlayerStat[playerid][LastLoginMonth] = Month;
	                PlayerStat[playerid][LastLoginYear] = Year;
                    INI_WriteInt("LastLoginSecond",PlayerStat[playerid][LastLoginSecond]);
                    INI_WriteInt("LastLoginMinute",PlayerStat[playerid][LastLoginMinute]);
                    INI_WriteInt("LastLoginHour",PlayerStat[playerid][LastLoginHour]);
                    INI_WriteInt("LastLoginDay",PlayerStat[playerid][LastLoginDay]);
                    INI_WriteInt("LastLoginMonth",PlayerStat[playerid][LastLoginMonth]);
                    INI_WriteInt("LastLoginYear",PlayerStat[playerid][LastLoginYear]);

                    if(PlayerStat[playerid][GangID] >= 1)
					{
                        format(str, sizeof(str), "Gang MOTD: %s", GangStat[PlayerStat[playerid][GangID]][MOTD]);
				        SendClientMessage(playerid, GangStat[PlayerStat[playerid][GangID]][Color], str);
				    }

				    PlayerStat[playerid][Logged] = 1;
				    LoadPlayerData(playerid);

				    INI_Save();
                    INI_Close();

				}
Reply
#8

Quote:
Originally Posted by MrAlexisX2
View Post
PHP Code:
new IsConnected[MAX_PLAYERS];
public 
OnPlayerConnect(playerid)
{
    
// On remet а zйro la variable quand il se connecte pour йviter d'avoir un bug (ex: si le mec avec l'ID 1 dйco le nouveau joueur avec l'ID 1 aura la variable а "1", donc on remet а "0".
    
IsConnected[playerid] = 0;
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    
// Quand le joueur est connecter et qu'il est spawn, on lui attribue а 1 la variable.
    
IsConnected[playerid] = 1;
    return 
1;
}
CMD:changepass(playeridparams[])
{
    if(
IsConnected[playerid] == 0) return SendClientMessage(playerid, -1"Tu n'es pas connecter, tu peut pas changer le mot de passe.");
    
//Suite de ta commande
    
return 1;

Si tu comprends pas contacte moi sur skype.
Sa marche pas aussi car le gars quand il clique sur connection il est spawn
Reply
#9

Le cryptage de les mots de passes а l'air d'кtre magnifique. J'ai bien fais de pas mettre mon vrai.
Reply
#10

Quote:
Originally Posted by Z3N0N
View Post
Le cryptage de les mots de passes а l'air d'кtre magnifique. J'ai bien fais de pas mettre mon vrai.
+111
Reply
#11

Ouais j'en veux un.

Ta signature n'a pas de pseudo Skype.
Reply
#12

Ton serveur est mкme pas lйgal, les mots de passes des gens doivent кtre cryptй а l'ouverture du serveur.
Reply
#13

Mon skype sarra.cmlv

#Le cryptage je suis entraine de le faire
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)