GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Tersatros le 31 Janvier 2014, 20:12:46
-
Bonsoir, je suis de retour :biggrin: !
EDIT: Pour ceux qui ont lu avant, j'ai trouvé le problème ! Mais j'ai un autre problème... une fois enregistré et le mot de passe entrée, j'arrive au tableau login, je tape EXACTEMENT mon mot de passe mais il m'indique que c'est faux, alors du coup j'ai changer un peu et j'ai mis ça:
case DIALOG_LOGIN:
{
if (!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"Error","{FFFAF0}Oops ! You have {FF0000}wrote {FFFAF0}nothing. Write your password belong to {7FFF00}login {FFFAF0}please.","Login","Quit");
new hashed_password[129];
WP_Hash(hashed_password,sizeof(hashed_password),inputtext);
if(hashed_password(inputtext) == uSerData[playerid][Password])
{
INI_ParseFile(UserPath(playerid),"LoadUser_%s", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid,uSerData[playerid][Money]);
ShowPlayerDialog(playerid,DIALOG_SUCCESS_4,0,"Success !","{FFFAF0}You have been successfully {7FFF00}login {FFFAF0}to the server !","Play !","Quit");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"Incorrect password","{FFFAF0}Oops ! You have wrote a {FF0000}wrong {FFFAF0}password. Write it correctly below.","Login","Quit");
}
return 1;
}
}
Mais cette fois-ci j'ai cela:
C:\Program Files\Rockstar Games\GTA San Andreas\SAMP\gamemodes\lsgw.pwn(901) : error 012: invalid function call, not a valid address
C:\Program Files\Rockstar Games\GTA San Andreas\SAMP\gamemodes\lsgw.pwn(901) : warning 215: expression has no effect
C:\Program Files\Rockstar Games\GTA San Andreas\SAMP\gamemodes\lsgw.pwn(901) : error 001: expected token: ";", but found ")"
C:\Program Files\Rockstar Games\GTA San Andreas\SAMP\gamemodes\lsgw.pwn(901) : error 029: invalid expression, assumed zero
C:\Program Files\Rockstar Games\GTA San Andreas\SAMP\gamemodes\lsgw.pwn(901) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
901 est la ligne: if(hashed_password(inputtext) == uSerData[playerid][Password])
Je précise que j'ai créais le hash password dans une variable et non pas dans un fichier stock (même problème quand j'avais un stock. Mais après avoir changer ça, plus de soucis de "fake wrong password" mais là le soucis reviens !)
Merci de m'aider !
-
if(!strcmp(hashed_password, uSerData[playerid][Money], false))
C'est marrant le tuto que j'ai suivi cette après midi sur le forum sa-mp procède exactement pareil que toi.. :rolleyes:
-
if(!strcmp(hashed_password, uSerData[playerid][Money], false))
C'est marrant le tuto que j'ai suivi cette après midi sur le forum sa-mp procède exactement pareil que toi.. :rolleyes:
Merci pour ta réponse mais autre problème: en testant, si je marque un wrong password, il m'affiche quand même le dialog suivant comme quoi j'ai été login or ça doit indiquer le message Mauvaise mot de passe... !
Pourtant je trouve que le code paraît logique...
Oui je me suis aidé du tuto mais je t'assure, j'ai fais quelques trucs à côté, j'ai pas seulement fais que de "recopier" :laugh:
-
Oui moi aussi il me semblait logique. Et j'ai eu la même erreur que toi.
-
Tu dois utiliser strcmp (http://wiki.sa-mp.com/wiki/Strcmp_FR) pour comparer deux chaînes
hashed_password est une variable, il ne doit pas y avoir de paramètre ^^
Quelque chose me dit que tu ne sais pas très bien scripter, mais je ne sais pas quoi...
Ah oui, peut-être l'utilisation de variable comme une fonction et la comparaison de deux chaînes sans strcmp ?
-
Tu dois utiliser strcmp (http://wiki.sa-mp.com/wiki/Strcmp_FR) pour comparer deux chaînes
hashed_password est une variable, il ne doit pas y avoir de paramètre ^^
Quelque chose me dit que tu ne sais pas très bien scripter, mais je ne sais pas quoi...
Ah oui, peut-être l'utilisation de variable comme une fonction et la comparaison de deux chaînes sans strcmp ?
Justement déjà utilisé mais il y a l'autre problème... comme cité plus haut. J'avais utilisé strcmp bien avant hein.. j'ai fais quelques changements mais je revenais au problème suivant: mot de passe faux mais login quand même. Une aide pour ça ?
-
Fait en sorte que le mot de passe écrit soit considéré comme incorrect à chaque fois et affiche le dans le dialogue (en le hashant) à côté du vrai mot de passe
C'est ce que je fais perso sur les problèmes de système de login et ça marche à merveille ^^
-
Je test ça alors ! J'te remercie de ton aide ;)