tout d'abord nous allons defenir nos dialogue
#define LOGDIA 1
ensuite dans la callback OnPlayerConnecte
Si vous utilisé file
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new str[128];
format(str,sizeof(str)"%s.ini",name);
if(fexist(str))
{
}
return 1;
}
Si vous utiliser Dini
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new str[128];
format(str,sizeof(str)"%s.ini",name);
if (dini_Exists(str))
{
}
return 1;
}
Pour le moment je n'est en aucun cas créer le tableau.
Désormer nous allons crée une fonction qui vas nous servir plus tard
LOGINSYS(playerid)
{
new name[MAX_PLAYER_NAME];//variable pseudo
GetPlayerName(playerid,name,sizeof(name));//on retient le pseudo
new loginmsg[256];//variable pour le format
format(loginmsg,256,"Bienvenue sur le sevreur .\n\nCompte:\t%s\n\nEntrer le mot de passe :",name);// le tableau qu'on va afficher
ShowPlayerDialog(playerid,LOGDIA,DIALOG_STYLE_INPUT,"Login ",loginmsg,"Login","Annuler");//creation du tableau
return 1;
}
Voila notre tableau.
Oui mais il faut bien retourner les information pour ce loguer ^^.
rien de plus simple on va utiliser une fonction tres enfantin
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == LOGDIA)//si le tableau est LOGDIA
{
if(response)//on verifie si on reçoit une reponse
{
new log[256];//variable pour notre format
format(log, 256, "/login %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//si pas de reponde
{
Kick(playerid);//on kick on peu en deduire que c'est un fake ^^
}
}
return 1;
}
oui mais la comme sa a aucun moment vous verez le tableau en allant sur le serveur car la fonction n'est pas utiliser.
Comment faire tel est la question.
Rien de plus simple
Si vous utliser file
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new str[128];
format(str,sizeof(str)"%s.ini",name);
if(fexist(str))
{
LOGINSYS(playerid);
}
return 1;
}
Si vous utiliser Dini
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new str[128];
format(str,sizeof(str)"%s.ini",name);
if (dini_Exists(str))
{
LOGINSYS(playerid);
}
return 1;
}
Voila j'espere que vous avez compris un peu le principe tu dialogue avec ceci