Difference between revisions of "getVariable"

From Bohemia Interactive Community
Jump to navigation Jump to search
(syntax format)
m (template:command argument fix)
 
(7 intermediate revisions by 3 users not shown)
Line 27: Line 27:
 
* [[Display]] getVariable [[String]] (since Arma 3 v1.55.133553)
 
* [[Display]] getVariable [[String]] (since Arma 3 v1.55.133553)
 
* [[Display]] getVariable [[Array]] (since Arma 3 v1.55.133553)
 
* [[Display]] getVariable [[Array]] (since Arma 3 v1.55.133553)
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 [[getVariable]] will not work. |= Description
+
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 [[getVariable]] will not work. |DESCRIPTION=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| varspace '''getVariable''' name |= Syntax
+
| varspace '''getVariable''' name |SYNTAX=
  
|p1= varspace: [[Namespace]], [[Object]], [[Display]], [[Control]], [[Group]], [[Location]], [[Task]], [[Team Member]], [[Display]], [[Control]] |= Parameter 1
+
|p1= varspace: [[Namespace]], [[Object]], [[Display]], [[Control]], [[Group]], [[Location]], [[Task]], [[Team Member]], [[Display]], [[Control]] |PARAMETER1=
  
|p2= name: [[String]] - Variable name that was defined in [[setVariable]]  |= Parameter 2
+
|p2= name: [[String]] - Variable name that was defined in [[setVariable]]  |PARAMETER2=
  
| [[Anything]] or [[Nothing]]  if the variable doesn't exist |= Return value
+
| [[Anything]] or [[Nothing]]  if the variable doesn't exist |RETURNVALUE=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
|s2= varspace '''getVariable''' [name, defaultValue] |= Syntax
+
|s2= varspace '''getVariable''' [name, defaultValue] |SYNTAX=
  
|p21= varspace: [[Namespace]], [[Object]], [[Display]], [[Control]], [[Group]], [[Location]], [[Task]], [[Team Member]], [[Display]], [[Control]] |= Parameter 1
+
|p21= varspace: [[Namespace]], [[Object]], [[Display]], [[Control]], [[Group]], [[Location]], [[Task]], [[Team Member]], [[Display]], [[Control]] |PARAMETER1=
  
 
|p22= [name, defaultValue]: [[Array]]
 
|p22= [name, defaultValue]: [[Array]]
  
|p23= name: [[String]] - Variable name that was defined in [[setVariable]] |= Parameter 2
+
|p23= name: [[String]] - Variable name that was defined in [[setVariable]] |PARAMETER2=
  
|p24= defaultValue: [[Anything]] - Value to return if variable doesn't exist |= Parameter 3
+
|p24= defaultValue: [[Anything]] - Value to return if variable doesn't exist |PARAMETER3=
  
|r2= [[Anything]] or ''defaultValue'' if the variable doesn't exist.<br>
+
|r2= [[Anything]] - current value of the variable or ''defaultValue'' if the variable doesn't exist. |RETURNVALUE= 2
'''Note:''' If the ''varspace'' is nonexistent ([[objNull]], [[grpNull]], [[controlNull]] ..etc), return is [[nil]] |= Return value 2
 
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
|x1= <code>_thePublicVariable = _myTruck [[getVariable]] "myPublicVariable";</code> |= Example 1
+
|x1= <code>_thePublicVariable = _myTruck [[getVariable]] "myPublicVariable";</code> |EXAMPLE1=
  
|x2= <code>_aLocalVariable = _myTruck [[getVariable]] ["myLocalVariable", ["Not set", _var]<nowiki>]</nowiki> [[select]] 1;</code> |= Example 2
+
|x2= <code>_aLocalVariable = _myTruck [[getVariable]] ["myLocalVariable", ["Not set", _var]<nowiki>]</nowiki> [[select]] 1;</code> |EXAMPLE2=
  
 
|x3= <code>[[for]] "_i" [[from]] 0 [[to]] 5 [[do]] {
 
|x3= <code>[[for]] "_i" [[from]] 0 [[to]] 5 [[do]] {
Line 61: Line 60:
 
     _car [[setDamage]] 0;
 
     _car [[setDamage]] 0;
 
};</code>
 
};</code>
Sets damage of car0, car1, ..., car5 to 0. |= Example 3
+
Sets damage of car0, car1, ..., car5 to 0. |EXAMPLE3=
  
 
|x4= <code>myMissionVar = 2015;
 
|x4= <code>myMissionVar = 2015;
[[missionNamespace]] [[getVariable]] "myMissionVar";//Returns 2015</code>|= Example 4
+
[[missionNamespace]] [[getVariable]] "myMissionVar";//Returns 2015</code>|EXAMPLE4=
  
 
|x5= WARNING when using dynamic default value: <code>[[missionNamespace]] [[getVariable]] ["var", 123 [[call]] fnc_abc];
 
|x5= WARNING when using dynamic default value: <code>[[missionNamespace]] [[getVariable]] ["var", 123 [[call]] fnc_abc];
Line 75: Line 74:
 
_var = 123;
 
_var = 123;
 
};
 
};
// _var here will contain current value of the variable varName</code> |= Example 6
+
// _var here will contain current value of the variable varName</code> |EXAMPLE6=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| [[setVariable]], [[allVariables]], [[getFSMVariable]]|= See also
+
| [[setVariable]], [[allVariables]], [[getFSMVariable]]|SEEALSO=
  
 
}}
 
}}
Line 107: Line 106:
 
systemChat _test;</code>
 
systemChat _test;</code>
 
Errors because _test is undefined. Tested in A2OA 1.63.131129
 
Errors because _test is undefined. Tested in A2OA 1.63.131129
 +
</dd>
 +
</dl>
 +
<!-- DISCONTINUE Notes -->
 +
 +
<!-- CONTINUE Notes -->
 +
<dl class="command_description">
 +
<dd class="notedate">Posted on August 31, 2017 - 03:29 (UTC)</dd>
 +
<dt class="note">[[User:AgentRevolution|AgentRev]]</dt>
 +
<dd class="note">
 +
You can do typechecking using [[param]]:
 +
<code>private _myVar = [player getVariable "myVar"] param [0,"",[""]];</code>
 +
and [[params]]:
 +
<code>[player getVariable "myVar"] params [["_myVar","",[""]]];</code>
 
</dd>
 
</dd>
 
</dl>
 
</dl>
 
<!-- DISCONTINUE Notes -->
 
<!-- DISCONTINUE Notes -->

Latest revision as of 15:40, 7 April 2019

Introduced with Armed Assault version 1.00
  Arguments of this scripting command don't have to be local to the client the command is executed on

Click on the images for descriptions

Introduced in

Game:
Armed Assault
Version:
1.00

Description

Description:
Return the value of variable in the variable space assigned to various data types. In case of Alt Syntax usage in Arma 3, the default value will be returned if:
  • Requested variable is either undefined or nil
  • Variable namespace is null (objNull, grpNull, etc.)
All available data types combinations: 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 getVariable will not work.

Syntax

Syntax:
varspace getVariable name
Parameters:
varspace: Namespace, Object, Display, Control, Group, Location, Task, Team Member, Display, Control
name: String - Variable name that was defined in setVariable
Return Value:
Anything or Nothing if the variable doesn't exist

Alternative Syntax

Syntax:
varspace getVariable [name, defaultValue]
Parameters:
varspace: Namespace, Object, Display, Control, Group, Location, Task, Team Member, Display, Control
[name, defaultValue]: Array
name: String - Variable name that was defined in setVariable
defaultValue: Anything - Value to return if variable doesn't exist
Return Value:
Anything - current value of the variable or defaultValue if the variable doesn't exist.

Examples

Example 1:
_thePublicVariable = _myTruck getVariable "myPublicVariable";
Example 2:
_aLocalVariable = _myTruck getVariable ["myLocalVariable", ["Not set", _var]] select 1;
Example 3:
for "_i" from 0 to 5 do { _car = missionNamespace getVariable ("car" + str _i); _car setDamage 0; }; Sets damage of car0, car1, ..., car5 to 0.
Example 4:
myMissionVar = 2015; missionNamespace getVariable "myMissionVar";//Returns 2015
Example 5:
WARNING when using dynamic default value: missionNamespace getVariable ["var", 123 call fnc_abc]; /// fnc_abc is always called even when var is defined
Example 6:
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

Multiplayer:
-
See also:
setVariableallVariablesgetFSMVariable

Notes

Only post proven facts here. Report bugs on the feedback tracker. Use the talk page or the forums for discussions.
Add New Note | How To

Notes

Bottom Section

Posted on August 13, 2016 - 17:13 (UTC)
Ebay
NOTE: Arma 2 ONLY! In Arma 3 this will return default value. Warning: the alternative syntax returns undefined when the varspace is an object and that object is null. Example:
_test = objNull getVariable ["test","0"]; systemChat _test; Errors because _test is undefined. Tested in A2OA 1.63.131129
Posted on August 31, 2017 - 03:29 (UTC)
AgentRev
You can do typechecking using param: private _myVar = [player getVariable "myVar"] param [0,"",[""]]; and params: [player getVariable "myVar"] params [["_myVar","",[""]]];