autovoice
#1
Bonjour,

On ma demander un autovoice activable sur salon
Donc qui nécessite pas de mettre #salon dans un (set salon blabla "#chan")

Alors je le mets ici des fois qu'il pourrait être utile à des personnes qui cherchent ce type de code.

PS : sur salon pour l'activé suffit de tapez : !von
Pour le désactivé tapez : !voff

Voici le code :

tcl
namespace eval ::autov {
setudef flag VV
 
bind pub o "!von" [namespace current]::von
proc von { nick host hand chan arg } {
    if {[channel get $chan VV] == 0} {
         channel set $chan +VV
         putquick "PRIVMSG $chan :Auto-Voice Activé !"
         foreach von [chanlist $chan] { if [isop $von $chan] continue; pushmode $chan +v $von }
    } else {
         putquick "PRIVMSG $chan :Auto-Voice déjà Activé !"
    }
}
 
bind pub o "!voff" [namespace current]::voff
proc voff { nick host hand chan arg } {
    if {[channel get $chan VV] != 0} {
         channel set $chan -VV
         putquick "PRIVMSG $chan :Auto-Voice Désactivé !"
         foreach voff [chanlist $chan] { if [isop $voff $chan] continue; pushmode $chan -v $voff }
    } else {
         putquick "PRIVMSG $chan :Auto-Voice déjà Désactivé !"
    }
}
 
bind join - "*" [namespace current]::autovoice
proc autovoice { nick uhost handle chan } {
if {[channel get $chan VV]==0} { return; }
      pushmode $chan +v $nick
    }
}


  Répondre
#2
Tu as suivi mon conseil et ajouté le (de)voice des personnes présentes, c'est bien.
Par contre, je ne comprends pas l'intérêt des "::" devant le nom du namespace lors du namespace eval.
  Répondre
#3
Oui j'ai suivi ton conseil ta vus :p

Heu oui jâ€avais dans l'idée de faire le code autrement lors des appels de procédure donc jâ€avais mis le :: mais bon après j'ai laissé comme ça sans les retiré désolé.

Donc oui les retiré serait aussi bien car ils servent à rien Smile
  Répondre
#4
salut,
Citation :Par contre, je ne comprends pas l'intérêt des "::" devant le nom du namespace lors du namespace eval.
sur ce coup la il a raison de mettre les :: , le namespace que tu crées n'est pas forcément chargé dans le namespace global, tout dépend ou tu le source. Avec l'ajout des :: tu es sure qu'il soit chargé, dans tous les cas, dans le namespace global
imaginons que tu es:
tcl
namespace eval machin {
    namespace eval truc {
...
    }
}


le chemin de truc sera ::machin::truc
alors que
tcl
namespace eval machin {
    namespace eval ::truc {
...
    }
}


le chemin de truc sera ::truc
C'est en reconnaissant ses erreurs que l'on progresse Wink
Absent
  Répondre
#5
Bonjour,
Mise à jour du code incluant plusieurs choses qu'ont ma demandé sur irc.
Voici le lien :
Téléchargement ici.
  Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  [Recherche] Script Autovoice Prototype 14 4,281 09/05/2013, 22:24
Dernier message: Prototype

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)