[Script] Gestion de temps de parole
#1
Bonsoir,

On m'a demandé s'il était possible de faire un script qui donne la parole (un voice) à des utilisateurs en suivant une file d'attente (l'ordre dans lequel les utilisateurs demandent à parler) avec un temps de parole limité pour chaque fois.

J'ai donc produit ceci, je ne l'ai pas testé mais il ne doit pas y avoir trop d'erreurs.

A tester et commenter Smile
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 ($::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
    }
}


Répondre


Messages dans ce sujet
[Script] Gestion de temps de parole - par CrazyCat - 05/06/2011, 23:02

Atteindre :


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