lrange
#1
Bonjour,

Je rencontre un petit soucis que j'avais jamais avant !

Lorsque je tappe la commande
Code :
.v nick1 nick2 nick3


Normalement le robot doit dire :
[04:29:11] <nickdubot> Bravo nick1 nick2 nick3, tu anime beaucoup la salle, tu es donc maintenant V.I.P ! Smile

et il doit normalement voice les 3 nicks...

MAIS il ne le fais pas et dit ceci :
[04:28:59] <nickdubot> Bravo {nick1 nick2 nick3}, tu anime beaucoup la salle, tu es donc maintenant V.I.P ! Smile

Je cherche à retiré le { & } qui empeche le bot de voicer !

Voici le tcl :
tcl
bind pub - .v pub:v
proc pub:v {nick uhost handle chan args} {
set modos "#modos"
set arg [lrange $args 0 end]
if {[onchan $nick $modos]} {
putquick "PRIVMSG $chan :Bravo $arg, tu anime beaucoup la salle, tu es donc maintenant V.I.P ! :-)"
putquick "reza voice $chan $arg"
}
}


Répondre Avertir
#2
Je ne sais pas "qui" est reza, ni donc sa syntaxe, mais une chose est sure:
tcl
set arg [lrange $args 0  end]


Donc tu pars du principe que $args est une liste, et tu en sort une sous-liste (identique d'ailleurs). Donc quand tu l'utilises en tant que chaine, elle est forcément protégée.
Essayes plutôt:
tcl
set arg [join [lrange $args 0  end]]


Répondre
#3
ARGL
C'est TOUJOURS le problème de ARGS !

... et tant que j'y suis, je dirais que faire un lrange 0 => end ne sert à rien, ca retourne la même chose.

En définitive :
tcl
bind pub - .v pub:v
proc pub:v {nick uhost handle chan text} {
set modos "#modos"
if {[onchan $nick $modos]} {
putquick "PRIVMSG $chan :Bravo $text, tu anime beaucoup la salle, tu es donc maintenant V.I.P ! :-)"
putquick "reza voice $chan $text"
}
}


Répondre Avertir


Atteindre :


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