Ah, I see what you were doing. The FOR loop creates its own counter variable. (If a variable of that name is already defined, the FOR loop will create a duplicate variable.) If you want to use your player-specific variable that already exists, I would use a REPEAT loop like so:
' define your variables somewhere
set string <array[1]; woop>
set string <array[2]; poow>
set numeric <index[userid];1>
' your loop
repeat until ( %index[userid]% = 3 ) {
set numeric <i;%index[userid]%>
msg <#array[i]#>
inc <index[userid]>
}
You can also put in some code (to test the array length) so you don't have an underrun error or if you want the code to be more dynamic.