Dcc Chat pour bot mIRC [Résolu]

Signaler
Messages postés
22
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
17 juillet 2007
-
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009
-
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 :)
A voir également:

10 réponses

Messages postés
22
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
17 juillet 2007

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 :)
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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

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 :)
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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)
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
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 ;)
Messages postés
22
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
17 juillet 2007

Pourtant mon mot est competement attaché et c'est le bon....
Je vais essayé avec la condition:
if (%adminpasse isin $1-) {
Messages postés
22
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
17 juillet 2007

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à :)
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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

..... 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 ;)
Messages postés
1287
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
21 février 2009

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