Dcc Chat pour bot mIRC

Résolu
XavSniper Messages postés 22 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 17 juillet 2007 - 16 juil. 2007 à 17:34
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 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 :)

Merci d'avance. A bientôt :)

10 réponses

XavSniper Messages postés 22 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 17 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 :)

A plus :)
3
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 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 }
}

l'echo sera dans la fenêtre de statut

tu verras bien ce qui cloche :)
0
XavSniper Messages postés 22 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 17 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 :)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
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 ;)
0
XavSniper Messages postés 22 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 17 juillet 2007
17 juil. 2007 à 21:52
Pourtant mon mot est competement attaché et c'est le bon....
Je vais essayé avec la condition:
if (%adminpasse isin $1-) {
0
XavSniper Messages postés 22 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 17 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à :)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
17 juil. 2007 à 22:21
comme l'a dit Wims, on a essayé le code ... il fonctionne très bien
ça ne peut venir que d'une erreur de mot de passe ...

tu as essayé le deuxième echo que je t'ai proposé ?
0
XavSniper Messages postés 22 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 17 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..... -___-

A plus ;)
0
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
18 juil. 2007 à 01:36
d'où l'utilité de l'echo qui affiche la longueur des chaines de caractères :D

10 - 9 indique qu'ils ne sont pas de la même longueur et donc que ça ne sera pas égal
0
Rejoignez-nous