既存のタグを JavaScript から実行する方法は探せば見つかるのですが、マクロを実行する方法は見つからなかったので、自分で調べた方法を書き残しておきます。
コード
[macro name="macro_test"] マクロが呼ばれました。 [endmacro] [iscript] let macro = TYRANO.kag.stat.map_macro["macro_test"] TYRANO.kag.ftag.nextOrderWithIndex(macro.index, macro.storage) [endscript]
実行結果
TYRANO.kag.stat.map_macro
にマクロが一式入っているので、その中から実行したいマクロを探して、そのデータを nextOrderWithIndex に渡しています。
引数を渡す場合
以下のように書くことで、引数も渡せます。
コード
[macro name="macro_test"] [font color="&mp.color"] マクロが呼ばれました。 [resetfont] [endmacro] [iscript] let macro = TYRANO.kag.stat.map_macro["macro_test"] TYRANO.kag.stat.mp = { color: "0xff00ff" } TYRANO.kag.ftag.nextOrderWithIndex(macro.index, macro.storage) [endscript]
実行結果
注意
直接 nextOrderWithIndex を実行しているので、内部的にはイレギュラーな処理になっています。もしかしたらどこかでエラーが起こるかも……。新しい情報が見つかったら、この記事もアップデートしたいと思います。