06/06/2011, 19:32
(Modification du message : 06/06/2011, 19:58 par aliasangelius.)
Bonjour,
Donc sur irc ont à signaler un petit souci :
Donc j'ai mis le tcl dans mon eggdrop de test.
J’ai changé args par arg plus d'erreur.
Ensuite autre erreur détecté :
En faite ici juste un oubli ou alors une faute de frappe trop vite j'ai remplacé :
Par :
Une fermeture de parenthèse en trop
Et la aucune erreur n'es signaler dans la pl.
Voici le code :
Donc sur irc ont à signaler un petit souci :
Citation :[19:06:55] ( TwyZ ) wrong # args: should be "set varName ?newValue?"
Donc j'ai mis le tcl dans mon eggdrop de test.
J’ai changé args par arg plus d'erreur.
Ensuite autre erreur détecté :
Citation :[19:16:03] <Notifica> [19:16:36] Tcl error [voice:adqueue]: unbalanced close paren
[19:16:03] <Notifica> in expression "...$::voiceq $nick] >= 0))"
En faite ici juste un oubli ou alors une faute de frappe trop vite j'ai remplacé :
tcl
if {($nick == $::voiced) || ([lsearch -exact $::voiceq $nick] >= 0))} {
Par :
tcl
if {($nick == $::voiced) || ([lsearch -exact $::voiceq $nick] >= 0)} {
Une fermeture de parenthèse en trop

Et la aucune erreur n'es signaler dans la pl.
Voici le code :
tcl
# Durée du voice en minutes
set duration 5
# Canal visé
set vchan "#voice"
# Commande à utiliser en privé
bind msg - "!voiceme" voice:adqueue
set voiceq {}
set voiced ""
set voicec 0
# Procédure principale : ajout dans la file d'attente
proc voice:adqueue {nick uhost handle arg} {
if {($nick == $::voiced) || ([lsearch -exact $::voiceq $nick] >= 0)} {
putserv "PRIVMSG $nick :Tu es déjà dans la file"
return 0
}
lappend ::voiceq $nick
voice:checknext
}
# Procédure très importante : choix du nouveau voicé
proc voice:checknext {} {
if {$::voiced == "" && [llength $::voiceq] > 0} {
set ::voiced [lindex $::voiceq 0]
set delay ($::duration * 60000)
set ::voicec [after $delay voice:del]
set ::voiceq [lrange $::voiceq 1 end]
pushmode $::vchan +v $::voiced
}
}
# Arrêt du voice
proc voice:del {} {
pushmode $::vchan -v $::voiced
set ::voiced ""
voice:checknext
}
# Gestion de la déconnexion
bind part - $::vchan voice:part
bind sign - $::vchan voice:part
proc voice:part {nick uhost handle chan msg} {
if {$::voiced == $nick} {
after cancel $::voicec
set ::voiced ""
voice::checknext
}
}