Compte a rebours

cptpeaceandlove Messages postés 21 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 25 avril 2005 - 7 août 2003 à 14:44
cptpeaceandlove Messages postés 21 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 25 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 +++

6 réponses

cs_PiZZaMaN Messages postés 52 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 10 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 =)
0
cs_PiZZaMaN Messages postés 52 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 10 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 :/
0
cs_PiZZaMaN Messages postés 52 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 10 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 :()
0
cptpeaceandlove Messages postés 21 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 25 avril 2005
7 août 2003 à 22:23
all you need is love
stop the war
peace and freedom
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cptpeaceandlove Messages postés 21 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 25 avril 2005
7 août 2003 à 22:24
Thx pour ton post ;)
0
cptpeaceandlove Messages postés 21 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 25 avril 2005
7 août 2003 à 22:26
c super simpa de m'avoir repondu !
0
Rejoignez-nous