It looks like you're new here. If you want to get involved, click one of these buttons!
<<set $wav=".wav";i=2>> <<playsound "fall"+$i+$wav>>
handler: function (a, b, c, d) { var s = (d.fullArgs()); this.domacro(b,s); }domacro is the function that does the main job:
domacro: function(b, s) { if (s) { alert(s);//for debugging s=eval(Wikifier.parse(s)); //...et cetera...Trying:
<<playsound "fall2.wav">>s becomes "fall2.wav", all works.
<<playsound "fall"+$i+$wav>>s becomes state.history[0].variables.wav == null && (state.history[0].variables.wav = 0);state.history[0].variables.i == null && (state.history[0].variables.i = 0);"fall"+state.history[0].variables.i+state.history[0].variables.wav
<<loopsound "fall"+$i+$wav $times>>s becomes state.history[0].variables.times == null && (state.history[0].variables.times = 0);state.history[0].variables.wav == null && (state.history[0].variables.wav = 0);state.history[0].variables.i == null && (state.history[0].variables.i = 0);"fall"+state.history[0].variables.i+state.history[0].variables.wav state.history[0].variables.times
Comments
c.length will not do the job, as is case of an expression it returns its parts as different parameters: fall,+$i+$wav,$times
3
You can use open and close parenthesis to indicate that a parameter is an expression like so