$read et timer [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
24 janvier 2011
-
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
-
Bonjour, je cherche pour un bot à faire dire un message au hasard toutes les 10 minutes par exemple
Je pensais à juste associé $read et un timer, et j'ai testé sur un exemple qui ne correspond pas à ce que je veux exactement, mais pour voir si ca marche:

on *:input:*: {
  if ( $1 == !read ) {
    .timerbot 10 2 msg $chan $read(bot.txt)
  }
}

Le même message est répété toutes les 2 secondes  et l'aide de mirc ne m'apprend rien de plus sur ce résultat inattendu. (le timer seul fonctionne, $read seul donne bien un message différent à chaque évaluation, mais ca ne marche pas si on utilise les 2 en même temps)
Vous pouvez m'expliquer ?

7 réponses

Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
/timer est une command qui permet de donner une autre command, cad que tout ce qui est passe en parametre est evalue deux fois.

.timerbot 10 2 msg $chan $read(bot.txt)

en fait ici, le fait de faire /timer evalue le $read et le $chan ensuite mirc retient qu'il faut faire le /msg sur le $chan qui a deja ete evalue en le nom du salon (ca, tu t'en fou) en revanche il a egalement deja evalue le $read, il n'est pas evalue au moment du /msg, ce qui fait que c'est tjs le meme message pour lui, tu peux le verifie en faisant /timers, tu verra que les parametres de ton timer ne sont pas /msg $chan $read() mais /msg #salon valeur_du_read :)
La solution est simplement d'evalue une fois en moins les parametres qui doivent pas etre evalue par timer mais par la command associe :

.timerbot 10 2 msg $chan $!read(bot.txt)

$!ident retourne l'$ident evalue une fois en moins
Messages postés
9
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
24 janvier 2011

merci pour cette réponse parfaitement satisfaisante wims :-)
Messages postés
26
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
28 août 2009

salut je suis un debutant scripteur , mais comment on fait dire des phrases en multiligne avec un timer cest a dire tout les 5 seconde dire une phrase par ligne
cest pas pour un bot et ni un fun bot, pour mon scripte perso,tu comprend cest moi meme qui declenche les parole tu peut m'aidee merci

et bonne continuation a toi wims de donne un coups de main sur les forums
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
//.timertest 10 5 msg #salon phrase
va lancé un timer nommé test, qui va envoyé le message sur le salon 10 fois, toute les 5 secondes
Messages postés
26
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
28 août 2009

merci cool pour ton aide tes un genie wins, bon je voit que j'ai avance un peut en scripting, aux faite si g besoin d'un tit coups de main sa te derangerais pas si je te le demande ici sur le forum l'amis lol
Messages postés
26
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
28 août 2009

jai fait:
 /dire { O OO
  //.timer 01 2 #chan bla bla bla
mais au bout du vingtieme ligne sa marche plus
peut  tu m'aidee wims stp merci  je veut mettre aux moin 100 ligne par seconde de phrase
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Là ce que tu demandes amènera a floodé, et comme floodé c'est mal, je vais pas t'aider plus que ça ;)

De toute façon le code que tu montres là c'est un peu du nimporte quoi.
Et tu n'arrivera jamais a envoyé 100 message en une seconde mdr, renseigne toi sur le principe de l'IRC, du lag, du flood etc...