条件式が真になるまでウェイトするマクロ
概要
exp属性で指定した条件式が真(=true)になるまでウェイト(しているように見せる)マクロです。
javascriptの非同期処理の終了を待ってシナリオを進める、といった使い方ができます。
!!!注意!!!
このマクロを記述した時点でゲームは停止(というか無限ループ)します。
かならずこのマクロを記述する前に条件式が真になるイベントを定義する必要があります。
コード
code:sample.ks
macro name="wait_cond"
*wait_cond_loop
iscript
tf.wait_cond_exp = "tf.wait_cond_is_wait = " + mp.exp
endscript
eval exp="&tf.wait_cond_exp"
iscript
endscript
if exp="tf.wait_cond_is_wait != true"
iscript
tyrano.plugin.kag.popStack("if")
endscript
jump target="*wait_cond_loop"
endif
endmacro
指定可能属性:
exp:javascriptの条件式を指定します。この式が真になったタイミングでウェイト処理が終了します。
使用例
code:test.ks
;先に変数に値をセットする処理を記述
iscript
f.test = 0
setTimeOut(function(){
//5秒後に変数に1をセット
f.test = 1
}, 5000)
endscript
ウェイトが始まります。
;f.testが1ならウェイト終了
wait_cond exp="f.test == 1"
5秒後に表示されます。l
上記の例だと[wait]タグの動作と変わりませんが、jQueryの.on()メソッドでイベントを登録する処理と組み合わせるといろいろ面白いことができるんじゃないかなと思います。(というかそのために作った)
#ティラノスクリプト
#プラグイン