JavaScript からマクロを実行する

既存のタグを 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]

実行結果

f:id:Gigacee:20200202173741p:plain

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]

実行結果

f:id:Gigacee:20200202175002p:plain

注意

直接 nextOrderWithIndex を実行しているので、内部的にはイレギュラーな処理になっています。もしかしたらどこかでエラーが起こるかも……。新しい情報が見つかったら、この記事もアップデートしたいと思います。

The coloring of this site is Dracula PRO🧛🏻‍♂️
This website uses the FontAwesome icons licensed under CC BY 4.0.

2020 GIGA CREATION