All checks were successful
Generate testing snapshot / Create testing release (push) Successful in 37s
40 lines
1.3 KiB
Plaintext
40 lines
1.3 KiB
Plaintext
#include "..\script_component.hpp"
|
|
|
|
if ( !hasInterface ) exitWith {};
|
|
|
|
// Add GetOutMan event handler to grant temporary invincibility to players ejecting from vehicles
|
|
// Only for players who have "hooked up" using VS static line
|
|
// and are ejecting from a plane or helicopter above 100m
|
|
player addEventHandler ["GetOutMan", {
|
|
params ["_unit", "_role", "_vehicle", "_turret", "_isEject"];
|
|
if (!isEject) exitWith {};
|
|
if (isNil {_unit getVariable "VS_Jump"}) exitWith {};
|
|
if (
|
|
not (_vehicle isKindOf "Plane" || _vehicle isKindOf "Helicopter") ||
|
|
((getPosATL _vehicle)#2) < 100
|
|
) exitWith {};
|
|
|
|
// disable damage for the unit to avoid collision damage
|
|
_unit allowDamage false;
|
|
// tested - vehicle _unit is the _unit, as this EH runs when they have left the vehicle
|
|
|
|
|
|
[
|
|
{!isNull (objectParent _this)}, // condition - wait until player re-enters vehicle (chute)
|
|
{
|
|
// if they enter a chute within 5 seconds, disable chute damage
|
|
(vehicle _this) allowDamage false;
|
|
// then wait X seconds and re-enable damage for both
|
|
[{
|
|
_this allowDamage true;
|
|
(vehicle _this) allowDamage true;
|
|
}, _this, 5] call CBA_fnc_waitAndExecute;
|
|
},
|
|
_unit, // args
|
|
2, // timeout
|
|
{ // run on timeout, if for some reason they don't enter a chute
|
|
// re-enable damage for unit
|
|
_this allowDamage true;
|
|
}
|
|
] call CBA_fnc_waitUntilAndExecute;
|
|
}]; |