Can you please give an example of something where the change from system time to $ticks should be obvious? Since I didn't see anything change here, I'm guessing 'main timer' means something else besides '/timer'? Some of what I see so far is good, but not all.
//timerx1 $time($calc($ctime + 300)) 1 0 echo -a x1 $!asctime | /timerx2 1 300 echo -a x2 $!asctime | echo -a launched at $asctime
If I set the clock forward by 3 minutes immediately after launching these commands, the behavior is identical old-vs-new, which is good. 'x1' continues to trigger at the original HH:nn:00 clock time, and 'x2' triggers at a clock time that's a few seconds less than the extra 3 minutes, which might be caused by Windows itself.
If you instead set the clock forward by 1 hour, 'x2' continues to execute at a time that's based on the real-world interval of 300 seconds regardless of the change in clock time. However the 'x1' timer shifts its target time forward 23 hours until that same clock time the next day.
There may be timers that want to be executed once per day at a specific time, or there may be timers that want to to be executed only when the clock time is a specific HH:nn value, but right now there's only the 2nd alternative.
If this behavior is by design, a workaround might be to allow the -c switch to be relevant in the phase prior to a HH:nn timer reaching the HH:nn trigger time. I assume this helps people whose mIRC goes in/out of hibernate, or the internet clock synch changes the time by several minutes at an unfortunate time.