Contents |
The abort() function is used to conditionally abort the execution of a macro. If the argument to abort() is 0 then the execution of the macro stops and all macro output is discarded. If the argument to abort() is non zero then the macro continues.
Note that only the output of the macro is discarded when the macro is aborted any changes made to macros will not be undone.
Common uses for this function are
If you prefer to display an error message when exiting the macro see the assert() function.
abort(abrt)
Parameters
abrt - 0 if the abort function should abort the macro, nonzero if it should not.
The following example will create a dialog box for the user to enter a value for the variable named blah, if the user clicks on cancel then res will be 0 so the abort() function will cause the macro to terminate, otherwise res will not be 0 so the macro will continue.
[h: res = input("blah")] [h: abort(res)]
The following example discards any output in the macro.
Hah! you will never see this! [abort(0)]The following line can be used to protect macros that only the GM should run
[h: abort(isGM())]The following line can be used to silently end a macro that can only be run from a Trusted Macro
[h: abort(isTrusted())]When aborting a macro called from another macro (for example, a library token), all macros are aborted, not just the one executing.
<!-- Call the getAmmo library macro -->[MACRO("getAmmo@Lib:test"): "arrows"]You have [r:macro.return] arrows.<!-- getAmmo macro in Lib:test token -->[h: macro.return = 0][h: abort(json.contains(ammunition, macro.args))][h: macro.return = json.get(ammunition, macro.args)]assuming ammunition = { "arrows" : 30 }
TokenName: You have 30 arrows.
assuming ammunition = { "bolts" : 20 }
(nothing)