getVariable: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
m (template:command argument fix)
(10 intermediate revisions by 3 users not shown)
Line 7: Line 7:
____________________________________________________________________________________________
____________________________________________________________________________________________


| Return the value of variable in the variable space of given object or location. In case of Alt Syntax usage in Arma 3, the default value will be returned if:
| 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]]
* Requested variable is either undefined or [[nil]]
* Variable namespace is null ([[objNull]], [[grpNull]], etc.)  
* Variable namespace is null ([[objNull]], [[grpNull]], etc.)  
Line 20: Line 20:
* [[Team_Member]] getVariable [[Array]]
* [[Team_Member]] getVariable [[Array]]
* [[Task]] getVariable [[String]]
* [[Task]] getVariable [[String]]
* [[Task]] getVariable [[Array]] (Since Arma 3 v1.67)
* [[Location]] getVariable [[String]]
* [[Location]] getVariable [[String]]
* [[Location]] getVariable [[Array]] (Since Arma 3 v1.67)
* [[Control]] getVariable [[String]] (since Arma 3 v1.55.133553)
* [[Control]] getVariable [[String]] (since Arma 3 v1.55.133553)
* [[Control]] getVariable [[Array]] (since Arma 3 v1.55.133553)
* [[Control]] getVariable [[Array]] (since Arma 3 v1.55.133553)
* [[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)|= Description
* [[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=
____________________________________________________________________________________________
____________________________________________________________________________________________


| varspace '''getVariable''' name |= Syntax
| varspace '''getVariable''' name |SYNTAX=


|p1= varspace: [[Namespace]], [[Object]], [[Display]], [[Control]], [[Group]], [[Location]], [[Task]] or [[Team Member]] |= 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]] or [[Team Member]] |= Parameter 1
|p21= varspace: [[Namespace]], [[Object]], [[Display]], [[Control]], [[Group]], [[Location]], [[Task]], [[Team Member]], [[Display]], [[Control]] |PARAMETER1=


|p22= name: [[String]] - Variable name that was defined in [[setVariable]] |= Parameter 2
|p22= [name, defaultValue]: [[Array]]


|p23= defaultValue: [[Anything]] - Value to return if variable doesn't exist |= Parameter 3
|p23= name: [[String]] - Variable name that was defined in [[setVariable]] |PARAMETER2=


|r2= [[Anything]] or ''defaultValue'' if the variable doesn't exist.<br>
|p24= defaultValue: [[Anything]] - Value to return if variable doesn't exist |PARAMETER3=
'''Note:''' If the ''varspace'' is nonexistent ([[objNull]], [[grpNull]], [[controlNull]] ..etc), return is [[nil]] |= Return value 2
 
|r2= [[Anything]] - current value of the variable or ''defaultValue'' if the variable doesn't exist. |RETURNVALUE= 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 56: 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 70: 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]] |= See also
| [[setVariable]], [[allVariables]], [[getFSMVariable]]|SEEALSO=


}}
}}
Line 102: 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 -->

Revision as of 15:40, 7 April 2019

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

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.
Groups:
Uncategorised

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

See also:
setVariableallVariablesgetFSMVariable

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

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","",[""]]];