abort/ja

From RPTools Wiki
Revision as of 17:23, 14 March 2023 by Taustin (talk | contribs) (Text replacement - "source>" to "syntaxhighlight>")
Jump to navigation Jump to search

Languages:  English  • 日本語


abort() Function

Introduced in version 1.3b42
マクロの実行を条件付きで中止するために使用する。abort() の引数が 0 の場合、マクロの実行は停止し、すべてのマクロ出力は破棄される。abort() の引数が0以外の場合は、マクロの実行は継続される。

なお、マクロが中止されると、マクロの出力のみが破棄され、マクロに加えられた変更自体は取り消されない事に注意。

この関数の一般的な用途は以下の通り。

  • input() 関数で作成された入力ダイアログでキャンセルボタンがクリックされた場合にマクロを終了する。
  • マクロで生成されたすべての出力を破棄して、実質的に『無出力』マクロを作成する。
  • 特定の条件が満たされない場合、マクロを静かに終了させる。
マクロの終了時にエラーメッセージを表示したい場合は、 assert() 関数を参照。

Usage

<source lang="mtmacro" line> abort(abrt) </syntaxhighlight>

パラメーター

  • abrt - 0 if the abort function should abort the macro, nonzero if it should not.
  • abrt - 0 abort 関数がマクロを中止すべきである場合はゼロ、そうでない場合は非ゼロ。

Examples

次の例では、blah という変数にユーザーが値を入力するダイアログボックスを作成し、ユーザーがキャンセルをクリックすると res が 0 になり、abort() 関数によってマクロが終了し、そうでない場合は res が 0 にならないためマクロが継続する。

<source lang="mtmacro" line> [h: res = input("blah")] [h: abort(res)] </syntaxhighlight>

次の例では、マクロ内の出力をすべて破棄する。 <source lang="mtmacro" line> Hah! you will never see this! [abort(0)] </syntaxhighlight>

以下の行は、GM以外が実行してはならないマクロを保護するために使用できる。 <source lang="mtmacro" line> [h: abort(isGM())] </syntaxhighlight>

次の行は、Trusted Macro からしか実行できないマクロを静かに終了させるために使用できる。 <source lang="mtmacro" line> [h: abort(isTrusted())] </syntaxhighlight>

使用の注意

他のマクロ(例えば library token など)から呼び出されたマクロを中止する場合、実行中のマクロだけでなく、すべてのマクロが中止される。

1.5.0以降では、macro.catchAbort を使用してこの動作を変更することができる。

呼び出し側マクロ

<source lang="mtmacro" line> [MACRO("getAmmo@Lib:test"): "arrows"] 君は [r:macro.return] 本の矢を持っている。 </syntaxhighlight>

呼び出されるマクロ

<source lang="mtmacro" line> [h: macro.return = 0] [h: abort(json.contains(ammunition, macro.args))] [h: macro.return = json.get(ammunition, macro.args)] </syntaxhighlight>

結果

assuming ammunition = { "arrows" : 30 }

トークン名: 君は 30 本の矢を持っている。

assuming ammunition = { "bolts" : 20 }

(出力無し)

See Also

Version Changes

  • 1.3b49 - No message is displayed if called from a macroLink.
  • 1.5.0 - catch an abort with macro.catchAbort

Languages:  English  • 日本語