Im not sure if it was clear so I will do my best to make it clear.
To start with it doesn't add someone to the ignore list. That's not what he meant by "ignore".
Someone messages !start in the room.
You have an on text event to act on this message.
on *:text:!start:#:{
msg $chan It has started $nick
}
Now if I don't want them to flood my script out by typing !start a bunch of times I count how many times they say !start. Best way to do this is with the /inc command. (Genius showed you a method using inc in a hash table, /hinc. I will use a variable as it tends to be easier for beginners to grasp.)
/inc %flood. [ $+ [ $nick ] ]
The first time they say !start, this variable is set to 1 and named after them. The /inc command adds 1 everytime it is run.
Travis: !start
%flood.Travis == 1
Travis: !start
%flood.Travis == 2
But if someone says !start once, then an hour later they say !start we don't want it counted. What we do is set a timed variable which unsets itself after a number of seconds.
/inc -u5 %flood. [ $+ [ $nick ] ]
This unsets after 5 seconds.
Ok, so the last and most important step is recognizing a flood. Simply put, it adds 1 everytime they say !start. If they say !start 5 times before the variable gets unset, the variable == 5. So you say, if the variable is greater than or equal to 5, halt (or return).
if (%flood. [ $+ [ $nick ] ] >= 5) { return }
This is how you stop someone from flooding your text response. Now lets put it all together.
on *:text:!start:#:{
if (%flood. [ $+ [ $nick ] ] >= 5) { return }
msg $chan Hi $nick $+ ! Game is now started!
inc -u5 %flood. [ $+ [ $nick ] ]
}