isNil: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "[[Category:Scripting_Commands_Take_On_Helicopters" to "[[Category:Scripting Commands Take On Helicopters")
(Example 4)
Line 27: Line 27:
|p21= code: [[Code]] - code to evaluate:
|p21= code: [[Code]] - code to evaluate:
* the code '''will''' be executed; {{Inline code|[[isNil]] { [[player]] [[setDamage]] 1; };}} ''will'' kill the player
* the code '''will''' be executed; {{Inline code|[[isNil]] { [[player]] [[setDamage]] 1; };}} ''will'' kill the player
* the code will not be allowed [[canSuspend|to suspend]] while expression is evaluated, even if the parent scope allows it.  
* the code will not be allowed [[canSuspend|to suspend]] while expression is evaluated, even if the parent scope allows it (Example 4).  
 |Parameter 21=
 |Parameter 21=


Line 43: Line 43:
[[isNil]] { _myArray [[select]] 3 }; {{cc|throws a script error. only length+1 select is allowed}}
[[isNil]] { _myArray [[select]] 3 }; {{cc|throws a script error. only length+1 select is allowed}}
</code> |Example 3=
</code> |Example 3=
|x4= You can do this trick to force execute something in [[Scheduler|Unscheduled Environment]].<code>[[spawn]] {
[[systemChat]] [[str]] [[canSuspend]]; {{cc|[[true]]}}
[[isNil]] {[[hint]] [[str]] [[canSuspend]]}; {{cc|[[false]]}}
};</code> |Example 4=
____________________________________________________________________________________________
____________________________________________________________________________________________



Revision as of 11:26, 14 May 2020

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
Tests whether the variable given by its name is nil or undefined, or whether the given expression evaluates to nil or Nothing.

Logo A0.png1.00 isNil doesn't exist in Operation Flashpoint, you can emulate it:

// SQS syntax
_nil = format ["%1", _undefinedVariable]
? (format ["%1", foo] == _nil) : foo = "Hello World!"

// SQF syntax
_nil = format ["%1", _undefinedVariable];
if (format ["%1", foo] == _nil) then { foo = "Hello World!"; };
Groups:
Uncategorised

Syntax

Syntax:
isNil variableName
Parameters:
variableName: String - name of a missionNamespace variable (e.g "someVar") or a local variable (e.g "_someVar")
Return Value:
Boolean - true if variable is nil

Alternative Syntax

Syntax:
isNil code
Parameters:
code: Code - code to evaluate:
  • the code will be executed; isNil { player setDamage 1; }; will kill the player
  • the code will not be allowed to suspend while expression is evaluated, even if the parent scope allows it (Example 4).
 
Return Value:
Boolean - true if code returns something other than Nothing

Examples

Example 1:
if (isNil "pokus") then { pokus = 0; };
Example 2:
isNil { player getVariable "someVar" };
Example 3:
_myArray = [0, 1]; isNil { _myArray select 0 }; // returns false isNil { _myArray select 1 }; // returns false isNil { _myArray select 2 }; // returns true isNil { _myArray select 3 }; // throws a script error. only length+1 select is allowed
Example 4:
You can do this trick to force execute something in Unscheduled Environment.spawn { systemChat str canSuspend; // true isNil {hint str canSuspend}; // false };

Additional Information

See also:
nilVariables

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note

Notes

Bottom Section