setVariable: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " +\|\$Warning( *)\|" to " |$1Warning$1|")
m (Text replacement - "{{Inline code|" to "{{ic|")
Line 13: Line 13:


| Set variable to given value in the variable space of given element.
| Set variable to given value in the variable space of given element.
* To remove a variable, set it to [[nil]] (e.g. {{Inline code|[[player]] [[setVariable]] ["varname", [[nil]]<nowiki>]</nowiki>;}}).<br><br>
* To remove a variable, set it to [[nil]] (e.g. {{ic|[[player]] [[setVariable]] ["varname", [[nil]]<nowiki>]</nowiki>;}}).<br><br>
* When variable is set on [[Task]], it is not actually set on task itself, but on FSM attached to the task. So if there is no FSM [[setVariable]] will not work.<br>
* When variable is set on [[Task]], it is not actually set on task itself, but on FSM attached to the task. So if there is no FSM [[setVariable]] will not work.<br>
* When variable is set on [[Location]], it works only with locations created with [[createLocation]].<br><br>
* When variable is set on [[Location]], it works only with locations created with [[createLocation]].<br><br>

Revision as of 19:11, 27 February 2021

Hover & click on the images for description

Description

Description:
Description needed
Multiplayer:
The variable space of the object is local to each client and by default changes are not broadcast.
Since Arma 2: If the public parameter for supported types is true, the value will be synchronized also for a JIP player.
Problems:
missionNamespace, uiNamespace, parsingNamespace and profileNamespace variable names could be any string, except for the reserved names, which are normally script command names. For example: missionNamespace setVariable ["west", 123]; will result in error:
Error in expression <missionNamespace setVariable ["west", 123];>
   Error position: <setVariable ["west", 123];>
   Error Reserved variable in expression  
as west is a script command. Other varspaces do not have such limitation. You can always check for all available script commands by running utility number 5
Groups:
MultiplayerVariables

Syntax

Syntax:
Syntax needed
Parameters:
varspace: Namespace, Object, Group, Team Member, Task, Location, Control, Display - variable space in which variable can be set
[name, value]: Array
name: String - variable name
value: Anything - variable value
Return Value:
Return value needed

Alternative Syntax

Syntax:
varspace setVariable [name, value, public]
Parameters:
varspace: missionNamespace, Object or Group - variable space in which variable can be set
[name, value, public]: Array
name: String - variable name
value: Anything - variable value (if public is true, check publicVariable for what types are supported for broadcast)
public: Boolean, Number or Array of Numbers
Return Value:
Nothing

Examples

Example 1:
_myTruck setVariable ["myPublicVariable", 123, true];
Example 2:
_myTruck setVariable ["myLocalVariable", ["321", _var], false];
Example 3:
missionNamespace setVariable ["myName", "KK"]; hint myName; //KK
Example 4:
Get current value of a variable and if it is undefined, define it and get the defined value:private _var = missionNamespace getVariable "varName"; if (isNil "_var") then { missionNamespace setVariable ["varName", 123]; _var = 123; }; // _var here will contain current value of the variable varName

Additional Information

See also:
See also needed

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
Posted on December 9, 2015 - 20:18 (UTC)
Commy2
This command does not work with CfgAmmo or CfgNonAIVehicles objects, like bullets, mines or butterflies.