2018-09-17 19:19:29 +00:00
|
|
|
#include "script_component.hpp"
|
2015-12-22 07:53:57 +00:00
|
|
|
/*
|
|
|
|
* Author: BaerMitUmlaut
|
|
|
|
* Local PerFrameHandler during fast roping.
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* 0: PFH arguments <ARRAY>
|
|
|
|
* 1: PFH handle <OBJECT>
|
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Example:
|
|
|
|
* [[_unit, _vehicle, _rope, _ropeIndex], 0] call ace_fastroping_fnc_fastRopeLocalPFH
|
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
params ["_arguments", "_pfhHandle"];
|
2017-09-19 20:38:49 +00:00
|
|
|
_arguments params ["_unit", "", "_rope", "", "_timeToPlayRopeSound"];
|
2017-10-16 21:11:21 +00:00
|
|
|
_rope params ["", "", "", "_dummy", "_hook"];
|
2015-12-22 07:53:57 +00:00
|
|
|
|
|
|
|
//Wait until the unit is actually outside of the helicopter
|
|
|
|
if (vehicle _unit != _unit) exitWith {};
|
|
|
|
|
2017-10-16 21:11:21 +00:00
|
|
|
// dummy lost hook
|
|
|
|
if (isNull _hook) exitWith {
|
|
|
|
TRACE_1("Hook lost, dropping and exiting pfeh",_unit);
|
|
|
|
|
|
|
|
[_unit, "", 2] call EFUNC(common,doAnimation);
|
|
|
|
_unit setVectorUp [0, 0, 1];
|
|
|
|
|
|
|
|
[_pfhHandle] call CBA_fnc_removePerFrameHandler;
|
|
|
|
};
|
|
|
|
|
2015-12-22 07:53:57 +00:00
|
|
|
//Start fast roping
|
2016-02-29 00:04:52 +00:00
|
|
|
if (animationState _unit != "ACE_FastRoping") exitWith {
|
2015-12-22 07:53:57 +00:00
|
|
|
_unit disableCollisionWith _dummy;
|
2016-02-29 00:04:52 +00:00
|
|
|
_unit attachTo [_dummy, [0, 0, -1.45]];
|
|
|
|
[_unit, "ACE_FastRoping", 2] call EFUNC(common,doAnimation);
|
2016-04-02 13:53:39 +00:00
|
|
|
};
|
2016-03-02 21:36:42 +00:00
|
|
|
|
2016-03-02 21:17:49 +00:00
|
|
|
|
2015-12-22 07:53:57 +00:00
|
|
|
//End of fast rope
|
|
|
|
if (isNull attachedTo _unit) exitWith {
|
2016-05-10 15:09:52 +00:00
|
|
|
TRACE_1("exit pfeh",_unit);
|
2016-02-29 00:04:52 +00:00
|
|
|
[_unit, "", 2] call EFUNC(common,doAnimation);
|
2015-12-22 07:53:57 +00:00
|
|
|
_unit setVectorUp [0, 0, 1];
|
|
|
|
|
2016-06-05 17:39:12 +00:00
|
|
|
if (_unit == ACE_player) then {
|
|
|
|
playSound QGVAR(Thud);
|
|
|
|
};
|
2016-03-02 21:17:49 +00:00
|
|
|
|
2015-12-22 07:53:57 +00:00
|
|
|
[_pfhHandle] call CBA_fnc_removePerFrameHandler;
|
|
|
|
};
|
2016-05-10 15:09:52 +00:00
|
|
|
|
2016-06-05 17:39:12 +00:00
|
|
|
if (_unit == ACE_player && {diag_tickTime > _timeToPlayRopeSound}) then {
|
2016-05-10 15:09:52 +00:00
|
|
|
_arguments set [4, (_timeToPlayRopeSound + 1)];
|
|
|
|
playSound QGVAR(Rope);
|
|
|
|
};
|