Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


[Demande] attendre que l'egg soit posé pour activer un tcl precis
#1
Bonjour,

je viens vers vous car j'ai des eggdrop qui utilisent le principe de "spy.tcl", qui donc loguent tout ce qui est dit/ce passe sur divers salons, les kick,msg privés,notices, modes, changements de pseudos ect ... Bien évidement les egg etant sur pas mal de salons, ils mettent du temps à ce "poser" et commencent donc un flood énorme sur le salon #log . Hors j'aimerait que mon tcl ne demarre en fait qu'a son arrivée sur #log sans tenir compte de la file des msg/modes/topic qu'il a recu lors de sa connexion, à leur arrivée sur les divers salons.

principe:

"lancer l'egg/ charger les tcl et lib / connexion / arrivée sur les salons / et enfin démarrage du tcl de log "

(ps, windrops hébergés sur mes machines)

J'espère avoir eté précis dans ma requête

Cordialement.
#2
Salut,

Simple, dans ton code TCL utilise la fonction timer, voir utimer, pour qu'il lance la procédure du démarage de ton tcl log, lorsque lui arrive sur le salon #log

Donc, lorsque ton eggdrop va rejoindre #log, il lancera le tout.
Mais faut se sois déclarable que sur $::botnick

J'espère t'avoir aider..
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#3
Je pense que le plus simple, c'est de ne charger les binds qu'une fois que l'eggdrop est bien sur tous les canaux, par exemple en comparant lors des joins de l'eggdrop le nombre de canaux actuels avec le nombre de canaux dans [channels].
Ou encore mieux, ne charger le script qu'une fois cette condition remplie.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#4
RE,

l'idée est bonne, mais j'ai pas vraiment envie d'alourdir le code avec des timer utimer partout sur chaque bind, je pensait à un truc du genre set "la tcl" avec timer éventuellement, mais je ne vois pas comment faire.


Cordialemement.
#5
Le timer est très aléatoire, est-ce que tu es vraiment capable de dire au bout de combien de temps l'eggdrop a rejoint tous les canaux ?
Alors qu'un script du genre:

tcl
set nchans [llength [channels]]
set joined 0
bind join - "*" countchan
proc countchan {nick uhost handle chan} {
   if {[string tolower $nick]!=[string tolower $::botnick} { return 0 }
   incr ::joined
   if { $::joined == $::nchans} {
      unbind join - "*" countchan
      source scripts/tonscript.tcl
   }
   return 0
}

Ce bout de script ne sera fonctionnel que le temps que mets l'eggdrop à rejoindre les canaux. En espérant que tu n'en aies pas en +inactive.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#6
salut,

J'ai malheuresement des salons en +inactive, que j'aimerait eviter de supprimer. Autre soucis, j'utilise un tcl qui ce charge de charger les tcl ce trouvant dans le dossier scripts (loadall.tcl) ce qui m'evite de de devoir editer lefichier conf a chaque test.Neamoins, je pourrit toujours placer "log.tcl" dans un sous repertoire, et modifier la ligne source scripts/sousrep/tonscript.tcl. Reste donc le soucis des salons en +inactive.

Cordialement.
#7

tcl
set nchans 0
foreach chan [channels] {
   if { [channel get $chan inactive]==0 } { incr ::nchans }
}
set joined 0
bind join - "*" countchan
proc countchan {nick uhost handle chan} {
   if {[string tolower $nick]!=[string tolower $::botnick} { return 0 }
   incr ::joined
   if { $::joined == $::nchans} {
      unbind join - "*" countchan
      source scripts/tonscript.tcl
   }
   return 0
}

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  Tcl qui reconnaitrait et annoncerait les ircops entrant sur un salon précis Ab0miFreuX 16 10,175 26/09/2013, 22:35
Last Post: CrazyCat
  Pleins de questions que je me pose pchevee 12 6,957 11/04/2011, 20:47
Last Post: pchevee

Forum Jump:


Users browsing this thread: 1 Guest(s)