Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Script : Boucle de X phrases espacées par Y secondes
#1
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.

Merci de votre aide.
#2
Voici la syntaxe de bind time :

tcl
Syntaxe: bind time <flags> <mask> <proc>
Procédure: proc-name <minute> <hour> <day> <month> <year>
Module: core


La théorie, c'est bien, mais la pratique, c'est mieux :P


tcl
bind time - "?0 * * * *" time:phrase_1
bind time - "?5 * * * *" time:phrase_2
 
proc time:phrase_1 {min hour day month year} {
   puthelp "PRIVMSG #Salon :Ton message 1"
   return 0
}
 
proc time:phrase_2 {min hour day month year} {
   puthelp "PRIVMSG #Salon :Ton message 2"
   return 0
}


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
proc time: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 ;)


PS : Bienvenue sur le forum ;)
#3
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 minutes
set freq 7
 
# la fonction d'affichage
proc 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)
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#4
CrazyCat Wrote: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 minutes
set 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 ...


PS : Trop de PHP tue le PHP :P
#5
Oups :) post corrigé :D
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#6
Merci beaucoup, j'essaye ça :)


Possibly Related Threads…
Thread Author Replies Views Last Post
  Problème de phrases dans un fichier ReT 3 4,351 25/01/2012, 03:27
Last Post: ReT
  bannir des phrases bewess 6 5,306 30/11/2009, 22:53
Last Post: cestlemien

Forum Jump:


Users browsing this thread: 1 Guest(s)