Alors tout da'bord, merci pour ta réponse. Voici quleques renseignements de plus:
PLAYERLIST_authed ets utilisé à:
- la connexion (onplayerconnect )
if (!PLAYERLIST_authed[playerid])
{
if (udb_Exists(PlayerName(playerid)))
{
SendClientMessage(playerid, COLOR_ORANGE, "Vous avez 30 SECONDES pour vous LOGUER ( /login [Mot De Passe] )");
SendClientMessage(playerid, COLOR_ORANGE, "Après ça, vous serez KICKE par le système de protection de pseudo! ! ! ");
CountProtection(playerid,30);
}
}
//REGISTER
PLAYERLIST_authed[playerid]=false;
if (udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid, COLOR_SYSTEM, "Bienvenue, ce compte existe déjà (/Login mot de passe)");
return 1;
}
- la déconnexion ( onplayerdisconnect )
if (PLAYERLIST_authed[playerid])
{
// save
dUserSetINT(PlayerName(playerid)).("Money",GetPlayerMoney(playerid));
dUserSetINT(PlayerName(playerid)).("Score",GetPlayerScore(playerid));
dUserSetINT(PlayerName(playerid)).("Kills",pkills[playerid]);
dUserSetINT(PlayerName(playerid)).("Deaths",pdeaths[playerid]);
}
PLAYERLIST_authed[playerid]=false;
- lors de la fermeture du game mode ( gamemodeexit )
if (PLAYERLIST_authed[i])
{
// save
dUserSetINT(PlayerName(i)).("Money",GetPlayerMoney(i));
dUserSetINT(PlayerName(i)).("Score",GetPlayerScore(i));
dUserSetINT(PlayerName(i)).("Kills",pkills[i]);
dUserSetINT(PlayerName(i)).("Deaths",pdeaths[i]);
}
PLAYERLIST_authed[i]=false;
}
- à l'enregistrement ( /register ) et au logue ( /login )
dcmd_register(playerid,params[]) {
//if (autoriserregister[playerid] ==0) return SystemMsg(playerid,"Pour vous créer un compte avec /register [Mot de passe de votre choix], vous devez contacter un Admin en Jeu pour qu'il vous autorise à en créer un.");//rajoutertest
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Vous êtes déjà logué.");
if (indm[playerid] > 0) return SystemMsg(playerid,"Vous ne pouvez pas vous enregistrer dans un DM.");
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Ce compte existe déjà '/login mot de passe'.");
if (strlen(params)==0) return SystemMsg(playerid,"Usage correct: '/register mot de passe'");
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Compte crée '/login mot de passe.");
if (!udb_Exists(PlayerName(playerid))) return protectionregister(playerid);//SIMIP La je susi censé save l ip si e joueur est inconnu mais ça ne marche pas :(
return 1;
}
//LOGIN
dcmd_login(playerid,params[]) {
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Vous êtes déjà logué.");
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Ce compte n'existe pas '/register mot de passe'.");
if (strlen(params)==0) return SystemMsg(playerid,"Tapez '/login mot de passe'");
if (indm[playerid] > 0) return SystemMsg(playerid,"Vous ne pouvez pas vous loguer dans un DM.");
if (udb_CheckLogin(PlayerName(playerid),params)) {
// Status
GivePlayerCash(playerid,dUserINT(PlayerName(playerid)).("money")+GetPlayerMoney(playerid));
SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("Score")+GetPlayerScore(playerid));
pkills[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Kills")+pkills[playerid]);
pdeaths[playerid] = (playerid,dUserINT(PlayerName(playerid)).("Deaths")+pdeaths[playerid]);
PLAYERLIST_authed[playerid]=true;
KillTimer(protectionOK[playerid]);//protection
logged[playerid] = 1;
return SystemMsg(playerid,"Vous êtes logué avec succès!");
}
logged est utilisé dans les même condition en gros cette variaible est inutile mais elle me sert juste à "discuter" avec un autre FS lorsqu'il ets activé. De plus, les variable PLAYERLIST_authed et logged retounrent à 0 à la déconnexion, à la connexion et lors de la fermeture du gamemode ( ongamemodeexit )
A+ et merci d'avance pour votre aide ;)