execFunction: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
(8 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{MacroFunction | {{MacroFunction | ||
|name=execFunction | |name=execFunction | ||
Line 5: | Line 4: | ||
|trusted=true | |trusted=true | ||
|description= | |description= | ||
Executes a built-in macro function or user-defined function (UDF) on one or more clients. No output from the executed function will be presented on the targets. {{func|execFunction}} allows you to defer the running of the function until after the currently running macro has ended. If you defer a series of {{func| | Executes a built-in macro function or user-defined function (UDF) on one or more clients. No output from the executed function will be presented on the targets. {{func|execFunction}} allows you to defer the running of the function until after the currently running macro has ended. If you defer a series of {{func|execFunction}} calls, they will be queued in order and executed after the currently running macro. | ||
|usage= | |usage= | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
execFunction(functionName, arguments) | execFunction(functionName, arguments) | ||
execFunction(functionName, arguments, defer) | execFunction(functionName, arguments, defer) | ||
execFunction(functionName, arguments, defer, targets) | execFunction(functionName, arguments, defer, targets) | ||
execFunction(functionName, arguments, defer, targets, delim) | execFunction(functionName, arguments, defer, targets, delim) | ||
</ | </syntaxhighlight> | ||
'''Parameters''' | '''Parameters''' | ||
{{param|functionName|The function to "execute".}} | {{param|functionName|The function to "execute".}} | ||
Line 25: | Line 23: | ||
To run a song on every client, the GM can use | To run a song on every client, the GM can use | ||
< | <syntaxhighlight lang="mtmacro" line> | ||
[h: song = "https://ia800300.us.archive.org/29/items/Muzyka-CC/Aleksand_Sjakin_-_Flight_in_space.mp3"] | [h: song = "https://ia800300.us.archive.org/29/items/Muzyka-CC/Aleksand_Sjakin_-_Flight_in_space.mp3"] | ||
[h: execFunction("playStream", json.append("[]", song, 1, 0.8), 0, "all")] | [h: execFunction("playStream", json.append("[]", song, 1, 0.8), 0, "all")] | ||
</ | </syntaxhighlight> | ||
|also= | |also= | ||
Line 34: | Line 32: | ||
}} | }} | ||
===Notes=== | |||
Deferred functions/links which are queued within a deferred macro do not run directly after the queuing macro, but instead is added to the end of the stack of all the deferred functions and links. This means you cannot 'nest' deferrals or insert deferrals in the middle of the stack of deferred macros. For discussion of this functionality and possible workarounds you can [https://github.com/RPTools/maptool/issues/2633 read more on GitHub]. | |||
[[Category:Miscellaneous Function]] | [[Category:Miscellaneous Function]] |
Latest revision as of 23:59, 14 March 2023
execFunction() Function
Note: This function can only be used in a Trusted Macro
• Introduced in version 1.5.7
Executes a built-in macro function or user-defined function (UDF) on one or more clients. No output from the executed function will be presented on the targets. execFunction() allows you to defer the running of the function until after the currently running macro has ended. If you defer a series of execFunction() calls, they will be queued in order and executed after the currently running macro.
Usage
execFunction(functionName, arguments)
execFunction(functionName, arguments, defer)
execFunction(functionName, arguments, defer, targets)
execFunction(functionName, arguments, defer, targets, delim)
Parameters
functionName
- The function to "execute".arguments
- A JSON array of arguments for the function.defer
- Executes the function after the current macro has completed if non zero, defaults to zero.targets
- are the user names (so not token names) but the names of the users that are logged in. The options "gm", "gm-self", "self", "not-self", "not-gm", "not-gm-self", "none", and "all" are also valid parameters to give. E.g.: "tim, tom, tarra". Defaults to self (so if no parameter is given the function is executed locally only).delim
- The delimiter used to separate the values in the String List that is given, defaults to","
. If"json"
is specified, a JSON array is expected instead of a String List.
Example
To run a song on every client, the GM can use
[h: song = "https://ia800300.us.archive.org/29/items/Muzyka-CC/Aleksand_Sjakin_-_Flight_in_space.mp3"]
[h: execFunction("playStream", json.append("[]", song, 1, 0.8), 0, "all")]
See Also
Notes
Deferred functions/links which are queued within a deferred macro do not run directly after the queuing macro, but instead is added to the end of the stack of all the deferred functions and links. This means you cannot 'nest' deferrals or insert deferrals in the middle of the stack of deferred macros. For discussion of this functionality and possible workarounds you can read more on GitHub.