06/06/2011, 20:50
ça fonctionne parfaitement merci 
donc correction :

donc correction :
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 args} {
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 [expr $::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
}
}