fnc_reloadExternal.sqf 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. params ["_target", "_player", "_params"];
  2. _currentTurret = _target currentWeaponTurret [0];
  3. if(_currentTurret == "") then {
  4. _currentTurret = _target weaponsTurret [0] select 0;
  5. };
  6. _compatMags = [_currentTurret] call CBA_fnc_compatibleMagazines;
  7. _magazines = (magazinesAmmo _player) select {_x select 1 > 0 && (_x select 0) in _compatMags};
  8. _magazines sort false;
  9. if(count _magazines == 0) exitWith {
  10. ["No compatible mags found", true, 2, 0] call ace_common_fnc_displayText;
  11. };
  12. _magazine = _magazines select 0;
  13. _ammoAmount = _magazine select 1;
  14. _magazine = _magazine select 0;
  15. private _onFinish = {
  16. (_this select 0) params ["_player", "_target", "_magazine", "_ammoAmount"];
  17. [_player, _magazine, _ammoAmount] call ace_common_fnc_removeSpecificMagazine;
  18. ["rd501_external_reload", [_target, _magazine, _ammoAmount], [_target]] call CBA_fnc_targetEvent;
  19. [format["Reloaded %1", _target], true, 2, 0] call ace_common_fnc_displayText;
  20. };
  21. private _onFailure = {
  22. (_this select 0) params ["_player", "_target"];
  23. [_player, "AmovPknlMstpSrasWrflDnon", 1] call ace_common_fnc_doAnimation;
  24. };
  25. [_player, "AinvPknlMstpSnonWnonDr_medic5", 0] call ace_common_fnc_doAnimation;
  26. [5, [_player, _target, _magazine, _ammoAmount], _onFinish, _onFailure, ("Reloading")] call ace_common_fnc_progressBar;