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


Procédure universelle d'affichage de texte
#1
Cette procédure permet d'envoyer un message dans n'importe quelle file d'attente de l'Eggdrop (puthelp, putquick, putnow, putserv, putdcc, putlog ou putloglev), par message privé, public, ou par notice.

Si le paramètre de configuration monochrome vaut 1 ou que le mode +c est détecté sur le chan cible, alors tous les codes de style seront automatiquement filtrés.
De même si le message est destiné à un utilisateur en partyline et que celui-ci ne possède pas le flag h.

Vous aurez également besoin de la procédure split_line, qui permet de découper une ligne trop longue en plusieurs lignes.

tcl
Variables à déclarer
# Filtrer les codes de style (couleurs, gras, ...) dans tous les affichages du
# script ? (0 = non / 1 = oui)
variable monochrome 0
 
# Longueur maximum d'une ligne affichable (si la fin de certaines lignes est
# tronquée, cela signifie que vous devez diminuer cette valeur)
variable max_line_length 435



tcl
Procédure
###############################################################################
### Affichage d'un texte, filtrage des styles si nécessaire.
### * queue peut valoir help, quick, now, serv, dcc, log ou loglev
### * method peut valoir PRIVMSG ou NOTICE et sera ignoré si queue vaut dcc, log
###      ou loglev
### * target peut être un nick, un chan ou un idx, et sera ignoré si queue vaut
###      log ou loglev
###############################################################################
proc display_output {queue method target text} {
variable monochrome
variable max_line_length
if {
($monochrome)
|| ((![::tcl::string::first "#" $target])
&& ([::tcl::string::match *c* [lindex [split [getchanmode $target]] 0]]))
|| (($queue eq "dcc")
&& (![matchattr [idx2hand $target] h]))
} then {
regsub -all "\017" [stripcodes abcgru $text] "" text
}
switch -- $queue {
help - quick - now - serv {
foreach line [split_line $text $max_line_length] {
put$queue "$method $target :$line"
}
}
dcc {
foreach line [split_line $text $max_line_length] {
putdcc $target $line
}
}
loglev {
foreach line [split_line $text $max_line_length] {
putloglev o * $line
}
}
log {
foreach line [split_line $text $max_line_length] {
putlog $line
}
}
}
}



Source : http://www.boulets.oqp.me/tcl/routines/t...-0013.html
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
  Répondre


Atteindre :


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