Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Yoyo
02/05/2008, 15:18
Le sujet a surement déjà été abordé mais je n'ai jamais trouvé de solution valable et vu que je débute je comprend pas tout ...
En fait j'aimerai faire un truc que je pense tout simple, faire des annonces sur le channel IRC en public.
Par exemple : Phrase1 - 5mins - Phrase2 - 5mins - Phrase3 - 5mins - Phrase1 etc ...
J'ai trouvé un script qui pourrai le faire mais les phrases arrivent aléatoirement et ça m'embête. Je ne pense pouvoir le faire avec BindTime mais j'ai pas vraiment comprit le truc.
La théorie, c'est bien, mais la pratique, c'est mieux
tcl
bind time - "?0 * * * *"time:phrase_1
bind time - "?5 * * * *"time:phrase_2
proctime:phrase_1 {min hour day month year}{
puthelp "PRIVMSG #Salon :Ton message 1"return0}proctime:phrase_2 {min hour day month year}{
puthelp "PRIVMSG #Salon :Ton message 2"return0}
Ce code envoie toute les 5 minutes un message sur #Salon.
Là, ce n'est pas tout à fait ce que tu veux, c'est fait ex prêt (ça serait trop facile si non).
Pour faire ce que tu veux, tu as plusieurs solutions, j'en voie deux au moments ou j'écris ce message :
Les deux consistent à lancer la même procédure toute les 5 minutes, donc :
tcl
bind time - "?0 * * * *"time:phrase
bind time - "?5 * * * *"time:phrase
Donc ta procédure ressemblerai a quelque chose comme ça :
tcl
proctime:phrase_1 {min hour day month year}{
# Instructions}
A la place de #Instructions, tu aurais deux éventuels système :
- Soit tu génères aléatoirement la phrase que tu veux dires (qui serait contenue dans une variable)
- Soit tu définis un ordre de suite de message, auquel cas il te faut enregistrer le message dit "précédemment" dans une variable (tout en prenant en compte de l'initialisation du robot).
Tu as beaucoup de solutions comme je l'ai dis, je te dis bon courage, et n'hésites pas à utiliser le forum si tu as besoin d'aide
Alors là je dis attention: ce qui est donné par Dav34 se base sur l'horloge de la machine, ce n'est pas un déclenchement toutes les X minutes.
Pour un écart "rond" tel que 2, 5 ou 10 minutes (par exemple) cela peut fonctionner, mais je pense que la meilleur méthode est d'utiliser des timers.
Cela donnerait (grosso-modo):
tcl
#fréquence en minutesset freq 7
# la fonction d'affichageproc message {}{
puthelp "PRIVMSG #canal :ceci est un message"list[utimer $::freq message]}
message
La fonction message est appelée au chargement de l'eggdrop et s'appelle seule toutes les 7 minutes (défini par $::freq)
CrazyCat a écrit :Alors là je dis attention: ce qui est donné par Dav34 se base sur l'horloge de la machine, ce n'est pas un déclenchement toutes les X minutes.
Pour un écart "rond" tel que 2, 5 ou 10 minutes (par exemple) cela peut fonctionner, mais je pense que la meilleur méthode est d'utiliser des timers.
Cela donnerait (grosso-modo):
tcl
#fréquence en minutesset freq 7
# la fonction d'affichage
function message {}{
puthelp "PRIVMSG #canal :ceci est un message"list[utimer $::freq message]}
message
La fonction message est appelée au chargement de l'eggdrop et s'appelle seule toutes les 7 minutes (défini par $::freq)
Plutôt :
tcl
proc message {}{
...
}
Non ?
Bonne idée aussi mais après, il faut savoir gérer les timers, utimers ...