for (roll option): Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (Conversion script moved page For (roll option) to for (roll option): Converting page titles to lowercase)
m (Text replacement - "source>" to "syntaxhighlight>")
Line 8: Line 8:
<source lang="mtmacro" line>
<source lang="mtmacro" line>
[for(var, start, end): body]
[for(var, start, end): body]
</source>
</syntaxhighlight>
<source lang="mtmacro" line>
<source lang="mtmacro" line>
[for(var, start, end, stepsize): body]
[for(var, start, end, stepsize): body]
</source>
</syntaxhighlight>
<source lang="mtmacro" line>
<source lang="mtmacro" line>
[for(var, start, end, stepsize, separator): body]
[for(var, start, end, stepsize, separator): body]
</source>
</syntaxhighlight>
'''Parameters'''<br>
'''Parameters'''<br>
The {{code|var}} variable counts from {{code|start}} towards {{code|end}} during the loop, and the optional {{code|stepsize}} (default {{code|+1}}) is added to {{code|var}} at each iteration.  Note that in the standard incrementing usage with a {{code|stepsize}} of {{code|1}}, the {{code|body}} does not execute when {{code|var}} reaches {{code|end}}. <br>
The {{code|var}} variable counts from {{code|start}} towards {{code|end}} during the loop, and the optional {{code|stepsize}} (default {{code|+1}}) is added to {{code|var}} at each iteration.  Note that in the standard incrementing usage with a {{code|stepsize}} of {{code|1}}, the {{code|body}} does not execute when {{code|var}} reaches {{code|end}}. <br>
Line 24: Line 24:
<source lang="mtmacro" line>
<source lang="mtmacro" line>
[for(i,0,10): "i is now " + i]
[for(i,0,10): "i is now " + i]
</source>
</syntaxhighlight>
Counts up from 0 to 9.
Counts up from 0 to 9.


<source lang="mtmacro" line>
<source lang="mtmacro" line>
[for(i,10,0,-2): "i is now " + i]
[for(i,10,0,-2): "i is now " + i]
</source>
</syntaxhighlight>
Counts down even numbers from 10 to 2.
Counts down even numbers from 10 to 2.


<source lang="mtmacro" line>
<source lang="mtmacro" line>
[for(i,10,-1,-2): "i is now " + i]
[for(i,10,-1,-2): "i is now " + i]
</source>
</syntaxhighlight>
Counts down even numbers from 10 to 0.
Counts down even numbers from 10 to 0.



Revision as of 18:27, 14 March 2023

 This article is a stub, you can help the RPTools Wiki project by contributing content to expand this article.

[for():] Roll Option

* Introduced in version 1.3.b46

Executes a statement for a number of iterations based on a start and end value.

Usage

<source lang="mtmacro" line> [for(var, start, end): body] </syntaxhighlight> <source lang="mtmacro" line> [for(var, start, end, stepsize): body] </syntaxhighlight> <source lang="mtmacro" line> [for(var, start, end, stepsize, separator): body] </syntaxhighlight> Parameters
The var variable counts from start towards end during the loop, and the optional stepsize (default +1) is added to var at each iteration. Note that in the standard incrementing usage with a stepsize of 1, the body does not execute when var reaches end.
Note that stepsize must be integer and not 0. Floating values will be rounded down.
list_separator default value is ",". Some examples of other useful separators: nothing "", space " " and break "<br>".

Examples

<source lang="mtmacro" line> [for(i,0,10): "i is now " + i] </syntaxhighlight> Counts up from 0 to 9.

<source lang="mtmacro" line> [for(i,10,0,-2): "i is now " + i] </syntaxhighlight> Counts down even numbers from 10 to 2.

<source lang="mtmacro" line> [for(i,10,-1,-2): "i is now " + i] </syntaxhighlight> Counts down even numbers from 10 to 0.

See Also

[foreach():], Introduction to Macro Loops

Version Changes

  • 1.3b54 - Changed the comparison operator when comparing the var to end when determining whether to continue executing a new iteration. In version 1.3b53 and earlier, on each iteration it compared if var was less than or equal to end. As of version 1.3b54, it is now comparing if var is less than end.