I'll remember to look at the code a little closer next time
You forgot to inc %i at the end of the loop, didnt need haltdef, halt, return, or break. you just need inc %i
Code:
alias amsg {
  if (%timestamp == 1) { timeset }
  var %i 1
  set %inptext $1-
  while (%i <= $chan(0)) { 
    .msg $chan(%i) %inptext
    if (%close == 1) { goto next }
    if ($me isop $chan(%i)) { goto op }
    if ($me isvo $chan(%i)) { goto vo }
    else { goto normal }
    :op
    echo $chan(%i) %tstmp $+  $+ %cbrackets $+ %right $+   $+ %opcolor $+ @ $+  $+ $me  $+ %cbrackets $+ %left $+  %inptext
    :vo
    echo $chan(%i) %tstmp $+  $+ %cbrackets $+ %right $+   $+ %voiccolor $+ + $+  $+ $me  $+ %cbrackets $+ %left $+  %inptext
    :normal
    echo $chan(%i) %tstmp $+  $+ %cbrackets $+ %right $+  $me  $+ %cbrackets $+ %left $+  %inptext
    :next
    if ($me isop $chan(%i)) { goto op1 }
    if ($me isvo $chan(%i)) { goto vo1 }
    else { goto normal1 }
    :op1
    echo $chan(%i) %tstmp $+  $+ %cbrackets $+ %right $+  $+  $+ %opcolor @ $+  $+ $me $+  $+ %cbrackets $+ %left $+  %inptext
    :vo1
    echo $chan(%i) %tstmp $+  $+ %cbrackets $+ %right $+  $+  $+ %voiccolor + $+  $+ $me $+  $+ %cbrackets $+ %left $+  %inptext
    :normal1
    echo $chan(%i) %tstmp $+  $+ %cbrackets $+ %right $+  $+ $me $+  $+ %cbrackets $+ %left $+  %inptext
    inc %i
  }
}