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


petite astuce pour les binds pub/msg indentique
#1
il est parfois utile d avoir des binds pub et msg qui font la même chose
exemple: !op et /msg bot op #salon
il convient de faire une procédure par bind puisque celles ci n'acceptent pas le même nombre d arguments

tcl
bind pub o !op pub:op
bind msg o op msg:op
 
proc pub:op {nick host hand chan arg} {
    putserv "MODE $chan +o $nick"
}
 
proc msg:op {nick host hand arg} {
    set chan [lindex $arg 0]
    if ![validchan $chan] {
        putserv "NOTICE $nick :salon invalide."
        return
    }
    putserv "MODE $chan +o $nick"
}


seulement ça peut devenir extrêmement lassant de devoir copier/coller les procs alors que l'on peut gérer ca directement avec tcl
ici on déclarera seulement "args" pour la procédure (qui admet un nombre illimité d argument)

tcl
bind pub o !op test:op
bind msg o op test:op
 
proc test:op args {
    set arg [lassign $args nick host hand chan]
    if {[llength $chan]>1} {
        set arg [lassign $chan chan]
        if ![validchan $chan] {
            putserv "NOTICE $nick :salon invalide."
            return
        }
    }
    putserv "MODE $chan +o $nick"
}


on vas maintenant créer une proc qui gère l'assignement des arguments histoire de ne pas devoir tout réécrire pour chaques commandes

tcl
proc arg_assign {} {
    uplevel 1 {
        set arg [lassign $args nick host hand chan]
        if {[llength $chan]>1} {
            set arg [lassign $chan chan]
        }
    }
}
 
bind pub o !op test:op
bind msg o op test:op
 
proc test:op args {
    arg_assign
    if ![validchan $chan] {
        putserv "NOTICE $nick :salon invalide."
        return
    }
    putserv "MODE $chan +o $nick"
}


voila, en espérant que ça pourra vous être utile ;)
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away


Messages In This Thread
petite astuce pour les binds pub/msg indentique - by djkenny - 12/03/2011, 10:35

Possibly Related Threads…
Thread Author Replies Views Last Post
  Binds: savoir quand l'eggdrop rejoins un salon. (autoop) TuX 5 4,162 02/09/2013, 08:44
Last Post: CrazyCat
  [Astuce] url_encode en tcl CrazyCat 0 2,524 01/07/2009, 22:29
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)