Mon script provoque un Excess Flood
#1
Bonjour à tous,
le titre de ce topic n'est pas très explicite mais il se trouve que j'ai besoin d'aide sur une procédure TCL qui ne fonctionne pas comme j'en ai envie.

Je vous explique un petit son fonctionnement :

Mon robot (nommé Pan) qui est donc un eggdrop s'occupe de gérer le modération (Badwords, Répétitions et spam) de 20 salons peuplés en moyenne par une centaine de visiteurs. Il s'occupe de poser des bans lors d'une récidive et de les retirer automatiquement après 10 minutes.
Jusque là tout fonctionne parfaitement.

Mon soucis : lorsqu'un opérateur de canal ou le robot en question pose un ban sur l'un des salons, je souhaite que le robot pose le ban en question sur les autres salons et qu'il face la même chose lors des unbans...

J'ai donc essayé de détecter les bans et unbans depuis le bind "MODE" :

Code :
if {$mode == "+b" || $mode == "-b"} {
foreach i $Bot(monitors) {
  putnow "MODE $i $mode $target"
}
}

Cela fonctionne dans le sens où le robot execute le code sans pleurnicher, mais il me semble qu'il envoie la commande "putnow" dès qu'il détecte les ban qu'il pose depuis ce même script.
Cela fait donc 20 x 20 putnow d'un coup (si je ne me trompe pas), ce qui provoque un Excess flood.

Ce que je souhaite faire pour remédier à cela, c'est d'abord vérifier si le ban n'est pas sur le salon avant d'envoyer le "putnow", et deuxièmement, que la boucle execute la commande seconde par secondes (comme un putquick" mais en plus rapide), l'équivalent en scripting mirc donnerait :

Code :
var %cpt = 1
while ( %cpt <= 100 ) {
.timer 1 %cpt commande
inc %cpt
}

Quelqu'un aurait-il une piste ?
Répondre Avertir


Messages dans ce sujet
Mon script provoque un Excess Flood - par tow - 03/03/2013, 21:19

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté