setVariable: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "</dd> </dl>" to "</dd> </dl>") |
Lou Montana (talk | contribs) (Page cleanup) |
||
Line 24: | Line 24: | ||
|gr2= Variables | |gr2= Variables | ||
|descr= Set variable to given value in the variable space of given element. | |descr= Set variable to given value in the variable space of given element. Can be used to broadcast variables over the network. To remove a variable, set it to [[nil]] (see {{HashLink|#Example 5}}). | ||
{{Feature | Warning | [[missionNamespace]], [[uiNamespace]], [[parsingNamespace]] and [[profileNamespace]] variable names can be any string but reserved names such as script commands. For example: <tt>[[missionNamespace]] setVariable ["west", 123];</tt> will result in error: | |||
Error in expression <missionNamespace setVariable ["west", 123];> | Error in expression <missionNamespace setVariable ["west", 123];> | ||
Error position: <setVariable ["west", 123];> | |||
Error Reserved variable in expression | |||
as [[west]] is a | as [[west]] is a scripting command. Other varspaces do not have such limitation. See also [[:Category:Scripting Commands|all available script commands]]. | ||
}} | |||
| | |mp= The variable space of the object is '''local to each client''' and '''by default''' changes are not broadcast. | ||
| | |s1= varspace [[setVariable]] [name, value, public] | ||
| | |p1= varspace: variable space in which variable can be set. Can be one of: | ||
{{{!}} class="wikitable" | |||
! support ''public'' parameter | |||
! local usage only (no ''public'' parameter) | |||
{{!}}- style="vertical-align: top" | |||
{{!}} | |||
* [[Namespace]] | |||
* [[Object]] | |||
* [[Group]] | |||
{{!}} | |||
* [[Location]] (only the [[createLocation|scripted]] ones) | |||
* [[Team Member]] {{Since|arma2}} | |||
* [[Task]] {{Since|arma2}} | |||
** value will actually be set on [[Task]]'s [[FSM]]. If none exist, the data will not be set | |||
* [[Control]] {{Since|arma3}} | |||
* [[Display]] {{Since|arma3}} | |||
{{!}}} | |||
| | |p2= name: [[String]] - variable name | ||
| | |p3= value: [[Anything]] - variable value | ||
| | |p4= public: [[Boolean]], [[Number]] or [[Array]] of [[Number]]s - (Optional, default [[false]]): {{Since|arma2||y}} | ||
* [[Boolean]] - when set to [[true]], the variable broadcast is global and persistent ([[Multiplayer Scripting#Join In Progress|JIP]] compatible) {{Icon|globalEffect|32}} | |||
* [[Number]] - the variable is set only on the client of given [[Multiplayer Scripting#Machine network ID|ownerId]], or if id is negative, the variable is set on every client except the given one (see {{HashLink|Multiplayer Scripting#Machine network ID}}) | |||
* [[Array]] of [[Number]]s - array of [[Multiplayer Scripting#Machine network ID|ownerIds]] | |||
| | Broadcast of the following [[:Category: Data Types|Data Types]] is supported: | ||
{{{!}} class{{=}}"wikitable" style{{=}}"text-align: center" | |||
! Type | |||
{{!}} [[Number]] | |||
{{!}} [[Boolean]] | |||
{{!}} [[Object]] | |||
{{!}} [[Group]] | |||
{{!}} [[String]] | |||
{{!}} [[Text]] | |||
{{!}} [[Array]] | |||
{{!}} [[Code]] | |||
{{!}} [[Nothing]] ([[nil]]) | |||
{{!}} [[HashMap]] | |||
{{!}}- | |||
! Since | |||
{{!}} {{GVI|ofp|1.34}} | |||
{{!}} {{GVI|ofp|1.34}} | |||
{{!}} {{GVI|ofp|1.34}} | |||
{{!}} {{GVI|ofp|1.34}} | |||
{{!}} {{GVI|arma1|1.00}} | |||
{{!}} {{GVI|arma1|1.00}} | |||
{{!}} {{GVI|arma1|1.09}} | |||
{{!}} {{GVI|arma1|1.09}} | |||
{{!}} {{GVI|arma3|1.26}} | |||
{{!}} {{GVI|arma3|2.02}} | |||
{{!}}} | |||
| | |r1= [[Nothing]] | ||
| | |x1= <code>_myTruck [[setVariable]] ["TAG_myPublicVariable", 123, [[true]]];</code> | ||
|x2= <code>_myTruck [[setVariable]] ["TAG_myLocalVariable", ["321", _var], [[driver]] _myTruck];</code> | |||
|x3= <code>[[missionNamespace]] [[setVariable]] ["TAG_myName", "Brian"]; | |||
[[hint]] TAG_myName; {{cc|hints "Brian"}}</code> | |||
|x4= Get current value of a variable and if it is undefined, define it and get the defined value: | |||
<code>[[private]] _var = [[missionNamespace]] [[getVariable]] "varName"; | |||
|x4= Get current value of a variable and if it is undefined, define it and get the defined value:<code>[[private]] _var = [[missionNamespace]] [[getVariable]] "varName"; | |||
[[if]] ([[isNil]] "_var") [[then]] | [[if]] ([[isNil]] "_var") [[then]] | ||
{ | { | ||
_var = 123; | _var = 123; | ||
[[missionNamespace]] [[setVariable]] ["varName", _var]; | |||
}; | }; | ||
{{cc|_var here will contain current value of the variable varName}}</code> | {{cc|_var here will contain current value of the variable varName}}</code> | ||
|x5= Unset <tt>_myTruck</tt>'s <tt>TAG_myPublicVariable</tt> variable globally: | |||
<code>_myTruck [[setVariable]] ["TAG_myPublicVariable", [[nil]], [[true]]];</code> | |||
|seealso= [[getVariable]], [[allVariables]], [[setFSMVariable]], [[Multiplayer Scripting#Join In Progress|Multiplayer Scripting]] | |seealso= [[getVariable]], [[allVariables]], [[setFSMVariable]], [[Multiplayer Scripting#Join In Progress|Multiplayer Scripting]] |
Revision as of 19:54, 16 July 2021
Description
- Description:
- Set variable to given value in the variable space of given element. Can be used to broadcast variables over the network. To remove a variable, set it to nil (see Example 5).
- Multiplayer:
- The variable space of the object is local to each client and by default changes are not broadcast.
- Groups:
- MultiplayerVariables
Syntax
- Syntax:
- varspace setVariable [name, value, public]
- Parameters:
- varspace: variable space in which variable can be set. Can be one of:
support public parameter local usage only (no public parameter) - name: String - variable name
- value: Anything - variable value
- public: Boolean, Number or Array of Numbers - (Optional, default false): Template:Since
- Boolean - when set to true, the variable broadcast is global and persistent (JIP compatible) GEGlobal
- Number - the variable is set only on the client of given ownerId, or if id is negative, the variable is set on every client except the given one (see Multiplayer Scripting - Machine network ID)
- Array of Numbers - array of ownerIds
Type Number Boolean Object Group String Text Array Code Nothing (nil) HashMap Since 1.34 1.34 1.34 1.34 1.00 1.00 1.09 1.09 1.26 2.02 - Return Value:
- Nothing
Examples
- Example 1:
_myTruck setVariable ["TAG_myPublicVariable", 123, true];
- Example 2:
_myTruck setVariable ["TAG_myLocalVariable", ["321", _var], driver _myTruck];
- Example 3:
missionNamespace setVariable ["TAG_myName", "Brian"]; hint TAG_myName; // hints "Brian"
- 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 { _var = 123; missionNamespace setVariable ["varName", _var]; }; // _var here will contain current value of the variable varName
- Example 5:
- Unset _myTruck's TAG_myPublicVariable variable globally:
_myTruck setVariable ["TAG_myPublicVariable", nil, true];
Additional Information
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.
Categories:
- Scripting Commands
- Introduced with Armed Assault version 1.00
- ArmA: Armed Assault: New Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Multiplayer
- Command Group: Variables
- Scripting Commands: Local Effect