2015-09-16 21:01:01 +00:00
|
|
|
/*
|
|
|
|
* Author: BaerMitUmlaut
|
|
|
|
* Cut deployed ropes.
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* 0: A helicopter with deployed ropes <OBJECT>
|
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Example:
|
2015-12-14 20:50:56 +00:00
|
|
|
* [_vehicle] call ace_fastroping_fnc_cutRopes
|
2015-09-16 21:01:01 +00:00
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "script_component.hpp"
|
|
|
|
params ["_vehicle"];
|
2015-11-30 17:35:34 +00:00
|
|
|
private ["_deployedRopes", "_config", "_waitTime"];
|
2015-09-16 21:01:01 +00:00
|
|
|
|
|
|
|
_deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []];
|
|
|
|
{
|
2016-02-21 23:29:15 +00:00
|
|
|
_x params ["", "_ropeTop", "_ropeBottom", "_dummy", "_hook", "_occupied"];
|
2015-09-16 21:01:01 +00:00
|
|
|
|
2015-12-22 07:53:57 +00:00
|
|
|
//Make player fall if rope is occupied
|
|
|
|
if (_occupied) then {
|
|
|
|
private _attachedObjects = attachedObjects _dummy;
|
|
|
|
//Rope is considered occupied when it's broken as well, so check if array is empty
|
|
|
|
//Note: ropes are not considered attached objects by Arma
|
|
|
|
if !(_attachedObjects isEqualTo []) then {
|
|
|
|
detach ((attachedObjects _dummy) select 0);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2016-03-17 23:16:31 +00:00
|
|
|
//Destroy rope
|
|
|
|
//Only delete the hook first so the rope falls down.
|
|
|
|
//Note: ropeDetach was used here before, but the command seems a bit broken.
|
|
|
|
deleteVehicle _hook;
|
|
|
|
[{{deleteVehicle _x} count _this}, [_ropeTop, _ropeBottom, _dummy], 60] call EFUNC(common,waitAndExecute);
|
2015-09-16 21:01:01 +00:00
|
|
|
} count _deployedRopes;
|
|
|
|
|
|
|
|
_vehicle setVariable [QGVAR(deployedRopes), [], true];
|
2015-11-30 17:35:34 +00:00
|
|
|
_vehicle setVariable [QGVAR(deploymentStage), 1, true];
|
|
|
|
|
|
|
|
_config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
|
|
|
_waitTime = 0;
|
|
|
|
if (isText (_config >> QGVAR(onCut))) then {
|
|
|
|
_waitTime = [_vehicle] call (missionNamespace getVariable (getText (_config >> QGVAR(onCut))));
|
|
|
|
};
|
|
|
|
|
|
|
|
[{
|
|
|
|
_this setVariable [QGVAR(deploymentStage), 0, true];
|
|
|
|
}, _vehicle, _waitTime] call EFUNC(common,waitAndExecute);
|