arg: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (Text replacement - "source>" to "syntaxhighlight>")
m (Text replacement - "<source" to "<syntaxhighlight")
 
Line 9: Line 9:


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
arg(index)
arg(index)
</syntaxhighlight>
</syntaxhighlight>
Line 17: Line 17:
|example=
|example=
Given a user defined function called {{code|attackRoll()}} which accepts two arguments, which are attribute value and bonus you could call it in the following way.
Given a user defined function called {{code|attackRoll()}} which accepts two arguments, which are attribute value and bonus you could call it in the following way.
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[attackRoll(12, -1)]
[attackRoll(12, -1)]
</syntaxhighlight>
</syntaxhighlight>


Then inside the macro that implements the user defined function you can do the following.
Then inside the macro that implements the user defined function you can do the following.
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: attr = arg(0)]
[h: attr = arg(0)]
[h: bonus = arg(1)]
[h: bonus = arg(1)]

Latest revision as of 17:52, 14 March 2023

arg() Function

Introduced in version 1.3b51
Is used to extract arguments that are passed to a macro when called as a user defined function.

User functions are defined with the defineFunction() function. Once you have defined a function you can call it as you would call any of the existing functions, for example attackRoll(Strength, -1). The arg() function is used within the macro that is called to extract each of these arguments. The index of the first argument is 0.

The argCount() function is often used in conjunction with arg() to determine the number of arguments that have been passed to the user defined function.

Usage

arg(index)

Parameters

  • index - The index of the argument to return. Indexes begin at 0.

Example

Given a user defined function called attackRoll() which accepts two arguments, which are attribute value and bonus you could call it in the following way.
[attackRoll(12, -1)]

Then inside the macro that implements the user defined function you can do the following.

[h: attr = arg(0)]
[h: bonus = arg(1)]
[r: 1d20 + floor(attr/2) + bonus]

See Also