configClasses: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "<code>$1$2$3</code>") |
Killzone Kid (talk | contribs) No edit summary |
||
(23 intermediate revisions by 2 users not shown) | |||
Line 20: | Line 20: | ||
|p2= config: [[Config]] | |p2= config: [[Config]] | ||
|r1= [[Array]] - Array of [[Config]]s | |r1= [[Array]] - array of [[Config]]s | ||
|s2= [[configClasses]] [config, depth, includeInherited, allSubclasses, classNames] | |||
|s2since= arma3 2.22 | |||
|p21= config: [[Config]] - target config | |||
|p22= depth: [[Number]] - how many levels of subclasses to go deep | |||
|p23= includeInherited: [[Boolean]] - [[true]] to look through inherited classes | |||
|p24= allSubclasses: [[Boolean]] - [[true]] to return all subclasses, [[false]] - to return only the last tier. | |||
|p25= classnames: (Optional) [[Boolean]] - when [[true]] class names [[String]]s are retuned, when [[false]] - [[Config]]s are returned. Default: [[false]] | |||
|r2= [[Array]] - array of [[Config]]s or [[Strings]], which represent class names. | |||
|x1= collect all CfgVehicles configs: | |x1= collect all CfgVehicles configs: | ||
< | <sqf>_configs = "true" configClasses (configFile >> "CfgVehicles");</sqf> | ||
|x2= Return all classes that can transport 10 and more soldiers: | |x2= Return all classes that can transport 10 and more soldiers: | ||
< | <sqf>_transporters = "getNumber (_x >> 'transportSoldier') >= 10" configClasses (configFile >> "CfgVehicles");</sqf> | ||
|x3= Return all classes that inherit from 'RscText': | |x3= Return all classes that inherit from 'RscText': | ||
< | <sqf>hint str ("inheritsFrom _x == (configFile >> 'RscText')" configClasses configFile);</sqf> | ||
|x4= Return children: | |||
<sqf>configClasses [configFile >> "CfgGroups", 0, true, true, true] | |||
//Returns ["West","East","Indep","Empty"]</sqf> | |||
|seealso= [[Config]] [[configFile]] [[missionConfigFile]] [[configProperties]] [[configHierarchy]] | |seealso= [[Config]] [[configFile]] [[missionConfigFile]] [[configProperties]] [[configHierarchy]] [[BIS_fnc_returnChildren]] | ||
}} | }} | ||
Line 38: | Line 54: | ||
|timestamp= 20141019122400 | |timestamp= 20141019122400 | ||
|text= A fantastic way to filter stuff. eg: | |text= A fantastic way to filter stuff. eg: | ||
< | <sqf> | ||
// create an array of west vehicles and spawn then in front of the player in rows of 5 | |||
private ["_cfgArray", "_xPos", "_yPos", "_veh"]; | |||
_cfgArray = "( | _cfgArray = "( | ||
( | (getNumber (_x >> 'scope') >= 2) && | ||
{ | { | ||
getNumber (_x >> 'side') == 1 && | |||
{ getText (_x >> 'vehicleClass') | { getText (_x >> 'vehicleClass') in ['Armored', 'Car', 'Air'] } | ||
} | } | ||
)" | )" configClasses (configFile >> "CfgVehicles"); | ||
_xPos = 0; | _xPos = 0; | ||
Line 55: | Line 72: | ||
{ | { | ||
_yPos = _yPos + 20; | _yPos = _yPos + 20; | ||
_veh = | _veh = createVehicle [(configName _x), player modelToWorld [_xPos, _yPos, 0], [], 0, "NONE"]; | ||
if (_yPos >= 100) then | |||
{ | { | ||
_yPos = 0; | _yPos = 0; | ||
_xPos = _xPos + 20; | _xPos = _xPos + 20; | ||
}; | }; | ||
} | } forEach _cfgArray; | ||
</sqf> | |||
}} | }} | ||
Line 68: | Line 86: | ||
|timestamp= 20160528202800 | |timestamp= 20160528202800 | ||
|text= [[configClasses]] does not account for inherited subclasses, use [[configProperties]] with [[isClass]] filter instead | |text= [[configClasses]] does not account for inherited subclasses, use [[configProperties]] with [[isClass]] filter instead | ||
< | <sqf>configProperties [_config, "isClass _x", true];</sqf> | ||
}} | }} | ||
{{Note | {{Note | ||
|user= | |user= Nelis75733126 | ||
|timestamp= 20170528091800 | |timestamp= 20170528091800 | ||
|text= this will get a list of ALL locations on the currently loaded world | |text= this will get a list of ALL locations on the currently loaded world | ||
< | <sqf> | ||
( "true" configClasses (configFile >> "CfgWorlds" >> worldName >> "names" ) ) apply { | |||
// change each config entry into a location | |||
nearestLocation [ | |||
getArray ( _x >> "position" ), | |||
getText ( _x >> "type" ) | |||
] | ] | ||
};</ | }; | ||
</sqf> | |||
}} | }} |
Latest revision as of 11:49, 13 October 2025
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:
- Config
Syntax
- Syntax:
- condition configClasses config
- Parameters:
- condition: String
- config: Config
- Return Value:
- Array - array of Configs
Alternative Syntax
- Syntax:
- configClasses [config, depth, includeInherited, allSubclasses, classNames]
- Parameters:
- config: Config - target config
- depth: Number - how many levels of subclasses to go deep
- includeInherited: Boolean - true to look through inherited classes
- allSubclasses: Boolean - true to return all subclasses, false - to return only the last tier.
- classnames: (Optional) Boolean - when true class names Strings are retuned, when false - Configs are returned. Default: false
- Return Value:
- Array - array of Configs or Strings, which represent class names.
Examples
- Example 1:
- collect all CfgVehicles configs:
- 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':
- Example 4:
- Return children:
configClasses [configFile >> "CfgGroups", 0, true, true, true] //Returns ["West","East","Indep","Empty"]
Additional Information
- See also:
- Config configFile missionConfigFile configProperties configHierarchy BIS_fnc_returnChildren
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
- Posted on Oct 19, 2014 - 12:24 (UTC)
-
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;
- Posted on May 28, 2016 - 20:28 (UTC)
-
configClasses does not account for inherited subclasses, use configProperties with isClass filter instead
- Posted on May 28, 2017 - 09:18 (UTC)
- this will get a list of ALL locations on the currently loaded world