Annoying, goofy, but creative. 6/10, I agree. But, how about this:
alias rickroll {
var %1 = $1, %t = We're no strangers to love|You know the rules and so do I|A full commitment's what I'm thinking of|You wouldn't get this from any other guy|I just wanna tell you how I'm feeling|Gotta make you understand|Never gonna give you up|Never gonna let you down|Never gonna run around and desert you|Never gonna make you cry|Never gonna say goodbye|Never gonna tell a lie and hurt you|We've know each other for so long|Your heart's been aching|But you're too shy to say it|Inside we both know what's been going on|We know the game and we're gonna play it|And if you ask me how I'm feeling|Don't tell me you're too blind to see|Never gonna give you up|Never gonna say goodbye|Never gonna tell a lie and hurt you|Give you up; give you up|Give you up; give you up|Never gonna give;|Never gonna give; give you up|Never gonna give;|Never gonna give; give you up|I just wanna tell you how I'm feeling|Gotta make you understand, %m = $gettok(%t,0,124), %i = 1
while (%i <= %m) {
if ((%i >= 21) && (%i <= 23)) goto end
.timer $+ %i 1 %i .msg %1 $gettok(%t,%i,124)
:end
inc %i
}
}
Will be more parser-friendly, as well as saving you .5kbytes. Have fun!