isKindOf: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
(25 intermediate revisions by 15 users not shown) | |||
Line 7: | Line 7: | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| Checks whether the object is of the given type. |= Description | | Checks whether the object is (a subtype) of the given type. While main syntax and alt syntax support only CfgVehicles, CfgAmmo and CfgNonAIVehicles, alt syntax 2 allows to specify any config, including mission config. |= Description | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Line 17: | Line 17: | ||
| [[Boolean]] |= Return value | | [[Boolean]] |= Return value | ||
|s2= typeName1 '''isKindOf''' typeName2 |= Alternative Syntax | |||
|p21= typeName1: [[String]]|= Parameter 1 | |||
|p22= typeName2: [[String]]|= Parameter 2 | |||
|r2= [[Boolean]] |= Return value | |||
|s3= typeName1 '''isKindOf''' [typeName2, targetConfig] (''since Arma 3 v1.47'') |= Alternative Syntax | |||
|p41= typeName1: [[String]]|= Parameter 1 | |||
|p42 = [typeName2, targetConfig]: - [[Array]]|= Parameter 2 | |||
|p43= typeName2: [[String]]|= Parameter 3 | |||
|p44= targetConfig: [[Config]]|= Parameter 4 | |||
|r3= [[Boolean]] |= Return value | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
|x1= <code>[[vehicle]] [[player]] isKindOf "Tank"</code> |= Example 1 | |x1= <code>[[vehicle]] [[player]] [[isKindOf]] "Tank";</code> |= Example 1 | ||
|x2= <code>"BMP2" [[isKindOf]] "Tank";</code> |= Example 2 | |||
|x3= <code>[[currentWeapon]] [[player]] [[isKindOf]] ["Rifle", [[configFile]] >> "CfgWeapons"];</code> |= Example 2 | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| [[countType]], [[typeOf]] |= See also | | [[countType]], [[typeOf]], [[inheritsFrom]], [[configHierarchy]], [[ArmA_2:_CfgVehicles | Arma 2 CfgVehicles]] |= See also | ||
}} | }} | ||
Line 29: | Line 54: | ||
<dl class="command_description"> | <dl class="command_description"> | ||
<!-- Note Section BEGIN --> | <!-- Note Section BEGIN --> | ||
<dd class="notedate">Posted on April 23, 2007 - 16:34 | |||
<dt class="note">'''[[User:Kronzky|Kronzky]]''' | <dd class="notedate">Posted on April 23, 2007 - 16:34 | ||
<dd class="note">This command can be used on the whole [[ArmA: CfgVehicles|hierarchical class tree]] (i.e. when checking a [[ArmA:_Vehicles#Wheeled|HMMWV]], one could test for "HMMWV50", "Car", "LandVehicle", etc., all of which would return [[true]].)< | <dt class="note">'''[[User:Kronzky|Kronzky]]''' | ||
<dd class="note">This command can be used on the whole [[ArmA: CfgVehicles|hierarchical class tree]] (i.e. when checking a [[ArmA:_Vehicles#Wheeled|HMMWV]], one could test for "HMMWV50", "Car", "LandVehicle", etc., all of which would return [[true]].) | |||
<dd class="notedate">Posted on 16 Apr, 2008 | |||
<dt class="note">[[User:Dr_Eyeball|Dr_Eyeball]] | |||
<dd class="note">It appears [[isKindOf]] is limited to the [[ArmA:_CfgVehicles|CfgVehicles]] branch of the class hierachy.<br> | |||
So CfgWeapons, CfgMagazines, etc will return [[false]] for checks like: | |||
("M9" isKindOf "Pistol") returns false | |||
<br> | |||
<dd class="notedate">Posted on 8 Nov, 2009 | |||
<dt class="note">[[User:WGL.Q|.kju]] | |||
<dd class="note">In a2 [[isKindOf]] also works for CfgAmmo in addition to CfgVehicles: ("M_9M311_AA" isKindOf "MissileBase") returns true. NOT for CfgWeapons, CfgMagazines and others.. | |||
<br> | |||
<!-- Note Section END --> | <!-- Note Section END --> | ||
</dl> | </dl> | ||
Line 39: | Line 80: | ||
[[Category:Scripting Commands OFP Elite |ISKINDOF]] | [[Category:Scripting Commands OFP Elite |ISKINDOF]] | ||
[[Category:Scripting Commands ArmA|ISKINDOF]] | [[Category:Scripting Commands ArmA|ISKINDOF]] | ||
[[Category:Command_Group:_Object_Information|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]] | |||
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]] | |||
<!-- CONTINUE Notes --> | |||
<dl class="command_description"> | |||
<dd class="notedate">Posted on June 16, 2015 - 17:54 (UTC)</dd> | |||
<dt class="note">[[User:James|James]]</dt> | |||
<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: | |||
<code> _isKindOf = "Rifle" [[in]] [([[configFile]] >> "CfgWeapons" >> "BWA3_G36K"),[[true]]<nowiki>]</nowiki> [[call]] [[BIS_fnc_returnParents]]; // is true</code> | |||
</dd> | |||
</dl> | |||
<!-- DISCONTINUE Notes --> | |||
<!-- CONTINUE Notes --> | |||
<dl class="command_description"> | |||
<dd class="notedate">Posted on September 6, 2015 - 22:21 (UTC)</dd> | |||
<dt class="note">[[User:Basstard|Basstard]]</dt> | |||
<dd class="note"> | |||
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 /> | |||
<code>bool = "CA_Magazine" in ([([[configFile]] >> "CfgMagazines" >> "HandGrenade"),true] [[call]] [[BIS_fnc_returnParents]]); --> 0.12111ms</code> | |||
<code>bool = "HandGrenade" [[isKindOf]] ["CA_Magazine", [[configFile]] >> "CfgMagazines"]; --> 0.00439453ms</code><br /> | |||
When checking in [[CfgVehicles]] the syntax from example 2 performs a little faster. | |||
</dd> | |||
</dl> | |||
<!-- DISCONTINUE Notes --> |
Revision as of 00:21, 7 September 2015
Description
- Description:
- Checks whether the object is (a subtype) of the given type. While main syntax and alt syntax support only CfgVehicles, CfgAmmo and CfgNonAIVehicles, alt syntax 2 allows to specify any config, including mission config.
- Groups:
- Uncategorised
Syntax 1
Syntax 2
- Syntax:
- typeName1 isKindOf typeName2
- Parameters:
- typeName1: String
- typeName2: String
- Return Value:
- Boolean
Syntax 3
- Syntax:
- typeName1 isKindOf [typeName2, targetConfig] (since Arma 3 v1.47)
- Parameters:
- typeName1: String
- [typeName2, targetConfig]: - Array
- 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
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 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..
Bottom Section
- 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 Arma version 1.00
- Arma: New Scripting Commands
- Arma: Scripting Commands
- Command Group: Uncategorised
- Scripting Commands OFP Elite
- Scripting Commands ArmA
- Command Group: Object Information
- Scripting Commands ArmA2
- Scripting Commands Arma 3
- Scripting Commands Take On Helicopters