/* * Author: commy2 * The player will select the specified weapon and change to the first additional muzzle. E.g. the grenade launcher of a assault rifle. * * Arguments: * 0: Unit * 1: Weapon * * Return Value: * None * * Example: * [player, currentWeapon player] call ace_weaponselect_fnc_selectWeaponMuzzle * * Public: No */ #include "script_component.hpp" params ["_unit", "_weapon"]; if (_weapon == "") exitWith {}; private _muzzles = _weapon call EFUNC(common,getWeaponMuzzles); if (currentWeapon _unit != _weapon) exitWith { if (count _muzzles > 1) then { // unlock safety /*if (_weapon in (_unit getVariable [QEGVAR(safemode,safedWeapons), []])) exitWith { [_unit, _weapon, _muzzles select 1] call EFUNC(safemode,unlockSafety); };*/ _unit selectWeapon (_muzzles select 1); }; }; private _index = (_muzzles find currentMuzzle _unit) + 1; if (_index > count _muzzles - 1) then {_index = 1}; private _muzzle = _muzzles select _index; _index = 0; while { _index < 299 && {currentMuzzle _unit != _muzzle} } do { _unit action ["SwitchWeapon", _unit, _unit, _index]; _index = _index + 1; };