XavSniper
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention17 juillet 2007
-
16 juil. 2007 à 17:34
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009
-
18 juil. 2007 à 01:36
Bonjour tout le monde.
J'essai de faire un système de DCC Chat pour bot mIRC, mais comme vous vous en seriez douté, celà ne marche pas, ce qui explique ma présence ici. Voici le code:
on *:chat:*: { if ($1 %adminbotpasse) { msg$nick Mot de passe correct }
else { msg =$nick Mot de passe incorrect | close -c $nick }
}
En fait, voilà, quand je saisis le passe retourné par la variable %adminbotpasse , ça va directement au "else" comme si je tape un code éroné. Et pourtant, c'est la même variable dans mes variables, c'est le bon passe que je saisis, rien n'y fait, ça va direct au "else". Quand je commente le "else" (quand je mets un ; devant quoi) rien ne se produit... donc là je comprends rien. Le début de mon code serait-il faux ?
Donc si quelqu'un pourrait éclairer ma lanterne, ce serait fort aimable :)
XavSniper
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention17 juillet 2007 17 juil. 2007 à 23:49
Quel boulet je suis (ui ui, je l'admet enfin...) u______u
En fait c'était un truc tout bête... mais bête quoi......:
Il y avait un espace après la variable..... donc pour ça que c'était toujours faux....
Ahlala..... ça m'apprendra à ne pas vérifier correctement mes variables.... -___-
Désolé de vous avoir dérangé pour rien, et je vous remercie beaucoup de votre patience et pour votre aide :)
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 16 juil. 2007 à 18:04
fais un echo de ton $1 juste avant le if
le close -c, ça serait pas =$nick après ?
on *:chat:*: {
echo -s Le mot de passe est %adminbotpasse et le premier mot est $1 if ($1 %adminbotpasse) { msg$nick Mot de passe correct }
else { msg =$nick Mot de passe incorrect | close -c $nick }
}
XavSniper
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention17 juillet 2007 16 juil. 2007 à 20:09
Le $1 correspond bien à ma variable, j'avais déjà essayé ça, tout concorde.
C'est pourquoi je pose ma question ici, car c'est mon dernier recours. J'ai tout essayé mais en vain
Quant au close -c c'est bien $nick et pas =$nick :)
RCA ArKanis
Messages postés1287Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention21 février 2009 16 juil. 2007 à 23:23
tu peux également vérifier que les longueurs des chaines correspondent
echo -s Le mot de passe est %adminbotpasse et le premier mot est $1 - $len(%adminbotpasse) - $len($1)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 17 juil. 2007 à 14:03
Après avoir testé avec ArKanis, il se trouve que ton mot de passe contient surement des espaces, et donc dans ce cas, $1 refère uniquement au premier mot, met $1- dans la condition, et ça marchera niquel ;)
XavSniper
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention17 juillet 2007 17 juil. 2007 à 22:06
Hum visiblement ça ne marche pas....
Je me demande si les variables sont acceptés dans les dcc chat, et si le joker est possible dans l'évenement on *:chat:*: {
Car quand je fais
on *:chat:passe: { msg =$nick blablabla }
ça marche nickel.... Mais comme je veux une condition else au cas le passe serait mauvais, que ça dise mauvais passe et que ça ferme le dcc chat. J'ai alors fait une variable. J'ai même essayé de remplacer le passe direct à la place de la variable, il y a rien a faire, ça retourne direct au else.
Voilà :)
XavSniper
Messages postés22Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention17 juillet 2007 17 juil. 2007 à 23:40
..... Bien sur que je l'ai fait, et rien ne se produit, pas le moindre écho:
Pour preuve:
on *:chat:*: {
if ($1 = = %adminbotpasse) { echo -s Le mot de passe est %adminbotpasse et le premier mot est $1 - $len(%adminbotpasse) - $len($1) }
;else { msg =$nick Mot de passe incorrect | close -c $nick }
}
J'ai même commenté le else pour pas que ça tombe dessus....
Alors que si je fais ça
on *:chat:*: { if ($1 %adminbotpasse) { msg$nick Mot de passe correct }
else { echo -s Le mot de passe est %adminbotpasse et le premier mot est $1 - $len(%adminbotpasse) - $len($1) }
}
L'echo s'affiche... Pour preuve:
Le mot de passe est passetest et le premier mot est passetest - 10 - 9
Voilà voilà, j'ai fais tout ce que vous m'avez demandé de faire, rien y fait....
Je vais voir si c'est pas du à ma version (trop) anterieure de mIRC qui en est la cause... Si c'est ça..... -___-