setVariable: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (problems)
(some formatting)
Line 12: Line 12:
|gr2= Variables
|gr2= Variables


| Set variable to given value in the variable space of given element.<br>
| 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>
* To remove a variable, set it to [[nil]] (e.g. {{Inline code|[[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>
* When variable is set on [[Location]], it works only with locations created with [[createLocation]].<br><br>
All supported variable types:
* All supported variable types:
* [[Namespace]]
** [[Namespace]], [[Object]], [[Group]], [[Team Member]], [[Task]] (FSM Task), [[Location]] ([[createLocation | scripted]] only)
* [[Object]]
** [[Control]] and [[Display]] {{Since|arma3|1.55.133553}}
* [[Group]]
{{Feature|arma3|In Arma 3 it is possible to broadcast [[nil]] value!}}
* [[Team Member]]
* [[Task]] (FSM Task)
* [[Location]] (only [[createLocation | scripted]] locations)
* [[Control]] (since Arma 3 v1.55.133553)
* [[Display]] (since Arma 3 v1.55.133553)
 
{{Feature|arma3|In Arma 3 it is possible to broadcast [[nil]] value}}




Line 37: Line 30:
| varspace [[setVariable]] [name, value]
| varspace [[setVariable]] [name, value]


|p1= varspace: [[Namespace]], [[Object]], [[Group]], [[Team_Member]], [[Task]], [[Location]], [[Control]], [[Display]] - variable space in which variable can be set
|p1= varspace: [[Namespace]], [[Object]], [[Group]], [[Team Member]], [[Task]], [[Location]], [[Control]], [[Display]] - variable space in which variable can be set
|p2= [name, value]: [[Array]]
|p2= [name, value]: [[Array]]
|p3= name: [[String]] - variable name
|p3= name: [[String]] - variable name

Revision as of 15:57, 29 January 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.