isKindOf: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "[[Category:Scripting Commands ArmA|" to "[[Category:Scripting Commands Armed Assault|")
m (Fix parameters)
Line 28: Line 28:
____________________________________________________________________________________________
____________________________________________________________________________________________


|s3=  typeName1 [[isKindOf]] [typeName2, targetConfig]        (''Since {{arma3}} v1.47'') |Alternative Syntax2=
|s3=  typeName1 [[isKindOf]] [typeName2, targetConfig] {{since|arma3|1.47|y}} |Alternative Syntax2=


|p31= typeName1: [[String]]|PARAMETER31=
|p41= typeName1: [[String]]|PARAMETER41=


|p32 = [typeName2, targetConfig]: - [[Array]]|PARAMETER32=
|p42= typeName2: [[String]]|PARAMETER42=


|p33= typeName2: [[String]]|PARAMETER33=
|p43= targetConfig: [[Config]]|PARAMETER43=
 
|p34= targetConfig: [[Config]]|PARAMETER34=


|r3= [[Boolean]] |RETURNVALUE3=
|r3= [[Boolean]] |RETURNVALUE3=
Line 56: Line 54:
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->


<dd class="notedate">Posted on April 23, 2007 - 16:34
<dd class="notedate">Posted on April 23, 2007 - 16:34</dd>
<dt class="note">[[User:Kronzky|Kronzky]]
<dt class="note">[[User:Kronzky|Kronzky]]</dt>
<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="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>


<dd class="notedate">Posted on 16 Apr, 2008
<dd class="notedate">Posted on 16 Apr, 2008</dd>
<dt class="note">[[User:Dr_Eyeball|Dr_Eyeball]]
<dt class="note">[[User:Dr_Eyeball|Dr_Eyeball]]</dt>
<dd class="note">It appears [[isKindOf]] is limited to the [[ArmA:_CfgVehicles|CfgVehicles]] branch of the class hierachy.<br>
<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:
So CfgWeapons, CfgMagazines, etc will return [[false]] for checks like:
  ("M9" isKindOf "Pistol") returns false
  ("M9" isKindOf "Pistol") returns false
<br>
</dd>
 


<dd class="notedate">Posted on 8 Nov, 2009
<dd class="notedate">Posted on 8 Nov, 2009</dd>
<dt class="note">[[User:WGL.Q|.kju]]
<dt class="note">[[User:WGL.Q|.kju]]</dt>
<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..
<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>
</dd>
 
 
<!-- Note Section END -->
</dl>


<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|ISKINDOF]]
[[Category:Scripting Commands OFP Elite |ISKINDOF]]
[[Category:Scripting Commands Armed Assault|ISKINDOF]]
[[Category:Command_Group:_Object_Information|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 2|{{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>
<dd class="notedate">Posted on June 16, 2015 - 17:54 (UTC)</dd>
<dt class="note">[[User:James|James]]</dt>
<dt class="note">[[User:James|James]]</dt>
Line 94: Line 76:
<code>_isKindOf = "Rifle" [[in]] [([[configFile]] >> "CfgWeapons" >> "BWA3_G36K"), [[true]]<nowiki>]</nowiki> [[call]] [[BIS_fnc_returnParents]]; {{cc|is true`}}</code>
<code>_isKindOf = "Rifle" [[in]] [([[configFile]] >> "CfgWeapons" >> "BWA3_G36K"), [[true]]<nowiki>]</nowiki> [[call]] [[BIS_fnc_returnParents]]; {{cc|is true`}}</code>
</dd>
</dd>
</dl>
<!-- DISCONTINUE Notes -->


<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on September 6, 2015 - 22:21 (UTC)</dd>
<dd class="notedate">Posted on September 6, 2015 - 22:21 (UTC)</dd>
<dt class="note">[[User:Basstard|Basstard]]</dt>
<dt class="note">[[User:Basstard|Basstard]]</dt>
Line 105: Line 83:
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] [[call]] [[BIS_fnc_returnParents]]);  -->  0.12111ms</code>
<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>
<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>
<!-- Note Section END -->
</dl>
</dl>
<!-- DISCONTINUE Notes -->
 
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands OFP Elite|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Armed Assault|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]
[[Category:Command Group: Object Information|{{uc:{{PAGENAME}}}}]]

Revision as of 20:01, 19 August 2020

-wrong parameter ("Arma") defined!-1.00
Hover & click on the images for description

Description

Description:
Checks whether the object is (a subtype) of the given type. While main and alternative syntaxes support only CfgVehicles, CfgAmmo and CfgNonAIVehicles, alternative syntax 2 allows to specify any config, including mission config.
Groups:
Uncategorised

Syntax 1

Syntax:
object isKindOf typeName
Parameters:
object: Object
typeName: String
Return Value:
Boolean

Syntax 2

Syntax:
typeName1 isKindOf typeName2
Parameters:
typeName1: String
typeName2: String
Return Value:
Boolean

Syntax 3

Syntax:
typeName1 isKindOf [typeName2, targetConfig] Template:since
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:
countTypetypeOfinheritsFromconfigHierarchy Arma 2 CfgVehicles

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..
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.

Bottom Section