problème très stupide
#1
bonsoir tout le monde bon voilà je vais faire très cours cela fait un moment que je n'es plus utilise les utimer sous tcl et voila mon petit souci
je voudrais simplement que le bind reponde a la une commande comme suite
tcl
bind pub - !test test_utimer
 
proc test_utimer {
# pour principe on récupère le nick de la personne souhaiter
set n [lindex $arg 0]
# lancement du msg
putserv "privmsg #aide : $n un test apres 10secondes"
# le utimer
utimer 10 test_utimer; 
}



voila en gros je voudrais que le tcl une fois la commande tape envoie le msg a la personne 10secondes après donc mais je sais pas je dois avoir oublier un gros détail la car cela ne fonctionne pas ^^'
merci a vous
Répondre Avertir
#2
bonjour,

peut etre un truc dans ce genre là:

tcl
set SalonAide "#aide"
 
bind pub - !test test_utimer
proc test_utimer { nick host hand chan arg } {
global botnick 
if {$arg != ""} {
utimer 10 [list TimerMsg $chan $nick]
return 0
}
}
 
proc TimerMsg {chan nick} {
if {![botisop $chan]} { return 0 }
if {[onchan $nick $chan] && ![isvoice $nick $chan] && ![isop $nick $chan]} {
putserv "privmsg $::SalonAide : $nick ceci est  un test après 10secondes"
}
return 0
}



Ceci n'est qu'un Exemple donc à Testé


Cordialement
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.[/font]
Répondre Avertir
#3
Le problème a été résolu sur #eggdrop, mais merci de ta participation fedora Smile
Répondre
#4
merci fedora pour ton aide, apres avoir test vos deux code différent selon les idées,
CrazyCat effectivement rien a dir sur tes codes comme d'habitude sauf que on a oublie la fonction pour ajouter un mot ou un nick dans la commande et la encore ce matin je trouve pas après avoir retourne sa dans tout les sens, fedora merci pour ton code également je viens de tester seul souci aucune réaction de la part du bot ni sur channel ni dans la pl :s mais je garde sa sous le coude merci.


Après avoir remodelé un peux a la bourrin une procédure de CrazyCat
je suis arrive a la chose suivante mais très suspecte donc voici le code

tcl
bind pub - !pwet pwet:pub
 
proc pwet:pub {nick uhost hand chan arg } { 
set n [lindex $arg 0]
utimer 5 { putserv "privmsg #staff :hum on test la var $n" }
return 0
}



Donc voici le code quand je tape donc la commande
!pwet exemple en pl le bot me répond ceci

Citation :<RaMSeS> [12:58] Tcl error in script for 'timer7':
<RaMSeS> [12:58] can't read "n": no such variable

on dirais qui vire sa propre variable avant de l'utiliser :s une idée svp ?
Répondre Avertir
#5
reprend mon système de utimer j'pense que sa devrais l'faire Smile
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.[/font]
Répondre Avertir
#6
j'ai test ton code fedora mais aucune reaction du bot ni sur le chan ni en party line :/
Répondre Avertir
#7
j'ai tester le code et il fonctionne
Citation :|17:49:05| fedora: !test
|17:49:17| @bOten: fedora ceci est un test après 10secondes

tcl
set SalonAide "#aide"
 
bind pub - !test test_utimer
proc test_utimer { nick host hand chan arg } {
global botnick
if {$arg == ""} {
utimer 10 [list TimerMsg $chan $nick]
return 0
}
}
 
proc TimerMsg {chan nick} {
if {![botisop $chan]} { return 0 }
if {[onchan $nick $chan] && ![isvoice $nick $chan] && ![isop $nick $chan]} {
putserv "privmsg $::SalonAide : $nick ceci est  un test après 10secondes"
}
return 0
}




en faite j'ai juste modifier

tcl
if {$arg != ""} {



par
tcl
if {$arg == ""} {



n'oublie pas de rehash ou restart ton bot Smile

cordialement
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.[/font]
Répondre Avertir
#8
okay effectivement comment sa il fonctionne direct, mon seul dernier gros souci est pour ajouter un "mot" a la suite du bind je m'explique exemple on tape !test 123
le bot lui répond toujours 10secondes après : ceci est un test après 10secondes > 123
en faite je ne vois pas du tout comment arrive a le faire la car si je rajoute une demande de set var la variable auras bien été set mais je ne pourrais pas la récupère sur la procédure suivante la TimerMsg car si exemple j'ajoute
tcl
set mot [lindex $arg 0]


je ne pourrais reprendre la var dite "mot" donc voila mon souci ^^'
Répondre Avertir
#9
tcl
set SalonAide "#aide"
 
bind pub - !test test_utimer
proc test_utimer { nick host hand chan arg } {
global botnick
if {$arg == ""} {
utimer 10 [list TimerMsg $chan $nick]
}
 if {$arg != ""} {
 utimer 10 [list TimeMsg $chan $arg]
return 0
   }
 }
proc TimerMsg {chan nick} {
if {![botisop $chan]} { return 0 }
if {[onchan $nick $chan] && ![isvoice $nick $chan] && ![isop $nick $chan]} {
putserv "privmsg $::SalonAide : $nick ceci est  un test après 10secondes"
}
return 0
}
 
proc TimeMsg {chan arg} {
if {![botisop $chan]} { return 0 } 
putserv "privmsg $::SalonAide : ceci est  un test après 10 secondes $arg"
return 0
}



ce qui te donne ceci :

Citation :|19:46:58| fedora: !test
|19:47:08| @bOten: fedora ceci est un test après 10secondes
|19:47:12| fedora: !test 123
|19:47:24| @bOten: ceci est un test après 10 secondes 123
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.[/font]
Répondre Avertir
#10
superbe \0/ merci beaucoup a vous deux.
fedora ton code rox tout simplement merci Smile
Répondre Avertir
#11
bah écoute ravie que cela te convienne (je suis comme toi débutant en TCL et j'apprends par le via de ce forum), je sais pas si il "rox" car il est optimisable. j'ai fait sa vite fait.fin bon le principal c'est que sa te convienne.

cordialement
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.[/font]
Répondre Avertir


Atteindre :


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