Bielie
Instead of:
if ($(,$+(%,flood,$nick))) { return }
set -eu3 $+(%,flood,$nick)
You could use /ignore for private messages with a time of like an hour or whatever. Also, all those messages to the offending $nick would be better combined into one message. That 3 second delay with all those messages and timers isn't really gonna stop it from flooding.