configClasses: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "|= Game version" to "|Game version=") |
Lou Montana (talk | contribs) |
||
Line 5: | Line 5: | ||
|1.24|Game version= | |1.24|Game version= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | 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. Slightly faster than [[configProperties]], but doesn't account for config properties or inherited entries. | ||
<br><br>{{warning| The condition code passed to [[configClasses]] should only be used for '''simple filter expressions''' and nothing more}} |DESCRIPTION= | <br><br>{{warning| The condition code passed to [[configClasses]] should only be used for '''simple filter expressions''' and nothing more.}} |DESCRIPTION= | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| condition | | condition [[configClasses]] config |SYNTAX= | ||
|p1= condition: [[String]] |PARAMETER1= | |p1= condition: [[String]] |PARAMETER1= | ||
|p2= config: [[Config]] | | |||
|p2= config: [[Config]] |PARAMETER2= | |||
| [[Array]] - Array of [[Config]]s |RETURNVALUE= | | [[Array]] - Array of [[Config]]s |RETURNVALUE= | ||
Line 28: | Line 28: | ||
| [[Config]], [[configFile]], [[missionConfigFile]], [[configProperties]], [[configHierarchy]] |SEEALSO= | | [[Config]], [[configFile]], [[missionConfigFile]], [[configProperties]], [[configHierarchy]] |SEEALSO= | ||
}} | }} | ||
Line 34: | Line 33: | ||
<dl class="command_description"> | <dl class="command_description"> | ||
<dd class="notedate">Posted on oct 19, 2014 - 12:24</dd> | <dd class="notedate">Posted on oct 19, 2014 - 12:24</dd> | ||
<dt class="note"> | <dt class="note">[[User:(Iceman77|Iceman77]]</dt> | ||
<dd class="note"> A fantastic way to filter stuff. eg; | <dd class="note"> A fantastic way to filter stuff. eg: | ||
<code> | ; create an array of west vehicles and spawn then in front of the player in rows of 5 | ||
private ["_cfgArray","_xPos","_yPos","_veh"]; | <code>[[private]] ["_cfgArray", "_xPos", "_yPos", "_veh"]; | ||
_cfgArray = "( | _cfgArray = "( | ||
([[getNumber]] (_x >> 'scope') >= 2) && | |||
{ | |||
[[getNumber]] (_x >> 'side') == 1 && | |||
{ getText (_x >> 'vehicleClass') [[in]] ['Armored', 'Car', 'Air'] } | |||
} | |||
)" configClasses (configFile >> "CfgVehicles"); | )" [[configClasses]] ([[configFile]] >> "CfgVehicles"); | ||
_xPos = 0; | _xPos = 0; | ||
Line 52: | Line 51: | ||
{ | { | ||
_yPos = _yPos + 20; | _yPos = _yPos + 20; | ||
_veh = createVehicle [ ( configName _x ), player modelToWorld [_xPos, _yPos, 0], [], 0, "None"]; | _veh = [[createVehicle]] [([[configName]] _x), [[player]] [[modelToWorld]] [_xPos, _yPos, 0], [], 0, "None"]; | ||
if (_yPos >= 100) then { | [[if]] (_yPos >= 100) [[then]] { | ||
_yPos = 0; | _yPos = 0; | ||
_xPos = _xPos + 20; | _xPos = _xPos + 20; | ||
}; | }; | ||
} forEach _cfgArray; | } [[forEach]] _cfgArray;</code> | ||
</code> | |||
<!-- Note Section END --> | <!-- Note Section END --> | ||
Line 80: | Line 77: | ||
<code>[[configProperties]] [_config, "[[isClass]] _x", [[true]]];</code> | <code>[[configProperties]] [_config, "[[isClass]] _x", [[true]]];</code> | ||
</dd> | </dd> | ||
<dd class="notedate">Posted on May 28, 2017 - 09:18 (UTC)</dd> | <dd class="notedate">Posted on May 28, 2017 - 09:18 (UTC)</dd> | ||
<dt class="note">[[User:IT07|IT07]]</dt> | <dt class="note">[[User:IT07|IT07]]</dt> | ||
<dd class="note"> | <dd class="note"> | ||
this will get a list of ALL locations on the currently loaded world | this will get a list of ALL locations on the currently loaded world | ||
<code>( "true" configClasses ( configFile >> "CfgWorlds" >> worldName >> "names" ) ) apply { | <code>( "true" [[configClasses]] ([[configFile]] >> "CfgWorlds" >> worldName >> "names" ) ) [[apply]] { | ||
{{cc|change each config entry into a location}} | |||
nearestLocation [ | [[nearestLocation]] [ | ||
getArray ( _x >> "position" ), | [[getArray]] ( _x >> "position" ), | ||
getText ( _x >> "type" ) | [[getText]] ( _x >> "type" ) | ||
] | ] | ||
};</code> | };</code> |
Revision as of 15:43, 3 September 2019
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. Slightly faster than configProperties, but doesn't account for config properties or inherited entries.
- 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
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];
- Posted on May 28, 2017 - 09:18 (UTC)
- IT07
-
this will get a list of ALL locations on the currently loaded world
( "true" configClasses (configFile >> "CfgWorlds" >> worldName >> "names" ) ) apply { // change each config entry into a location nearestLocation [ getArray ( _x >> "position" ), getText ( _x >> "type" ) ] };