if: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (Fixing wikilink)
(Emphasising usage differences between if function and if roll option)
Line 5: Line 5:
This function is used to check whether a certain code ''expression'' should be executed or not. If the ''condition'' to be evaluated with this function is {{code|true}}, the first ''expression'' of code is executed, otherwise the second ''expression'' of code is executed.  
This function is used to check whether a certain code ''expression'' should be executed or not. If the ''condition'' to be evaluated with this function is {{code|true}}, the first ''expression'' of code is executed, otherwise the second ''expression'' of code is executed.  


'''Note:''' This function has been deprecated in favor of the [[if (roll option)|if (roll option)]]. Both {{code|trueExpr}} and {{code|falseExpr}} are evaluated regardless of what {{code|condition}} returns, so this should only be used in limited cases where a small ''branch'' is required within other functions.


<span style="color:red;font-size:1.1em">'''<u>Important note:</u>'''</span><br>
Both {{code|trueExpr}} and {{code|falseExpr}} are evaluated regardless of what {{code|condition}} returns. This means that updates, macro calling, etc. in '''both''' ''branches'' will be executed regardless of the test result.<br>
So this function should only be used in limited cases where ''branches'' stick to returning a value.
However, the function doesn't have the parenthesis limit the roll option has:
<source lang="mtmacro">
[if(((1))): 1;0] <!-- this fails -->
[if(((1)),1,0)]  <!-- this works -->
</source>
|usage=
|usage=
<source lang="mtmacro" line>
<source lang="mtmacro" line>

Revision as of 07:54, 3 August 2011

if() Function

Introduced in version 1.3b38
This function is used to check whether a certain code expression should be executed or not. If the condition to be evaluated with this function is true, the first expression of code is executed, otherwise the second expression of code is executed.


Important note:

Both trueExpr and falseExpr are evaluated regardless of what condition returns. This means that updates, macro calling, etc. in both branches will be executed regardless of the test result.
So this function should only be used in limited cases where branches stick to returning a value.

However, the function doesn't have the parenthesis limit the roll option has:

[if(((1))): 1;0] <!-- this fails -->
[if(((1)),1,0)]  <!-- this works -->

Usage

if(condition, trueExpr, falseExpr)

Parameters

  • condition - What is tested to determine is the trueExpr or falseExpr will be executed. This follows the standard rules for conditions that can be found in the Branching and Looping article.
  • trueExpr - A section of code that is executed if condition returns as true.
  • falseExpr - A section of code that is executed if condition does not return as true.

Examples

Example 1: If a is 10 and b is 20:
[r: if(a > b, "A is larger than B", "A is not larger than B")]

Returns: A is not larger than B

Example 2: If number is 1:

[r: if(number >= 1, 20, "")]

Returns: A blank string, please note that a blank string is not an empty variable if you were to assign the output of this function.

Example 3: If variable is "Foobar":

[r: if(variable == "Text", 1, 0)]

Returns: 0

Example 4: If variable is 20

[property = if(variable > 0 && variable < 20, 1, 0)]
Returns: property set to 0

See Also