Communauté Eggdrop
set varName ?newValue? - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : set varName ?newValue? (/showthread.php?tid=171)



set varName ?newValue? - Garfield - 06/03/2008

Bonsoir,

Je voudrais réaliser un petit TCL qui, dans l'idéal :), pioche une question dans un fichier texte, jusque là tout va bien, toutes les Xh15mn
j'ai donc fait comme ceci :

Code :
bind time - "15 * * * *" actionquest bind pubm -|- * reponse # -> Sélection de l'énigme proc actionquest { min hour day month year } { global rep tps_rep set nbr_lignes [compte:lignes $::rpg(quest)] set num_hasard [expr int(rand()*$nbr_lignes)+(1&&$nbr_lignes)] set ligne [read:event $::rpg(quest) $num_hasard] set ligne_split [split $ligne "|"] set quest [lindex $ligne_split 0] set rep [lindex $ligne_split 1] putserv "PRIVMSG $::rpg(chan) :$quest" puthelp "PRIVMSG $::rpg(chan) :Vous disposez de 30 secondes pour répondre." set tps_rep "on" set utimer 30 endquest } # -> Fin du temps de réflexion proc endquest {nick host hand text} { global tps_rep set tps_rep "off" } # -> Verification réponse proc reponse { nick host hand chan arg text } { global rep tps_rep set zoom [lrange arg 0 end] if { $tps_rep == "off" } { puthelp "NOTICE $nick :Désolé mais le temsp impartit est écoulé" return 0 } if { $zoom != $rep } { return 0 } if { $zoom == $rep } { puthelp "PRIVMSG $::rpg(chan) : Bravo $nick !!" } }
le problème est que j'ai ça en PL :
Code :
Tcl error [actionquest]: wrong # args: should be "set varName ?newValue?"
et là je suis coincé, pouriez-vous m'aider svp ?
Merci !


RE: set varName ?newValue? - CrazyCat - 06/03/2008

Je ne vois pas ta procédure compte:ligne, il est possible qu'elle ne renvoit pas toujours une valeur.


RE: set varName ?newValue? - Garfield - 06/03/2008

J'utilise ceci pour lire et compter :
Code :
# -> Lecture proc read:event { fichier num_ligne } { if { ![file readable $fichier] } { return "\002\0034Erreur\003\002 : impossible de lire le fichier." } if { $num_ligne<=0 } { return "\002\0034Erreur\003\002 : numéro de ligne non valide" } set fHnd [open $fichier "r"] set counter 0 set ligne "" while { ![eof $fHnd] } { set foo [gets $fHnd] incr counter if { $counter == $num_ligne } { set ligne $foo break } } close $fHnd return $ligne } # -> Comptage du nombre de lignes proc compte:lignes { fichier } { if { ![file readable $fichier] } { return 0 } set fHnd [open $fichier "r"] set counter 0 while { ![eof $fHnd] } { gets $fHnd incr counter } close $fHnd return $counter }



RE: set varName ?newValue? - Garfield - 22/03/2008

Trouvé...heu...merci :)


RE: set varName ?newValue? - CrazyCat - 22/03/2008

Désolé, j'avais raté ta réponse précédente.
Donc oui, je présume que ton
tcl
set counter 0


était mal placé ;)


RE: set varName ?newValue? - Garfield - 23/03/2008

En effet oui :)