you had
Code:
menu status,menubar {
Test It
.Do Testit: {
set %x 1
while ( %x <= 2) ) {
TIMER -m 0 3000 /msg AcertainNick %x
inc %x
}
}


you have while ( %x <= 2) ) <-- one extra )

you have TIMER -m 0 3000 /msg AcertainNick %x

the -m means the 3000 is miliseconds, have to ask why use the -m with 3000 as it is the same as not using the -m with 3

the reason it flooded is you have 0 for the repeat time, which is a repeat forever setting in a timer

also you didnt name the timer and while that isnt wrong it might be better to name it

lastly it was missing the closing }

see my test
Code:
menu status,menubar {
  Test It
  .Do Testit: {
    set %x 1
    while ( %x &lt;= 2) {
      TIMERmsg $+ %x 1 3 /msg $me %x
      inc %x
    }
  }
}