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
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
}
}