GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: snikers le 16 Novembre 2011, 17:30:25
-
Bonjour tous le monde j'utilise un gamemode + bdd (base de donnée) "SQL"
les membres peuvent se connecter sur mon serveur (boite de dialogue) il font simplement espace. on se fait attaquer tous les jours, on tourne a 35 membres, on va finir par perdre du monde. je vous le demande en toute amitier si vous pouvez m'aidez faite le s'il vous plait l'avenir de ma communautés est en jeux, je suis sur le point de tous perdre des mois de travaille, de l'argent est autre :(
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(IsPlayerConnected(playerid))
{
new tmpPass[64],tmp[64],idx;
idx = 0;
if(dialogid == 1) // 1 // Boite de dialogue de l'indetification
{
if(!response)
{SendClientMessage(playerid, COLOR_USAGE, "[Info] Utiliser \"/q\" pour quitter."); Kick(playerid); return 1;} // Le joueur annule
if(strlen(inputtext) == 0) // par default : == 0
{ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Mot de passe erroné","Entrez votre mot de passe","Valider","Quitter"); return 1;}
tmp = strtok(inputtext, idx);
strmid(tmpPass, tmp, 0, strlen(inputtext), 255);
OnPlayerLogin(playerid,tmpPass);
return 1;
}
if(dialogid == 2) // 2 // Boite de dialogue de l'indetification si il a raté la 1ere fois
{
if(!response)
{ SendClientMessage(playerid, COLOR_USAGE, "[Info] Utiliser \"/q\" pour quitter."); Kick(playerid); return 1;} // Le joueur annule
if(strlen(inputtext) == 0)// par default : == 0
{ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Mot de passe erroné","Entrez votre mot de passe","Valider","Quitter"); return 1;}
tmp = strtok(inputtext, idx);
strmid(tmpPass, tmp, 0, strlen(inputtext), 255);
OnPlayerLogin(playerid,tmpPass);
return 1;
}
-
if(20 < strlen(inputtext) || strlen(inputtext) < 5 )
{
SendClientMessage(playerid, TACOULEUR, "Mauvais mot de passe.");
return Entry(playerid);
}
Pour vérifier si le mot de passe fait + de 5 caractères et - de 20.
Sinon :
strfind(inputtext, " ", true) return Kick(playerid);
je ne suis pas sur que ça marche ?
-
le problème ses que si je mais sa
strfind(inputtext, " ", true) return Kick(playerid);
quand la personne fait entrer elle rentre :-X
Double post
La premier solution ne marche pas :(
merci quand meme de votre aide
-
Tu utilise tout un tas de fonction inutile, et en plus, tu les utilises mal !
Voici un skeleton d'un système de connexion, reste plus qu'à le modifier pour ton système.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch (dialogid)
{
case 0: // Dialog Type: DIALOG_STYLE_INPUT
{
if (response)
printf("Mot de passe indiqué: %s\n", inputtext);
else
printf("Fenêtre fermé !\n");
}
}
return 1;
}
-
Dans l'include ZCMD on a le raccourci de fonction isnull, ça pourrait t’être utile
#if !defined isnull
#define isnull(%1) \
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
-
Comme l'a dit Xolocos
tu remplace les
if ... strlen .....
du login par sa
if(20 < strlen(inputtext) || strlen(inputtext) < 5 )
-
Salut snikers je te prierai d'aller lire les règles de cette section du forum disponible à cette adresse http://www.gtaonline.fr/forums/index.php/topic,12060.0.html (http://www.gtaonline.fr/forums/index.php/topic,12060.0.html)
(En gros change le titre de ton post pour un titre qui fait comprendre le problème et stop les doubles post)