Difference between revisions of "configFile"

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "Category:Scripting Commands ArmA2" to "Category:Scripting Commands Arma 2")
 
(12 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Command|= Comments
+
{{Command|Comments=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| arma |= Game name
+
| arma |Game name=
  
|1.00|= Game version
+
|1.00|Game version=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
 
| Return root of config entries hierarchy.<br />
 
| Return root of config entries hierarchy.<br />
See [[AllInOne Config]] for a full config extract as example. |= Description
+
See [[AllInOne Config]] for a full config extract as example. |DESCRIPTION=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| [[Config]] <nowiki>=</nowiki> '''configFile''' |= Syntax
+
| [[Config]] <nowiki>=</nowiki> '''configFile''' |SYNTAX=
  
| [[Config]] |= Return value
+
| [[Config]] |RETURNVALUE=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
|x1= <code>_isMyClassActive = [[isClass]] ([[configFile]] / "CfgPatches" / "MyClass");</code> |= Example 1
+
|x1= <code>_isMyClassActive = [[isClass]] ([[configFile]] / "CfgPatches" / "MyClass");</code> |EXAMPLE1=
 
____________________________________________________________________________________________
 
____________________________________________________________________________________________
  
| [[missionConfigFile]], [[campaignConfigFile]], [[config/name]], [[config greater greater name|config >> name]], [[configName]], [[count]], [[getArray]], [[getText]], [[getNumber]], [[inheritsFrom]], [[isArray]], [[isClass]], [[isNumber]], [[isText]], [[select]] |= See also
+
| [[configClasses]], [[configProperties]], [[missionConfigFile]], [[campaignConfigFile]], [[config/name]], [[config greater greater name|config >> name]], [[configName]], [[count]], [[getArray]], [[getText]], [[getNumber]], [[inheritsFrom]], [[isArray]], [[isClass]], [[isNumber]], [[isText]], [[select]], [[configHierarchy]], [[getMissionConfigValue]] |SEEALSO=
  
 
}}
 
}}
Line 26: Line 26:
 
<dl class="command_description">
 
<dl class="command_description">
 
<!-- Note Section BEGIN -->
 
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on Apr 3, 2014 - 00:37
+
<dd class="notedate">Posted on Jul 19, 2014 - 20:08
 
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
 
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
In ArmA3 ver 1.14 there’re several comfortable workarounds with [[configFile]] for collecting subclasses. As for traditional workaround like:
+
(ArmA3 1.24) It is recommended to use [[configClasses]] instead of [[BIS_fnc_getCfgSubClasses]] and [[BIS_fnc_uniqueClasses]] on subclasses collection or conditional selection.
 
<code>
 
<code>
(configfile >> "CfgFaces") call {
+
_faces = "[[true]]" [[configClasses]] ([[configFile]] >> "Cfgfaces");
  private ["_classes"];
+
//same as: _faces = (configfile >> "CfgFaces") [[call]] [[BIS_fnc_getCfgSubClasses]];
  _classes = [];
 
  for "_i" from 0 to ((count _this) - 1) do 
 
  {
 
    if (isClass (_this select _i)) then
 
  {
 
  _classes set [count _classes, configName (_this select _i)];
 
  };
 
  };
 
  _classes
 
};
 
//return: ["Default"……"O_Colonel"] 8 items
 
 
</code>
 
</code>
Alternative recommended workaround by using: [[BIS_fnc_getCfgSubClasses]] e.g.
 
 
<code>
 
<code>
(configfile >> "CfgFaces") call BIS_fnc_getCfgSubClasses
+
//Extract all animals:
//Same as traditional workaround
+
animals = "(([[configName]] _x) [[isKindOf]] 'animal')" [[configClasses]] ([[configFile]] >> "CfgVehicles");
 +
/*same as:
 +
aniamls = [];
 +
[([[configFile]] >> "CfgVehicles"),{
 +
[[if]] (([[configName]] _this) [[isKindOf]] “animal”) [[then]] {
 +
  animals [[set]] [ [[count]] animals, _this]
 +
  }
 +
}
 +
] [[call]] [[BIS_fnc_uniqueClasses]];*/
 
</code>
 
</code>
Another powerful replacement is using [[BIS_fnc_returnChildren]] to collect grandchildren classes with desired level, e.g.
+
Return nested subclasses, currently still [[BIS_fnc_returnChildren]]
 
<code>
 
<code>
[(configfile >> "CfgFaces"),1,true,true] call BIS_fnc_returnChildren;
+
//Return all nested config classes.<br>
//Return all children faces with a total number at 68
+
[([[configFile]] >> "CfgFaces"),1, [[true]], [[true]] ] [[call]] [[BIS_fnc_returnChildren]];
</code>
 
And as for another advanced workaround for direct processing collected classes, use [[BIS_fnc_uniqueClasses]]. E.g.
 
<code>
 
my_array = [];
 
[(configfile >> "BombCrater"),
 
  {
 
    my_array set [count my_array,(_this select 2) call bis_fnc_getcfgdata]
 
  }
 
] call BIS_fnc_uniqueClasses;
 
//return [[0,0,0],[0,0,0],[0,0,0]]
 
 
</code>
 
</code>
 
<!-- Note Section END -->
 
<!-- Note Section END -->
Line 71: Line 57:
 
[[Category:Scripting Commands|CONFIGFILE]]
 
[[Category:Scripting Commands|CONFIGFILE]]
 
[[Category:Scripting Commands ArmA|CONFIGFILE]]
 
[[Category:Scripting Commands ArmA|CONFIGFILE]]
[[Category:Command_Group:_System_Commands|{{uc:{{PAGENAME}}}}]]
+
[[Category:Command Group: Config|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
+
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]
 
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]

Latest revision as of 22:54, 9 January 2020

Introduced with Armed Assault version 1.001.00
Hover & click on the images for descriptions

Description

Description:
Return root of config entries hierarchy.
See AllInOne Config for a full config extract as example.

Syntax

Syntax:
Config = configFile
Return Value:
Config

Examples

Example 1:
_isMyClassActive = isClass (configFile / "CfgPatches" / "MyClass");

Additional Information

See also:
configClassesconfigPropertiesmissionConfigFilecampaignConfigFileconfig/nameconfig >> nameconfigNamecountgetArraygetTextgetNumberinheritsFromisArrayisClassisNumberisTextselectconfigHierarchygetMissionConfigValue

Notes

i
Only post proven facts here. Report bugs on the feedback tracker. Use the Talk page or the Forums for discussions.

Notes

Posted on Jul 19, 2014 - 20:08
ffur2007slx2_5
(ArmA3 1.24) It is recommended to use configClasses instead of BIS_fnc_getCfgSubClasses and BIS_fnc_uniqueClasses on subclasses collection or conditional selection. _faces = "true" configClasses (configFile >> "Cfgfaces"); //same as: _faces = (configfile >> "CfgFaces") call BIS_fnc_getCfgSubClasses; //Extract all animals: animals = "((configName _x) isKindOf 'animal')" configClasses (configFile >> "CfgVehicles"); /*same as: aniamls = []; [(configFile >> "CfgVehicles"),{ if ((configName _this) isKindOf “animal”) then { animals set [ count animals, _this] } } ] call BIS_fnc_uniqueClasses;*/ Return nested subclasses, currently still BIS_fnc_returnChildren //Return all nested config classes.
[(configFile >> "CfgFaces"),1, true, true ] call BIS_fnc_returnChildren;

Bottom Section