cptpeaceandlove
Messages postés21Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention25 avril 2005
-
7 août 2003 à 14:44
cptpeaceandlove
Messages postés21Date d'inscriptionlundi 3 mars 2003StatutMembreDernière intervention25 avril 2005
-
7 août 2003 à 22:26
Je veux creer un compte a rebours :
La variable %carb est le temps du compte a rebours en secondes
Quand le script commence on defini la variable %time par la date actuelle
Ensuite je veux effectuer une action (comme envoyer un msg sur un chan) lorsque le compte a rebours est terminé voila a quoi ressemble mon script:
on 1:TEXT:*!carb*:#:{
;si le mot !carb est prononcé sur un chan alors :
/set %time $asctime(d/m/yy H:n:s)
;on defini la variable %time avec la date d'aujourd'hui
/msg $chan le compte a rebours a commencé
}
Ensuite :
$ctime(%time) retourne le temps ecoulé entre le moment ou le compte a rebours a commencé et le moment present
Donc $calc(%carb-$ctime(%time) soustrait le nombre de seconde que dois durer le compte a rebours et combien de seconde se sont ecoulé a partir du moment ou le compte a rebours a commencé ce qui nous donne le nombre de seconde restante.
Voici le probleme :
if ($calc(%carb-$ctime(%time)) == 0) /msg $chan compte a rebours terminé
;si le compte a rebours est terminé le dire sur $chan
cependant la fonction "if" ne marche pas car elle n'est executer qu'une fois il faudrait creer une boucle pour la reexecuter jusqu'a que ($calc(%carb-$ctime(%time)) == 0
j'ai pensé a :
on 1:TEXT:*!carb*:#:{
/set %time $asctime(d/m/yy H:n:s)
/msg $chan le compte a rebours a commencé
:re
if ($calc(%carb-$ctime(%time)) == 0) goto re
else /msg $chan Le compte a rebours est terminé
}
Mais sa ne marche pas !
si qqn connaitrai pourrait m'aider je le remerci d'avance
Thx +++
cs_PiZZaMaN
Messages postés52Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention10 novembre 2003 7 août 2003 à 18:52
Bon j'ai lu ton truc en 2sec et je pense que tu te compliques la vie. Bon alors je recommence pr toi (je ne pense pas que ce que je vais faire marche, mais ça t'aidera peut etre):
on 1:TEXT:*!carb*:#:{
;bon ensuite le pb c de savoir combien de tps tu vas faire ton compte a rebours, on dira que c 15sec donc:
set %temps 15
/msg $chan le compte a rebours a commencé
while (%temps >= 0) {
il reste %temps secondes avant la fin du compte a rebours
;juste au cas ou tu veuilles le mettre, mais ça te ferait flooder...
dec %temps
}
if (%temps == 0) { msg $chan le compte a rebours est terminé)
}
J'ai essayé ac un while mais je pense que l'expression est fausse et je viens de m'en rendre compte. J'ai pas envie de tout refaire mais j'espere que le /dec pr enlever 1 a la variable te donnera une bonne idée pour trouver la solution =)
cs_PiZZaMaN
Messages postés52Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention10 novembre 2003 7 août 2003 à 18:54
j'aurais du utiliser /var au lieu de /set mais bon... En + je t'avoue que j'ai meme pas envie de relire mon code pour voir si j'ai fait d'autres erreures :/
cs_PiZZaMaN
Messages postés52Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention10 novembre 2003 7 août 2003 à 19:15
Effectivement j'etais loin de mon idée de depart et je suis parti en "sucette" (pour rester poli)
Le truc aurait été de mettre un timer qui decremente 1 toutes les secondes. Excuse moi encore pour l'immense connerie ci-dessus et le commentaire qui suit :/ Je te refais ça:
on *:TEXT:!carb*:#:{
;On laisse donc le compte a rebours a 15 mais je doute pas que tu trouveras une solution pr changer ça (je sais pas ça sert donc bon...)
msg $chan le compte a rebours commence
set %temps 10
timercompte 1 %temps { $if(%temps == 0) { msg $chan le compte a rebours est terminé } | else dec %temps }
}
J'ai testé cette fois et ça marche (si c'est pas ça que tu voulais je m'en voudrais de m'etre donné tant de mal :()