Force open ramps on helicopters

This commit is contained in:
BaerMitUmlaut 2016-03-06 19:53:37 +01:00
parent 8e895e8cff
commit 84af4b7676
5 changed files with 81 additions and 8 deletions

View File

@ -35,11 +35,8 @@ class CfgVehicles {
};
};
class Helicopter_Base_F;
class ACE_friesBase: Helicopter_Base_F {
destrType = "";
class Turrets {};
class Helicopter;
class Helicopter_Base_F: Helicopter {
class ACE_SelfActions {
class ACE_prepareFRIES {
displayName = CSTRING(Interaction_prepareFRIES);
@ -71,6 +68,10 @@ class CfgVehicles {
};
};
};
class ACE_friesBase: Helicopter_Base_F {
destrType = "";
class Turrets {};
};
class ACE_friesAnchorBar: ACE_friesBase {
author = "jokoho48";
scope = 1;
@ -175,10 +176,28 @@ class CfgVehicles {
class Heli_Transport_02_base_F: Helicopter_Base_H {
GVAR(enabled) = 1;
GVAR(ropeOrigins[]) = {{0.94, -4.82, -1.16}, {-0.94, -4.82, -1.16}};
GVAR(onPrepare) = QFUNC(onPrepareCommon);
GVAR(onCut) = QFUNC(onCutCommon);
class UserActions {
class Ramp_Open;
class Ramp_Close: Ramp_Open {
condition = QUOTE([ARR_5(this,'CargoRamp_Open',[[0],[1],[2]])] call FUNC(canCloseRamp));
};
};
};
class Heli_Transport_03_base_F: Helicopter_Base_H {
GVAR(enabled) = 1;
GVAR(ropeOrigins[]) = {{0.75, -5.29, -0.11}, {-0.87, -5.29, -0.11}};
GVAR(onPrepare) = QFUNC(onPrepareCommon);
GVAR(onCut) = QFUNC(onCutCommon);
class UserActions {
class Ramp_Open;
class Ramp_Close: Ramp_Open {
condition = QUOTE([ARR_5(this,'Door_rear_source',[[0],[3],[4]])] call FUNC(canCloseRamp));
};
};
};
class Heli_light_03_base_F: Helicopter_Base_F {
GVAR(enabled) = 2;
@ -194,7 +213,9 @@ class CfgVehicles {
GVAR(friesAttachmentPoint[]) = {-1.07, 3.26, -0.5};
EQUIP_FRIES_ATTRIBUTE;
};
class Heli_Transport_04_base_F;
class Heli_Transport_04_base_F: Helicopter_Base_H {
class UserActions;
};
class O_Heli_Transport_04_bench_F: Heli_Transport_04_base_F {
GVAR(enabled) = 1;
GVAR(ropeOrigins[]) = {{1.03, 1.6, -0.23}, {1.03, -1.36, -0.23}, {-1.23, 1.6, -0.23}, {-1.23, -1.36, -0.23}};
@ -202,5 +223,14 @@ class CfgVehicles {
class O_Heli_Transport_04_covered_F: Heli_Transport_04_base_F {
GVAR(enabled) = 1;
GVAR(ropeOrigins[]) = {{0.83, -4.7, -0.03}, {-1.02, -4.7, -0.03}};
GVAR(onPrepare) = QFUNC(onPrepareCommon);
GVAR(onCut) = QFUNC(onCutCommon);
class UserActions: UserActions {
class CloseDoor_6;
class Ramp_Close: CloseDoor_6 {
condition = QUOTE([ARR_6(this,'Door_6_source',[[0],[1],[2],[3]])] call FUNC(canCloseRamp));
};
};
};
};

View File

@ -1,3 +1,4 @@
PREP(canCloseRamp);
PREP(canCutRopes);
PREP(canDeployRopes);
PREP(canFastRope);

View File

@ -0,0 +1,29 @@
/*
* Author: BaerMitUmlaut
* Checks if the player can close the ramp of the given helo.
*
* Arguments:
* 0: The helicopter <OBJECT>
* 1: The ramp animation name <STRING>
* 2: Turret paths that can close the ramp <ARRAY>
*
* Return Value:
* Able to close ramp <BOOL>
*
* Example:
* [_player, _vehicle] call ace_fastroping_fnc_canCloseRamp
*
* Public: No
*/
#include "script_component.hpp"
params ["_vehicle", "_door", "_turretPaths"];
(_vehicle doorPhase _door > 0.5) &&
{alive _vehicle} &&
{(_vehicle getVariable ["bis_disabled_Ramp", 0]) != 1} &&
{!(_vehicle getVariable [QGVAR(doorsLocked), false])} &&
{
(ACE_player == driver _vehicle) ||
{((assignedVehicleRole ACE_player) param [1, []]) in _turretPaths}
}

View File

@ -24,16 +24,24 @@ if !(isNull _fries) then {
[{
_this animateDoor ["door_R", 0];
_this animateDoor ["door_L", 0];
_vehicle animate ["dvere1_posunZ", 0];
_vehicle animate ["dvere2_posunZ", 0];
_this animateDoor ["CargoRamp_Open", 0];
_this animateDoor ["Door_rear_source", 0];
_this animateDoor ["Door_6_source", 0];
_this animate ["dvere1_posunZ", 0];
_this animate ["dvere2_posunZ", 0];
_this setVariable [QGVAR(doorsLocked), false, true];
}, _vehicle, 2] call EFUNC(common,waitAndExecute);
4
} else {
_vehicle animateDoor ["door_R", 0];
_vehicle animateDoor ["door_L", 0];
_vehicle animateDoor ["CargoRamp_Open", 0];
_vehicle animateDoor ["Door_rear_source", 0];
_vehicle animateDoor ["Door_6_source", 0];
_vehicle animate ["dvere1_posunZ", 0];
_vehicle animate ["dvere2_posunZ", 0];
_vehicle setVariable [QGVAR(doorsLocked), false, true];
2
};

View File

@ -22,9 +22,14 @@ _waitTime = 2;
_vehicle animateDoor ["door_R", 1];
_vehicle animateDoor ["door_L", 1];
_vehicle animateDoor ["CargoRamp_Open", 1];
_vehicle animateDoor ["Door_rear_source", 1];
_vehicle animateDoor ["Door_6_source", 1];
_vehicle animate ["dvere1_posunZ", 1];
_vehicle animate ["dvere2_posunZ", 1];
_vehicle setVariable [QGVAR(doorsLocked), true, true];
_fries = _vehicle getVariable [QGVAR(FRIES), objNull];
if !(isNull _fries) then {
[{