ID:141807
 
Code:
      A()
set hidden = 1
if(usr.inattack)
return
else
usr.Battle("[src.a]")
usr.inattack = 1
sleep(10)
usr.inattack = 0


Problem description:
Even though everytime an attack is used, and there's a timeout, it still spams.
Does the Battle() proc return almost instantly? Personally, I prefer to pass things like timeouts to a proc all their own.

mob/proc/Timeout(delay=10)
inattack = 1
sleep(delay)
inattack = 0

mob/proc/attack()
if(inattack) return
spawn() Timeout()
Battle()
You could be abusing usr.
In response to Kaiochao
It appears that the attack is working, though, leaving that out of the question.