canAddItemToBackpack: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
 
(34 intermediate revisions by 6 users not shown)
Line 7: Line 7:


|descr= Checks if given object can be stored into soldier's backpack.
|descr= Checks if given object can be stored into soldier's backpack.
{{Feature|important|
Avoid passing an empty string <sqf inline>""</sqf> to this command as it will create a warning dialog:
[[File:a3 warning badvehicletype.jpg|none|alt= Warning Message: Bad vehicle type|Warning Message: Bad vehicle type]]
This message will show once per mission restart.
}}


|s1= unit [[canAddItemToBackpack]] item
|s1= unit [[canAddItemToBackpack]] item
Line 16: Line 22:
|r1= [[Boolean]]
|r1= [[Boolean]]


|s2= unit [[canAddItemToBackpack]] [item, count]
|s2= unit [[canAddItemToBackpack]] [item, count, ignoreSoldierMaxLoad]


|s2since= arma3 1.56
|s2since= arma3 1.56
Line 22: Line 28:
|p21= unit: [[Object]]
|p21= unit: [[Object]]


|p22= [item, count]: [[Array]]
|p22= item: [[String]]


|p23= item: [[String]]
|p23= count: [[Number]]


|p24= count: [[Number]]
|p24= ignoreSoldierMaxLoad: [[Boolean]] - (Optional, default [[false]]) [[true]] to ignore 'soldierMaxLoad' param, container [[maxLoad]] is still counted.
|p24since= arma3 2.18


|r2= [[Boolean]]
|r2= [[Boolean]]


|x1= <code>[[if]] ([[player]] [[canAddItemToBackpack]] "HandGrenade") [[then]] { [[player]] [[addItemToBackpack]] _item } [[else]] { [[hint]] "no room!" };</code>
|x1= <sqf>if (player canAddItemToBackpack "HandGrenade") then { player addItemToBackpack _item } else { hint "no room!" };</sqf>
 
|seealso= [[canAdd]] [[canAddItemToUniform]] [[canAddItemToVest]] [[backpackContainer]] [[firstBackpack]] [[unitBackpack]] [[backpack]] [[backpackCargo]] [[getBackpackCargo]] [[backpackItems]] [[addBackpack]] [[addBackpackCargo]] [[addBackpackCargoGlobal]] [[removeBackpack]] [[clearBackpackCargo]] [[clearBackpackCargoGlobal]] [[clearAllItemsFromBackpack]] [[loadBackpack]] [[backpackSpaceFor]] [[addItemToBackpack]] [[removeItemFromBackpack]] [[everyBackpack]]
}}


|seealso= [[canAdd]] [[canAddItemToUniform]] [[canAddItemToVest]] [[backpackContainer]] [[firstBackpack]] [[unitBackpack]] [[backpack]] [[backpackCargo]] [[getBackpackCargo]] [[backpackItems]], [[addBackpack]], [[addBackpackCargo]], [[addBackpackCargoGlobal]], [[removeBackpack]], [[clearBackpackCargo]], [[clearBackpackCargoGlobal]], [[clearAllItemsFromBackpack]], [[loadBackpack]], [[backpackSpaceFor]], [[addItemToBackpack]], [[removeItemFromBackpack]], [[everyBackpack]]
{{Note
|user= AgentRev
|timestamp= 20220329045658
|text= This command is very unreliable, along with all other [[canAdd]] commands. For example, in the inventory screen, an empty {{hl|"B_Bergen_dgtl_F"}} backpack can fit a total of 30 {{hl|"5Rnd_127x108_APDS_Mag"}} mags. However, <sqf inline>player canAddItemToBackpack "5Rnd_127x108_APDS_Mag"</sqf> starts returning [[false]] once there are 17 in the backpack. Furthermore, if the player has equipped an empty PCML launcher (without any missile in his inventory), the command starts returning [[false]] once there are only 11, despite the fact that the launcher has no effect on backpack space...<br>
I wrote a function almost 9 years ago to bypass this (surprisingly still existing) bug. You can check it {{Link|https://github.com/A3Wasteland/ArmA3_Wasteland.Altis/blob/dev/client/functions/fn_fitsInventory.sqf|here}}, with a usage example {{Link|https://github.com/A3Wasteland/ArmA3_Wasteland.Altis/blob/dc41623f154d6c5be683374784aba201a0628e60/client/functions/addWeaponInventory.sqf#L18-L20|here}}.
}}
}}

Latest revision as of 11:33, 3 September 2024

Hover & click on the images for description

Description

Description:
Checks if given object can be stored into soldier's backpack.
Avoid passing an empty string "" to this command as it will create a warning dialog:
Warning Message: Bad vehicle type
This message will show once per mission restart.
Groups:
Containers

Syntax

Syntax:
unit canAddItemToBackpack item
Parameters:
unit: Object
item: String
Return Value:
Boolean

Alternative Syntax

Syntax:
unit canAddItemToBackpack [item, count, ignoreSoldierMaxLoad]
Parameters:
unit: Object
item: String
count: Number
since Arma 3 logo black.png2.18
ignoreSoldierMaxLoad: Boolean - (Optional, default false) true to ignore 'soldierMaxLoad' param, container maxLoad is still counted.
Return Value:
Boolean

Examples

Example 1:
if (player canAddItemToBackpack "HandGrenade") then { player addItemToBackpack _item } else { hint "no room!" };

Additional Information

See also:
canAdd canAddItemToUniform canAddItemToVest backpackContainer firstBackpack unitBackpack backpack backpackCargo getBackpackCargo backpackItems addBackpack addBackpackCargo addBackpackCargoGlobal removeBackpack clearBackpackCargo clearBackpackCargoGlobal clearAllItemsFromBackpack loadBackpack backpackSpaceFor addItemToBackpack removeItemFromBackpack everyBackpack

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
AgentRev - c
Posted on Mar 29, 2022 - 04:56 (UTC)
This command is very unreliable, along with all other canAdd commands. For example, in the inventory screen, an empty "B_Bergen_dgtl_F" backpack can fit a total of 30 "5Rnd_127x108_APDS_Mag" mags. However, player canAddItemToBackpack "5Rnd_127x108_APDS_Mag" starts returning false once there are 17 in the backpack. Furthermore, if the player has equipped an empty PCML launcher (without any missile in his inventory), the command starts returning false once there are only 11, despite the fact that the launcher has no effect on backpack space...
I wrote a function almost 9 years ago to bypass this (surprisingly still existing) bug. You can check it here, with a usage example here.