With your current timer (using a name), each loop, it will overwrite the last timer so it would end up sending just 1 slap.
You can simply remove the name & have mIRC name the timer with a number.
OR still use a name but make it unique for each. ( i.e. $+(timer,$chan,$nick) or $+(timer,$chan,%x) )