Compte a rebours

Signaler
Messages postés
21
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
25 avril 2005
-
Messages postés
21
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
25 avril 2005
-
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 +++

6 réponses

Messages postés
52
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
10 novembre 2003

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 =)
Messages postés
52
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
10 novembre 2003

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 :/
Messages postés
52
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
10 novembre 2003

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 :()
Messages postés
21
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
25 avril 2005

all you need is love
stop the war
peace and freedom
Messages postés
21
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
25 avril 2005

Thx pour ton post ;)
Messages postés
21
Date d'inscription
lundi 3 mars 2003
Statut
Membre
Dernière intervention
25 avril 2005

c super simpa de m'avoir repondu !