A kulcs az, hogy minden gyertya első tickjében fusson le a programod.
Ezt többféleképpen el lehet érni, pl. a Bars (gyertyák száma) változását figyelve vagy az aktuális szerver idő figyelésével:
if (Bars != Bars.Prev) {
// Funkciók
Bars.Prev = Bars;
}
if (TimeCurrent() >= NextRun) {
// Funkciók
NextRun = Time[0] + Period() * 60;
}
Az első esetben azt használjuk ki, hogy a gyertyák száma csak akkor növekszik ha egy új gyertya elkezdődött.
A második esetben pedig azt, hogy tudjuk: a beérkező ticknél a gyertyák periodikus időbeli indulásához igazítjuk a legközelebbi futást.