GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Snoop452 le 15 Mars 2014, 09:03:02
-
Bonjour/Bonsoir,
J'ai donc pris le gamemode de zkay juste pour le modifié en local et réglé certains bugs, mais un bug qui me pose problème, et j'ai vue que je n'étaient pas le seul.
Son register : il est codé super zarbi, mais bon, mon soucis et que :
1. Si il fait echap il ne se fait pas kick
2. Si il clique sur ok sans rien mettre il ne se fait pas kick
3. il peut rentré n'importe quel mot de passe il jamais il se fait kick, ou jamais ça lui dit mauvais mdp.
dites pour les bout de code que vous besoin
-
C'est très facile de scripter ça, tu ne sais pas le faire toi même ? ._.
- Tu utilises le booléen response
- Tu vérifies si la longueur de inputtext est égale à 0
- Tu compares le mot de passe tappé avec le mot de passe enregistré*, et si c'est incorrect tu le kick
-
Les dialog son déjà scripter, mais , quand je met :
if (!response) return Kick (playerid);
if (response)
donc il se fait kick quand il fait echap, et quand il clique sur ok sans rien mettre, mais il se fait kick également quand il rentre un mdp :/
cdt
-
C'est très facile de scripter ça, tu ne sais pas le faire toi même ? ._.
- Tu utilises le booléen response
- Tu vérifies si la longueur de inputtext est égale à 0
- Tu compares le mot de passe tappé avec le mot de passe enregistrer, et si c'est incorrect tu le kick
Petite coquille dans ton message. Tu dois vérifier que la longueur de la chaîne inputtext est différente de zéro, et non pas égale. Pour cela, tu dois utiliser la fonction strlen().
-
Il a parlé de
2. Si il clique sur ok sans rien mettre il ne se fait pas kick
Donc on doit bel et bien vérifier si la longueur de inputtext est égale à 0, et kick si c'est le cas
-
clique sur ok sans rien mettre il ne se fait pas kick
Donc on doit bel et bien vérifier si la longueur de inputtext est égale à 0, et kick si c'est le cas
Tu es contradictoire. :smile:
-
Bon écoute on va éviter de partir en HS déjà la u_u
clique sur ok sans rien mettre il ne se fait pas kick
ça, c'est le soucis
vérifier si la longueur de inputtext est égale à 0, kick si c'est le cas
et ça, c'est la solution
Il veut kick si il ne met rien, donc on va kick si il ne met rien (CONTRADICTOIRE HEIN ?!)
Tu vois de la contradiction partout où il n'y en a pas :p
-
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new player[MAX_PLAYER_NAME];
new string[256];
if(dialogid == 2)
{
new sendername[20];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "comptes/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "Ce nom est déjà utiliser reconnecter vous avec un autre Mot de passe.");
fclose(hFile);
return 1;
}
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,54,DIALOG_STYLE_PASSWORD,"Enregister vous","Veuillez entrez votre mot de passe\nPour vous enregistrer","Ok","Annuler");
return 1;
}
//Encrypt(tmppass);
OnPlayerRegister(playerid,inputtext);
}
if(dialogid == 1)
{
//new tmppass[64];
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, TEAM_AZTECAS_COLOR, "SERVEUR: Vous êtes déjà loggué.");
return 1;
}
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,53,DIALOG_STYLE_PASSWORD,"Loguez vous","Veuillez entrez votre mot de passe\nPour vous loguez","Ok","Annuler");
return 1;
}
//Encrypt(tmppass);
SetCameraBehindPlayer(playerid);
return OnPlayerLogin(playerid,inputtext);
}
Edit : Merci d'utiliser les balises [*code=pawn] [*/code] (sans les "*")
-
Salut
Utilises les balises [*code=pawn] [*/code] pour mettre en valeur, sinon mets ça sur Pastebin ;)
Ca fait moche :P