abort/ja: Difference between revisions
m (Text replacement - "source>" to "syntaxhighlight>") |
|||
Line 27: | Line 27: | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
abort(abrt) | abort(abrt) | ||
</ | </syntaxhighlight> | ||
'''パラメーター''' | '''パラメーター''' | ||
Line 39: | Line 39: | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
[h: res = input("blah")] [h: abort(res)] | [h: res = input("blah")] [h: abort(res)] | ||
</ | </syntaxhighlight> | ||
<!--The following example discards any output in the macro.--> | <!--The following example discards any output in the macro.--> | ||
Line 45: | Line 45: | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
Hah! you will never see this! [abort(0)] | Hah! you will never see this! [abort(0)] | ||
</ | </syntaxhighlight> | ||
<!--The following line can be used to protect macros that only the GM should run--> | <!--The following line can be used to protect macros that only the GM should run--> | ||
Line 51: | Line 51: | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
[h: abort(isGM())] | [h: abort(isGM())] | ||
</ | </syntaxhighlight> | ||
<!--The following line can be used to silently end a macro that can only be run from a [[Trusted Macro]]--> | <!--The following line can be used to silently end a macro that can only be run from a [[Trusted Macro]]--> | ||
Line 57: | Line 57: | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
[h: abort(isTrusted())] | [h: abort(isTrusted())] | ||
</ | </syntaxhighlight> | ||
===使用の注意===<!--Usage Notes--> | ===使用の注意===<!--Usage Notes--> | ||
Line 72: | Line 72: | ||
[MACRO("getAmmo@Lib:test"): "arrows"] | [MACRO("getAmmo@Lib:test"): "arrows"] | ||
君は [r:macro.return] 本の矢を持っている。 | 君は [r:macro.return] 本の矢を持っている。 | ||
</ | </syntaxhighlight> | ||
====呼び出されるマクロ====<!--Called Macro--> | ====呼び出されるマクロ====<!--Called Macro--> | ||
Line 80: | Line 80: | ||
[h: abort(json.contains(ammunition, macro.args))] | [h: abort(json.contains(ammunition, macro.args))] | ||
[h: macro.return = json.get(ammunition, macro.args)] | [h: macro.return = json.get(ammunition, macro.args)] | ||
</ | </syntaxhighlight> | ||
====結果====<!--結果--> | ====結果====<!--結果--> |
Revision as of 17:23, 14 March 2023
abort() Function
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
<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