isKindOf: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "\|x([0-9])= *<code>([^<]*)<\/code>" to "|x$1= <sqf>$2</sqf>") |
(added example) |
||
(8 intermediate revisions by one other user not shown) | |||
Line 22: | Line 22: | ||
|descr= Checks whether the given object or type is (a subtype) of the given type.<br> | |descr= Checks whether the given object or type is (a subtype) of the given type.<br> | ||
While {{ | While {{Link|#Syntax 1}} and {{Link|#Syntax 2}} only support '''CfgVehicles''', {{GVI|arma2|1.00|size= 0.75}}'''CfgAmmo''' and '''CfgNonAIVehicles''', {{Link|#Syntax 3}} can be used with any config, including the [[missionConfigFile|mission config]]. | ||
|s1= object [[isKindOf]] typeName | |s1= object [[isKindOf]] typeName | ||
Line 32: | Line 32: | ||
|r1= [[Boolean]] | |r1= [[Boolean]] | ||
|s2= | |s2= class1 [[isKindOf]] class2 | ||
|p21= | |p21= class1: [[String]] | ||
|p22= | |p22= class2: [[String]] | ||
|r2= [[Boolean]] | |r2= [[Boolean]] | ||
|s3= | |s3= class1 [[isKindOf]] [class2, targetConfig] | ||
|s3since= arma3 1.48 | |s3since= arma3 1.48 | ||
|p41= | |p41= class1: [[String]] | ||
|p42= | |p42= class2: [[String]] | ||
|p43= targetConfig: [[Config]] | |p43= targetConfig: [[Config]] | ||
Line 57: | Line 57: | ||
|x3= <sqf>currentWeapon player isKindOf ["Rifle", configFile >> "CfgWeapons"];</sqf> | |x3= <sqf>currentWeapon player isKindOf ["Rifle", configFile >> "CfgWeapons"];</sqf> | ||
|x4= <sqf>private _isSoldier = player isKindOf "CAManBase";</sqf> | |||
|seealso= [[typeOf]] [[countType]] [[inheritsFrom]] [[configHierarchy]] | |seealso= [[typeOf]] [[countType]] [[inheritsFrom]] [[configHierarchy]] | ||
}} | }} | ||
{{Note | |||
|user= Kronzky | |||
|timestamp= 20070423163400 | |||
|text= 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]].) | |||
}} | |||
{{Note | |||
|user= James | |||
|timestamp= 20150616175400 | |||
|text= In case you cannot use [[isKindOf]] because of the reasons stated, just use [[BIS_fnc_returnParents]] with class names as return value: | |||
<sqf>_isKindOf = "Rifle" in [configFile >> "CfgWeapons" >> "BWA3_G36K", true] call BIS_fnc_returnParents; // is true</sqf> | |||
}} | |||
</ | |||
{{Note | |||
|user= Basstard | |||
|timestamp= 20150906222100 | |||
|text= In {{arma3}} [[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: | |||
<sqf> | |||
"CA_Magazine" in ([configFile >> "CfgMagazines" >> "HandGrenade", true] call BIS_fnc_returnParents); // 0.12111 ms | |||
"HandGrenade" isKindOf ["CA_Magazine", configFile >> "CfgMagazines"]; // 0.00439453 ms | |||
</sqf> | |||
When checking in [[CfgVehicles]] the syntax from {{Link|#Example 2}} performs a little faster. | |||
}} | |||
In | |||
It should be prefered to James' solution as it performs more than 25x faster. Tested in debug console with the following code snippets:< | |||
When checking in [[CfgVehicles]] the syntax from | |||
Latest revision as of 11:50, 18 May 2023
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, 1.00CfgAmmo and CfgNonAIVehicles, Syntax 3 can be used with any config, including the mission config. - Groups:
- Object Manipulation
Syntax 1
Syntax 2
Syntax 3
- Syntax:
- class1 isKindOf [class2, targetConfig]
- Parameters:
- class1: String
- class2: String
- targetConfig: Config
- Return Value:
- Boolean
Examples
- Example 1:
- Example 2:
- "BMP2" isKindOf "Tank";
- Example 3:
- Example 4:
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 Apr 23, 2007 - 16:34 (UTC)
- 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 Jun 16, 2015 - 17:54 (UTC)
-
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 Sep 06, 2015 - 22:21 (UTC)
-
In Arma 3 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:When checking in CfgVehicles the syntax from Example 2 performs a little faster."CA_Magazine" in ([configFile >> "CfgMagazines" >> "HandGrenade", true] call BIS_fnc_returnParents); // 0.12111 ms "HandGrenade" isKindOf ["CA_Magazine", configFile >> "CfgMagazines"]; // 0.00439453 ms
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