Here are several methods I can think of to achieve this fairly easily.
Method 1)
Similar to how we can totally disable automatic vehicle rearming/refueling/repairing on a vehicle crate, using:
_vehicleCrate setAmmoCargo 0;
_vehicleCrate setFuelCargo 0;
_vehicleCrate setRepairCargo 0;
We could have similar commands to disable/change Inventory capacities with script commands, like:
_crate setTransportMaxMagazines 1000;
_crate setTransportMaxWeapons 500;
_crate setTransportMaxBackpacks 30;
which of course, correspond directly with the crate's class definition:
class Box_NATO_Wps_F: NATO_Box_Base
{
transportMaxMagazines = 1e+009;
transportMaxWeapons = 1e+009;
transportMaxBackpacks = 0;
};
================
Method 2)
Add a new script command, like:
disableAllActions _crate;
which would also disable the keys associated with activating that action.
================
Method 3)
Add a new script command, like:
_crate disableAction ACTION_ID_INVENTORY;
If you wanted to further separate the Action Menu from the Action Key, then you would need another script command to disable the Action Key too.
_crate disableActionKey ACTION_ID_INVENTORY;
However, I am unsure how you would specify the relevant ACTION_ID to disable.
You could possibly use the key action names from:
http://community.bistudio.com/wiki/ArmA_2:_CfgDefaultKeysMapping