Expressions: Difference between revisions

From SigMod
Jump to navigation Jump to search
(Created page with "== Functions == <syntaxhighlight> test( test expression, if true, if false ) ?( test expression, if true, if false ) exists( value ) min( value 1, value 2 ) max( value 1, valu...")
 
No edit summary
Line 1: Line 1:
You can use expressions as input parameter to reduce the amount of logic entities used. Expressions in input parameter start with $$=
For example, using this as input parameter: $$='Health: ('..!activator.m_iHealth..'/'..!activator.m_iMaxHealth..')' will set health information as input parameter
Expressions are calculated during input execution .
Do not put double quote " inside expression, but you are allowed to use comma , .
== Syntax ==
{| class="wikitable"
|+
!
!
!Example
|-
|'AADSD'
|literal string
|'AADSD'
|-
|4.3
|number
|4.3
|-
|[1 4 5.5]
|vector
|[1 4 5.5]
|-
|entityname.variable
|access entity sendprop, datamap, or custom variable
|!activator.m_iHealth + 41
|-
| + - * / %
|add, subtract, multiply, divide, modulo operators
|5 + 2
|-
|..
|join strings
|'This is ' .. 2 .. ' awesome'
|-
|> >= < <= == !=
|comparison operators
|7 > 3
|-
|()
|parentheses, expression inside is calculated before others
|(4 + 3) * 2
|-
|function(param 1, param 2 ...)
|function
|min(entity.m_iHealth, entity2.m_iHealth)
|-
|<nowiki>&& ||</nowiki>
|and, or operators
|entity.m_iHealth > 4 && entity2.m_iHealth < 2
|-
|<nowiki>& | ^</nowiki>
|and, or, xor binary operators
|
|-
|>> <<
|right bit shift, left bit shift
|
|}
Values are automatically converted when types of left and right sides of operators differ.
For example, [1 4 5] + 4 will automatically convert 4 to [4 4 4] vector
== Functions ==
== Functions ==
=== Logic ===
<syntaxhighlight>
<syntaxhighlight>
test( test expression, if true, if false )
test( test expression, if true, if false )

Revision as of 21:42, 4 March 2022

You can use expressions as input parameter to reduce the amount of logic entities used. Expressions in input parameter start with $$=

For example, using this as input parameter: $$='Health: ('..!activator.m_iHealth..'/'..!activator.m_iMaxHealth..')' will set health information as input parameter

Expressions are calculated during input execution .

Do not put double quote " inside expression, but you are allowed to use comma , .

Syntax

Example
'AADSD' literal string 'AADSD'
4.3 number 4.3
[1 4 5.5] vector [1 4 5.5]
entityname.variable access entity sendprop, datamap, or custom variable !activator.m_iHealth + 41
+ - * / % add, subtract, multiply, divide, modulo operators 5 + 2
.. join strings 'This is ' .. 2 .. ' awesome'
> >= < <= == != comparison operators 7 > 3
() parentheses, expression inside is calculated before others (4 + 3) * 2
function(param 1, param 2 ...) function min(entity.m_iHealth, entity2.m_iHealth)
&& || and, or operators entity.m_iHealth > 4 && entity2.m_iHealth < 2
& | ^ and, or, xor binary operators
>> << right bit shift, left bit shift

Values are automatically converted when types of left and right sides of operators differ.

For example, [1 4 5] + 4 will automatically convert 4 to [4 4 4] vector

Functions

Logic

test( test expression, if true, if false )
?( test expression, if true, if false )
exists( value )
min( value 1, value 2 )
max( value 1, value 2 )
length( vector )
distance( vector 1, vector 2 )
dotproduct( vector 1, vector 2 )
crossproduct( vector 1, vector 2 )
rotate( input vector, rotation angles )
normalize( vector )
toangles( vector )
toforwardvector( vector )
clamp( input value, minimum value, maximum value )
remap( input value, from min, from max, to min, to max )
remapclamped( input value, from min, from max, to min, to max )
int( value )
float( value )
string( value )
stringpad( value, min digits, num digits after decimal point )
vector( string or X coordinate )
x( vector )
y( vector )
z( vector )
not( value )
!( value )
~( value )
sqrt( value )
pow( base, exponent )
floor( value )
ceil( value )
randomint( minimum value, maximum value )
randomfloat( minimum value, maximum value )
case( test value, default, case1 )
sin( angle in radians )
cos( angle in radians )
tan( angle in radians )
atan( value )
atan2( x, y )
abs( value )
playeratindex( index )
entityindex( entity )
playeritematslot( entity, slot )
attribute( player or item, attribute name )
type( value )
charat( string, pos )
substr( string, pos, length )
substring( string, pos, length )
startswith( string, prefix )
endswith( string, suffix )
find( haystack, needle )