2018-09-17 19:19:29 +00:00
|
|
|
#include "script_component.hpp"
|
2015-08-20 17:51:22 +00:00
|
|
|
/*
|
|
|
|
* Author: GitHawk
|
|
|
|
* Takes a magazine from an ammo truck.
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* 0: Params <ARRAY>
|
|
|
|
* 0: Unit <OBJECT>
|
|
|
|
* 1: Magazine Classname <STRING>
|
|
|
|
* 2: Ammo Truck <OBJECT>
|
2019-07-05 22:57:22 +00:00
|
|
|
* 3: Target Vehicle or Player <OBJECT>
|
2015-08-20 17:51:22 +00:00
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Example:
|
2019-07-05 22:57:22 +00:00
|
|
|
* [[player, "500Rnd_127x99_mag_Tracer_Red", ammoTruck, targetVehicle]] call ace_rearm_fnc_takeSuccess
|
2015-08-20 17:51:22 +00:00
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
|
2017-09-29 19:53:25 +00:00
|
|
|
params ["_args"];
|
2019-07-05 22:57:22 +00:00
|
|
|
_args params ["_unit", "_magazineClass", "_truck", "_vehicle"];
|
|
|
|
TRACE_4("takeSuccess",_unit,_magazineClass,_truck,_vehicle);
|
2016-02-27 19:31:07 +00:00
|
|
|
|
|
|
|
private _success = true;
|
|
|
|
if (GVAR(supply) > 0) then {
|
2016-02-27 20:05:19 +00:00
|
|
|
_success = [_truck, _magazineClass] call FUNC(removeMagazineFromSupply);
|
2016-02-27 19:31:07 +00:00
|
|
|
};
|
2017-06-08 16:47:52 +00:00
|
|
|
if !(_success) exitWith {WARNING_2("takeSuccess failed to take [%1] from [%2]",_magazineClass,_truck);};
|
2015-08-20 17:51:22 +00:00
|
|
|
|
2019-07-05 22:57:22 +00:00
|
|
|
if (_vehicle == _unit) exitWith {
|
|
|
|
([_magazineClass] call FUNC(getCaliber)) params ["", "_idx"];
|
|
|
|
private _rounds = (REARM_COUNT select _idx);
|
|
|
|
TRACE_4("passing to csw",_unit,_magazineClass,_idx,_rounds);
|
|
|
|
[_unit, _magazineClass, _rounds] call EFUNC(csw,reload_handleReturnAmmo);
|
|
|
|
};
|
|
|
|
|
2017-12-07 17:26:21 +00:00
|
|
|
[_unit, "forceWalk", "ACE_rearm", true] call EFUNC(common,statusEffect_set);
|
|
|
|
[_unit, "blockThrow", "ACE_rearm", true] call EFUNC(common,statusEffect_set);
|
2016-02-27 19:31:07 +00:00
|
|
|
private _dummy = [_unit, _magazineClass] call FUNC(createDummy);
|
2015-08-20 17:51:22 +00:00
|
|
|
[_dummy, _unit] call FUNC(pickUpAmmo);
|
|
|
|
|
2016-02-27 19:31:07 +00:00
|
|
|
private _actionID = _unit addAction [
|
2015-08-21 20:57:14 +00:00
|
|
|
format ["<t color='#FF0000'>%1</t>", localize ELSTRING(dragging,Drop)],
|
2015-08-20 17:51:22 +00:00
|
|
|
'(_this select 0) call FUNC(dropAmmo)',
|
|
|
|
nil,
|
|
|
|
20,
|
|
|
|
false,
|
|
|
|
true,
|
|
|
|
"",
|
2017-06-08 16:47:52 +00:00
|
|
|
'!isNull (_target getVariable [QGVAR(dummy), objNull])'
|
2015-08-20 17:51:22 +00:00
|
|
|
];
|
|
|
|
_unit setVariable [QGVAR(ReleaseActionID), _actionID];
|