Chargement du contenu...
Timer
Un timer countdown asynchrone avec pause / play / restart / forceEnd et un callback de fin.
Un timer countdown asynchrone avec pause / play / restart / forceEnd et un callback de fin.
lib.timer(time, onEnd?, async?) crée et démarre un compte à rebours de time ms et renvoie un
handle Timer. Avec async = false (défaut) l'appel bloque jusqu'à la fin du timer ; avec
async = true il retourne immédiatement.
local cooldown = lib.timer(5000, function()
lib.print.info('Cooldown terminé')
end, true)| Méthode | Retour | Description |
|---|---|---|
pause() | — | Fige le temps restant. |
play() | — | Relance un timer en pause. |
isPaused() | boolean | S'il est en pause. |
getTimeLeft(format?) | number / { ms, s, m, h } | Temps restant ; une unité ('ms'/'s'/'m'/'h') renvoie un nombre, sans argument renvoie toutes les unités. |
forceEnd(triggerOnEnd?) | — | Termine maintenant ; onEnd se déclenche sauf si tu passes false. |
restart(async?) | — | Réinitialise au time initial et relance. |
pause()play()isPaused()booleangetTimeLeft(format?)number / { ms, s, m, h }'ms'/'s'/'m'/'h') renvoie un nombre, sans argument renvoie toutes les unités.forceEnd(triggerOnEnd?)onEnd se déclenche sauf si tu passes false.restart(async?)time initial et relance.cooldown.pause()
Wait(2000)
cooldown.play()
local left = cooldown.getTimeLeft('s')
cooldown.forceEnd(false) -- termine maintenant, skip onEndUn timer non-async bloque sa coroutine — appelle-le dans un CreateThread ou passe async = true. Résolution à la frame (~16 ms) : ne l'utilise pas pour des délais de ~50 ms (utilise Wait). Pour annuler définitivement, forceEnd(false) et ne le restart pas.