mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
parent
1cca2db964
commit
99bb6983bb
@ -2,22 +2,33 @@
|
||||
/*
|
||||
* Author: commy2, johnb43
|
||||
* Adds weapon to unit without taking a magazine.
|
||||
* Same as CBA_fnc_addWeaponWithoutItems, but doesn't remove linked items.
|
||||
* Same as CBA_fnc_addWeaponWithoutItems, but doesn't remove linked items by default.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit to add the weapon to <OBEJCT>
|
||||
* 0: Unit to add the weapon to <OBJECT>
|
||||
* 1: Weapon to add <STRING>
|
||||
* 2: If linked items should be removed or not <BOOL> (default: false)
|
||||
* 3: Magazines that should be added to the weapon <ARRAY> (default: [])
|
||||
* - 0: Magazine classname <STRING>
|
||||
* - 1: Ammo count <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "arifle_AK12_F"] call ace_common_fnc_addWeapon
|
||||
* [player, "arifle_MX_GL_F", true, [["30Rnd_65x39_caseless_mag", 30], ["1Rnd_HE_Grenade_shell", 1]]] call ace_common_fnc_addWeapon
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params ["_unit", "_weapon"];
|
||||
params [
|
||||
["_unit", objNull, [objNull]],
|
||||
["_weapon", "", [""]],
|
||||
["_removeLinkedItems", false, [false]],
|
||||
["_magazines", [], [[]]]
|
||||
];
|
||||
|
||||
if (isNull _unit || {_weapon == ""}) exitWith {};
|
||||
|
||||
// Config case
|
||||
private _compatibleMagazines = compatibleMagazines _weapon;
|
||||
@ -45,6 +56,35 @@ private _backpackMagazines = (magazinesAmmoCargo _backpack) select {
|
||||
// Add weapon
|
||||
_unit addWeapon _weapon;
|
||||
|
||||
// This doesn't remove magazines, but linked items can't be magazines, so it's fine
|
||||
if (_removeLinkedItems) then {
|
||||
switch (_weapon call FUNC(getConfigName)) do {
|
||||
case (primaryWeapon _unit): {
|
||||
removeAllPrimaryWeaponItems _unit;
|
||||
};
|
||||
case (secondaryWeapon _unit): {
|
||||
removeAllSecondaryWeaponItems _unit;
|
||||
};
|
||||
case (handgunWeapon _unit): {
|
||||
removeAllHandgunItems _unit;
|
||||
};
|
||||
case (binocular _unit): {
|
||||
removeAllBinocularItems _unit;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Add magazines directly now, so that AI don't reload
|
||||
if (_magazines isNotEqualTo []) then {
|
||||
{
|
||||
_x params [["_magazine", "", [""]], ["_ammoCount", -1, [0]]];
|
||||
|
||||
if (_magazine != "" && {_ammoCount > -1}) then {
|
||||
_unit addWeaponItem [_weapon, [_magazine, _ammoCount], true];
|
||||
};
|
||||
} forEach _magazines;
|
||||
};
|
||||
|
||||
// Add all magazines back
|
||||
{
|
||||
_uniform addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
||||
|
Loading…
Reference in New Issue
Block a user