isKindOf: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "<code>$1$2$3</code>") |
Lou Montana (talk | contribs) m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "<code>$1$2$3</code>") |
||
Line 52: | Line 52: | ||
|r3= [[Boolean]] | |r3= [[Boolean]] | ||
|x1= <code>vehicle | |x1= <code>vehicle player [[isKindOf]] "Tank";</code> | ||
|x2= <code>"BMP2" isKindOf "Tank";</code> | |x2= <code>"BMP2" isKindOf "Tank";</code> | ||
|x3= <code>currentWeapon | |x3= <code>currentWeapon player [[isKindOf]] ["Rifle", [[configFile]] >> "CfgWeapons"];</code> | ||
|seealso= [[typeOf]] [[countType]] [[inheritsFrom]] [[configHierarchy]] | |seealso= [[typeOf]] [[countType]] [[inheritsFrom]] [[configHierarchy]] | ||
Line 87: | Line 87: | ||
<dd class="note"> | <dd class="note"> | ||
In case you cannot use [[isKindOf]] because of the reasons stated, just use [[BIS fnc returnParents]] with class names as return value: | In case you cannot use [[isKindOf]] because of the reasons stated, just use [[BIS fnc returnParents]] with class names as return value: | ||
<code>_isKindOf = "Rifle" in [( | <code>_isKindOf = "Rifle" in [(configFile >> "CfgWeapons" >> "BWA3_G36K"), [[true]]<nowiki>]</nowiki> [[call]] [[BIS_fnc_returnParents]]; {{cc|is true`}}</code> | ||
</dd> | </dd> | ||
Line 96: | Line 96: | ||
In A3 [[isKindOf]] works well with CfgWeapons and CfgMagazines using the syntax from example 3.<br> | In A3 [[isKindOf]] works well with CfgWeapons and CfgMagazines using the syntax from example 3.<br> | ||
It should be prefered to James' solution as it performs more than 25x faster. Tested in debug console with the following code snippets:<br> | It should be prefered to James' solution as it performs more than 25x faster. Tested in debug console with the following code snippets:<br> | ||
<code>bool = "CA_Magazine" in ([(configFile >> "CfgMagazines" >> "HandGrenade"),true] | <code>bool = "CA_Magazine" in ([(configFile >> "CfgMagazines" >> "HandGrenade"),true] call [[BIS_fnc_returnParents]]); --> 0.12111ms</code> | ||
<code>bool = "HandGrenade" isKindOf ["CA_Magazine", | <code>bool = "HandGrenade" isKindOf ["CA_Magazine", configFile >> "CfgMagazines"]; --> 0.00439453ms</code> | ||
When checking in [[CfgVehicles]] the syntax from example 2 performs a little faster. | When checking in [[CfgVehicles]] the syntax from example 2 performs a little faster. | ||
</dd> | </dd> | ||
</dl> | </dl> |
Revision as of 11:10, 12 May 2022
Description
- Description:
- Checks whether the given object or type is (a subtype) of the given type.
While Syntax 1 and Syntax 2 only support CfgVehicles, CfgAmmo and CfgNonAIVehicles, Syntax 3 can be used with any config, including the mission config. - Groups:
- Object Manipulation
Syntax 1
Syntax 2
- Syntax:
- typeName1 isKindOf typeName2
- Parameters:
- typeName1: String
- typeName2: String
- Return Value:
- Boolean
Syntax 3
- Syntax:
- typeName1 isKindOf [typeName2, targetConfig]
- Parameters:
- typeName1: String
- typeName2: String
- targetConfig: Config
- Return Value:
- Boolean
Examples
- Example 1:
vehicle player isKindOf "Tank";
- Example 2:
"BMP2" isKindOf "Tank";
- Example 3:
currentWeapon player isKindOf ["Rifle", configFile >> "CfgWeapons"];
Additional Information
- See also:
- typeOf countType inheritsFrom configHierarchy
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 April 23, 2007 - 16:34
- Kronzky
- This command can be used on the whole hierarchical class tree (i.e. when checking a HMMWV, one could test for "HMMWV50", "Car", "LandVehicle", etc., all of which would return true.)
- Posted on 16 Apr, 2008
- Dr_Eyeball
- It appears isKindOf is limited to the CfgVehicles branch of the class hierachy.
So CfgWeapons, CfgMagazines, etc will return false for checks like: ("M9" isKindOf "Pistol") returns false - Posted on 8 Nov, 2009
- .kju
- In a2 isKindOf also works for CfgAmmo in addition to CfgVehicles: ("M_9M311_AA" isKindOf "MissileBase") returns true. NOT for CfgWeapons, CfgMagazines and others..
- Posted on June 16, 2015 - 17:54 (UTC)
- James
-
In case you cannot use isKindOf because of the reasons stated, just use BIS fnc returnParents with class names as return value:
_isKindOf = "Rifle" in [(configFile >> "CfgWeapons" >> "BWA3_G36K"), true] call BIS_fnc_returnParents; // is true`
- Posted on September 6, 2015 - 22:21 (UTC)
- Basstard
-
In A3 isKindOf works well with CfgWeapons and CfgMagazines using the syntax from example 3.
It should be prefered to James' solution as it performs more than 25x faster. Tested in debug console with the following code snippets:
bool = "CA_Magazine" in ([(configFile >> "CfgMagazines" >> "HandGrenade"),true] call BIS_fnc_returnParents); --> 0.12111ms
bool = "HandGrenade" isKindOf ["CA_Magazine", configFile >> "CfgMagazines"]; --> 0.00439453ms
When checking in CfgVehicles the syntax from example 2 performs a little faster.
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint: Elite version 1.00
- Operation Flashpoint: Elite: New Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Object Manipulation