More precisely: if you have more than one definition of some event (like "on connect") in the same scriptfile, only the
first matching event definition will fire.
Example:
on *:text:*test*:#: { echo -a found "test" }
on *:text:*hello*:#: { echo -a found "hello" }
If now someone says "this is a test", the first event will fire.
If someone says "hello", the second event will fire.
But ONLY the first event will fire if someone says "hello this is a test".
Also note that the command of a timer will evaluate.
If you use for example "$me" in the command-part of your timer, it will be evaluated to your nickname at the moment the timer
starts (i.e.: on connect). After a nickchange, it thus will keep ctcp-ing your old nickname.
If you put "$!me" instead, "$!me" will be evaluated to "$me" at the moment the timer starts. This "$me" in turn will be evaluated to your actual nickname every time the timer
fires:
on *:CONNECT:{
.timer 0 30 .ctcp $!me ping
.timer 0 30 msg #channel testtest
}
The channel name and the "message" in the command of the second timer will evaluate as well. That's no problem with the given example, but it may be a problem in situations like:
.timer 3 5 msg #$-winners I just won $10 !
And you can solve this with e.g.:
.timer 3 5 msg # $+ $!-winners I just won $!10 !