configClasses: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(note simplified)
(note moved to talk)
Line 33: Line 33:
<h3 style="display:none">Notes</h3>
<h3 style="display:none">Notes</h3>
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on oct 19, 2014 - 12:24</dd>
<dd class="notedate">Posted on Jul 19, 2014 - 20:08
<dt class="note">'''[[User:(Iceman77|Iceman77]]'''</dt>
<dt class="note">'''[[User:ffur2007slx2_5|ffur2007slx2_5]]'''<dd class="note">
(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>
_faces = "[[true]]" [[configClasses]] ([[configFile]] >> "Cfgfaces");
//same as: _faces = (configfile >> "CfgFaces") [[call]] [[BIS_fnc_getCfgSubClasses]];
</code>
<code>
//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]];*/
</code>
Return nested subclasses, currently still [[BIS_fnc_returnChildren]]
<code>
//Return all nested config classes.<br>
[([[configFile]] >> "CfgFaces"),1, [[true]], [[true]] ] [[call]] [[BIS_fnc_returnChildren]];
</code>
 
<dd class="notedate">Posted on oct 19, 2014 - 12:24
<dt class="note">'''[[User:(Iceman77|Iceman77]]'''<dd class="note">
<dd class="note"> A fantastic way to filter stuff. eg; Create an array of west vehicles and spawn then in front of the player in rows of 5
<dd class="note"> A fantastic way to filter stuff. eg; Create an array of west vehicles and spawn then in front of the player in rows of 5
<code>
<code>
Line 88: Line 62:


<!-- Note Section END -->
<!-- Note Section END -->
 
</dd>
</dl>
</dl>



Revision as of 00:34, 29 May 2016

Hover & click on the images for description

Description

Description:
Returns an array of config entries which meet criteria in condition code. Command iterates through all available config sub classes of the given config class. Current looked at config is stored in _x variable (similar to alternative count command implementation). Condition has to return true in order for the looked at config to be added to the resulting array.
The condition code passed to configClasses should only be used for simple filter expressions and nothing more
Groups:
Uncategorised

Syntax

Syntax:
condition configClasses config
Parameters:
condition: String
config: Config
Return Value:
Array - Array of Configs

Examples

Example 1:
collect all CfgVehicles configs: _configs = "true" configClasses (configFile >> "CfgVehicles");
Example 2:
Return all classes that can transport 10 and more soldiers: _transporters = "getNumber (_x >> 'transportSoldier') >= 10" configClasses (configFile >> "CfgVehicles");
Example 3:
Return all classes that inherit from 'RscText': hint str ("inheritsFrom _x == (configFile >> 'RscText')" configClasses configFile);

Additional Information

See also:
ConfigconfigFilemissionConfigFileconfigPropertiesconfigHierarchy

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

Posted on oct 19, 2014 - 12:24
Iceman77
A fantastic way to filter stuff. eg; Create an array of west vehicles and spawn then in front of the player in rows of 5 private ["_cfgArray","_xPos","_yPos","_veh"]; _cfgArray = "( (getNumber (_x >> 'scope') >= 2) && {getNumber (_x >> 'side') == 1 && {getText (_x >> 'vehicleClass') in ['Armored', 'Car', 'Air'] } } )" configClasses (configFile >> "CfgVehicles"); _xPos = 0; _yPos = 0; { _yPos = _yPos + 20; _veh = createVehicle [ ( configName _x ), player modelToWorld [_xPos, _yPos, 0], [], 0, "None"]; if (_yPos >= 100) then { _yPos = 0; _xPos = _xPos + 20; }; } forEach _cfgArray;

Bottom Section

Posted on May 28, 2016 - 20:28 (UTC)
Benargee
configClasses does not account for inherited subclasses, use configProperties with isClass filter instead configProperties [_config, "isClass _x", true];