canAdd: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " (\|[pr][0-9]+ *= *[^-]+) *- *A([a-z])" to " $1 - a$2")
m (Text replacement - "(\|[pr][0-9]+ *= *[^-]+) *- *C([a-eg-z])" to "$1 - c$2")
Line 12: Line 12:
|p1= object: [[Object]] - unit or container
|p1= object: [[Object]] - unit or container


|p2= item: [[String]] - Config class
|p2= item: [[String]] - config class


|r1= [[Boolean]]
|r1= [[Boolean]]
Line 22: Line 22:
|p21= object: [[Object]] - unit or container
|p21= object: [[Object]] - unit or container


|p22= item: [[String]] - Config class
|p22= item: [[String]] - config class


|p23= count: [[Number]] - desired quantity
|p23= count: [[Number]] - desired quantity
Line 34: Line 34:
|p41= weapon: [[String]] - Weapon class name
|p41= weapon: [[String]] - Weapon class name


|p42= item: [[String]] - Config class of magazine or attachment
|p42= item: [[String]] - config class of magazine or attachment


|r3= [[Boolean]]
|r3= [[Boolean]]

Revision as of 14:00, 8 November 2023

Hover & click on the images for description

Description

Description:
Checks if given object can be stored in inventory of given object or any inventory container (uniform, vest, backpack) of given unit. Since Arma 3 v2.09 this command will count unit storage space as whole, instead of as biggest container, when multiple items are queried.
Groups:
Unit Inventory

Syntax 1

Syntax:
object canAdd item
Parameters:
object: Object - unit or container
item: String - config class
Return Value:
Boolean

Syntax 2

Syntax:
object canAdd [item, count]
Parameters:
object: Object - unit or container
item: String - config class
count: Number - desired quantity
Return Value:
Boolean

Syntax 3

Syntax:
weapon canAdd item
Parameters:
weapon: String - Weapon class name
item: String - config class of magazine or attachment
Return Value:
Boolean

Syntax 4

Syntax:
weapon canAdd [attachment, slot]
Parameters:
weapon: String - Weapon class name
attachment: String - attachment class name
slot: String - Slot class name (defined under WeaponSlotsInfo class in weapon config)
Return Value:
Boolean

Syntax 5

Syntax:
weapon canAdd [magazine, muzzle]
Parameters:
weapon: String - Weapon class name
magazine: String - Magazine class name
muzzle: String - Muzzle class name
Return Value:
Boolean

Examples

Example 1:
if (player canAdd "FirstAidKit") then { player addItem "FirstAidKit"; } else { hint "Not enough space"; };
Example 2:
if (_box canAdd "FirstAidKit") then { _box addWeaponCargo ["FirstAidKit", 1]; } else { hint "Not enough space"; };
Example 3:
car canAdd [currentWeapon player, 50];
Example 4:
// check if attachment can be loaded "arifle_Katiba_GL_F" canAdd "acc_pointer_IR"; "arifle_Katiba_GL_F" canAdd ["acc_pointer_IR", "PointerSlot"];
Example 5:
// check if magazine can be loaded "arifle_Katiba_GL_F" canAdd "30Rnd_65x39_caseless_green"; "arifle_Katiba_GL_F" canAdd ["30Rnd_65x39_caseless_green", "this"]; "arifle_Katiba_GL_F" canAdd ["1Rnd_SmokeRed_Grenade_shell", "EGLM"];

Additional Information

See also:
canAddItemToBackpack canAddItemToUniform canAddItemToVest compatibleMagazines compatibleItems

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


Jonpas - c
Posted on Nov 29, 2015 - 00:02 (UTC)
Can also be used on any object that has inventory, not only player inventory containers.

Where _box is B_supplyCrate_F:
// empty _box canAdd "FirstAidKit"; // returns true // full _box canAdd "FirstAidKit"; // returns false
Demellion - c
Posted on Feb 11, 2017 - 18:40 (UTC)
This can also be used as alternative to canAddItemToBackpack, canAddItemToUniform, canAddItemToVest where container might not be strictly defined. In some cases it might be a good optimisation for your code, where you also don't need to perform checks on which type of player container this is. Example:
private _container = selectRandom [uniformContainer player, vestContainer player, backpackContainer player]; if (_container canAdd "Rangefinder") then { _container addItemCargoGlobal ["Rangefinder", 1]; };