isNil

From Bohemia Interactive Community
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Hover & click on the images for description

Description

Description:
Tests whether a variable is nil or undefined from its identifier, or whether the given expression evaluates to nil or Nothing.
Operation Flashpoint
This command does not exist in Operation Flashpoint/Arma: Cold War Assault but can be emulated (see Example 5).
Groups:
Variables

Syntax 1

Syntax:
isNil variableName
Parameters:
variableName: String - missionNamespace's or local variable's identifier (e.g "globalVariable", "_localVariable")
Return Value:
Boolean - true if variable is nil or undefined

Syntax 2

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 (see Example 4).
Return Value:
Boolean - true if code returns Nothing, false otherwise

Syntax 3

Syntax:
namespace isNil variableName
Parameters:
namespace: Namespace, Object, Group or HashMap
variableName: String
Return Value:
Boolean - true if variable is nil or undefined

Examples

Example 1:
if (isNil "TAG_globalVariable") then { TAG_globalVariable = 0 }; if (isNil "_localVariable") then { hint "_localVariable is nil" };
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:
This trick forces executing something in Unscheduled Environment:
0 spawn { systemChat str canSuspend; // chat shows true isNil { hint str canSuspend }; // hint shows false };
Example 5:
Operation Flashpoint String comparison workaround
SQS Syntax:
_nil = format ["%1", _undefinedVariable] ? (format ["%1", variableToTest] == _nil) : hint "variableToTest is nil"
SQF Syntax:
_nil = format ["%1", _undefinedVariable]; if (format ["%1", variableToTest] == _nil) then { hint "variableToTest is nil" };

Additional Information

See also:
nil Variables Scheduler

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