code:
"Delay1"+ChatWnds.length-1
This is not a valid string.
"Delay1" is a string and
ChatWnds.length is a number, so the plus operator (
+) joins them together as a new string object. The
-1 is supposed to subtract 1 from a number object, but as
"Delay1"+ChatWnds.length is a string, the result is you get a messed up timer ID.
Your original script was correct in putting brackets there:
code:
"Delay1"+[ChatWnds.length-1]
This way, the number is calculated first, then appended to
"Delay1". The reason why it probably didn't work was because of the end parentheses for the first
if statement.
Also, may I suggest naming your timers something like "Clip
xChat
x". Then a simple regular expression can be used to handle your timers:
code:
function OnEvent_Timer(TimerId) {
if(/^Clip(\d+)Chat(\d+)$/.test(TimerId)) {
var Clip = RegExp.$1;
var Chat = RegExp.$2;
aChatWnds[Chat].SendMessage("/vc 15");
if(Clip < 10) MsgPlus.AddTimer("Clip" + (Clip * 1 + 1) + "Chat" + Chat, 15200);
}
}
Of course, your method is still valid.