Expressions: Difference between revisions
No edit summary |
mNo edit summary |
||
Line 154: | Line 154: | ||
find( haystack, needle ) | find( haystack, needle ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Category:Misc Additions]] |
Revision as of 11:29, 5 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 , .
As an admin, sig_expression_test "expression" command can be used to test expressions. Example: sig_expression_test "2+2"
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 | test(7 > 3, 1, 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 | |
pi | pi number | pi * pi |
degtorad, radtodeg | convert angle between degrees and radiants | 9 * degtorad |
true, false | logical true/false |
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
\' escapes single quotes inside literal string
Functions
Logic
test( test expression, if true, if false )
?( test expression, if true, if false )
exists( value )
not( value )
!( value )
~( value )
case( test value, default, case1, [case2] ... )
type( value )
Entity
playeratindex( index )
entityindex( entity )
playeritematslot( entity, slot )
attribute( player or item, attribute name )
Math
min( value 1, value 2 )
max( value 1, value 2 )
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 )
sqrt( value )
pow( base, exponent )
floor( value )
ceil( value )
randomint( minimum value, maximum value )
randomfloat( minimum value, maximum value )
int( value )
float( value )
sin( angle in radians )
cos( angle in radians )
tan( angle in radians )
atan( value )
atan2( x, y )
abs( value )
Vector
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( angles )
vector( string or X coordinate, [Y coordinate], [Z coordinate] )
x( vector )
y( vector )
z( vector )
Strings
string( value )
stringpad( value, min digits, num digits after decimal point )
charat( string, pos )
substr( string, pos, length )
substring( string, pos, length )
startswith( string, prefix )
endswith( string, suffix )
find( haystack, needle )