Bonjour a tous, j'ai un tableau de login et depuis quelque temps, certaine fois, qaund un joueur se connecte, le tableau de login s'affiche, il entre son mot de passe et on lui dit que ce nom est deja utilisé, comme si il essayait de l'enregistrer.
public OnPlayerRequestClass(playerid, classid)
{
new string[128];
new name[MAX_PLAYER_NAME];//variable pseudo
GetPlayerName(playerid,name,sizeof(name));//on retient le pseudo
//PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pModel] = Peds[classid][0];
SetPlayerTime(playerid, 0, 0);
if (RegistrationStep[playerid] == 0 && gPlayerLogged[playerid] != 1)
{
ClearChatbox(playerid, 10);
format(string, sizeof(string), "Bienvenue sur West Coast RolePlay, Version du script: %s", SCRIPT_VERSION);
SendClientMessage(playerid, COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_YELLOW2, " ");
if (gPlayerAccount[playerid] != 0)
{
format(string,256,"Bienvenue sur West Coast RolePlay\n\nPseudo:\t%s\n\nEntrez votre mot de passe :",name);
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT," ",string,"Connection","Annuler");
}
else
{
format(string,256,"Bienvenue sur West Coast RolePlay\n\nPseudo:\t%s\n\nEntrez votre mot de passe :",name);
ShowPlayerDialog(playerid,ENREGISTRER,DIALOG_STYLE_INPUT," ",string,"Enregistrer","Annuler");
}
/*SetPlayerCameraPos(playerid, 1409.5474,-908.9810,102.3461);
SetPlayerCameraLookAt(playerid, 1415.6333,-807.8854,85.0599);*/
PlayerPlaySound(playerid, 1187, 0.0, 0.0, 0.0);
PlayerInfo[playerid][pModel] = Peds[classid][0];
SetPlayerTeamFromClass(playerid,classid);
}
else SpawnPlayer(playerid);
return false;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[256];
new giveplayer[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
new carid = GetPlayerVehicleID(playerid);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(dialogid == LOGIN)
{
if(response)
{
new log[256];
format(log, 256, "/ident %s", inputtext);//la on va faire croire au serveur que le joueur tape /login sonpasse
return OnPlayerCommandText(playerid, log);// on retourne la reponse dans la callback OnPlayerText ^^
}
else
{
Kick(playerid);
}
return 1;
}
if(dialogid == ENREGISTRER)
{
if(response)
{
new log[256];
format(log, 256, "/enregistrer %s", inputtext);
return OnPlayerCommandText(playerid, log);
}
else
{
Kick(playerid);
}
return 1;
}
if (strcmp(cmd, "/ident", true) ==0 || strcmp(cmd, "/i", true) ==0)
{
if(IsPlayerConnected(playerid))
{
new tmppass[64];
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "SERVER: vous êtes déjà connecté.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "USAGE: (/i)dent [motdepasse]");
return 1;
}
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
//Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
Inf[playerid] = 1;
}
return 1;
}
//-----------Register---------------
if (strcmp(cmd, "/enregistrer", true) ==0 )
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "SERVER: vous êtes déjà connecté.");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "Ce nom est déjà pris, choisissez en un autre.");
fclose(hFile);
return 1;
}
new tmppass[64];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /enregistrer [motdepasse]");
return 1;
}
/*format(string,sizeof(string), "Vous vous êtes enregistré sous le nom %s avec le mot de passe: %s",sendername,tmppass);
SendClientMessage(i, COLOR_WHITE, string);*/
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
//Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
return 1;
}
Merci d'avance