cs_ScriptingBen
Messages postés57Date d'inscriptionsamedi 13 septembre 2008StatutMembreDernière intervention 2 juin 2010
-
20 sept. 2009 à 14:10
cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 2009
-
22 sept. 2009 à 21:20
Bonjour,
Je suis une développeur et je n'arrive à trouver sur aucun site, l'équivalent de $1, $2, $3,etc.. (deuxième,trois[...] mot ou caractère d'une phrase) en TCL.
Si quelqu'un pourrait m'aider se serait super, merci d'avance.
cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 20092 20 sept. 2009 à 20:50
Hello,
Admettons que tu ais une phrase "bonjour je suis ScriptingBen".
Tu cherches le $1, $2, $3 et $4.
Il faut considérer la phrase comme une liste (en tcl) et lire (grâce à lindex) le nème élément.
Si tu veux avoir le $1, tu utilises donc :
[lindex "bonjour je suis ScriptingBen" 0]
Ça va te retourner bonjour
Pour le $2,
[lindex "bonjour je suis ScriptingBen" 1]
Ça va te retourner je
Etc...
Tu as pu voir que la liste commence à 0, contrairement au mIRC qui comment à $1.
cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 20092 22 sept. 2009 à 17:44
Si c'est déclenché par l'évènement "pub" (donc sur un salon), il faut récupérer la variable text ou arg.
Par exemple, si tu veux que ton bot réagisse à la commande !pouet, il te faudra ce code :
bind pub - !pouet procdetacommande
proc procdetacommande { nick hand host channel arg } {
putspeed "PRIVMSG $channel :$arg"
}
Donc ici, $arg retourne tout ce qu'il y a après !pouet
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 20 sept. 2009 à 16:30
Les fonctions tcl ne marchent pas de la même façon qu'en scripting mirc (à ma connaissance). Tu n'as qu'à regarder les exemples ici : http://www.csadmin.net/aidetcl.php
cs_ScriptingBen
Messages postés57Date d'inscriptionsamedi 13 septembre 2008StatutMembreDernière intervention 2 juin 2010 22 sept. 2009 à 17:27
J'ai encore une question, donc le problème de rechercher un mot j'ai comprit mais maintenant ce que j'aimerais c'est qu'il prenne par exemple le deuxième mot, c'est à dire, le mot juste après la !commande qui serait un pseudo donc il me manque une variable pour définir le texte entré par la personne qui fait la commande.
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 22 sept. 2009 à 17:49
@Kindermaxi: donc en fait, je me plantais dans ce que j'ai dit, tu peux confirmer ? La partie "données" du message est toujours gérée par une seule variable (nommée arg dans nos exemples), c'est ça ?
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 22 sept. 2009 à 20:32
Salut,
Pour ta deuxième question (du style $2-) c'est [lrange $var 1 end] , tu peux donc récupérer des groupes de tokens (ex: [lrange $var 3 7]).
Ca fait un bon moment que je ne touche plus au TCL, mais d'après mes souvenirs, j'aurais tendance à dire que la méthode de kindermaxi n'est pas bonne.
Binder plusieurs commandes une par une, c'est peut-être plus simple, mais pas top niveau optimisation. Pour ma part, je bindais le '!' et je switchais pour récupérer les commandes dans la proc associée.
putspeed existe depuis lontemps ? Je connaissais uniquement putquick, putserv et puthelp.