mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Parachute - Add failure chance (#8226)
* Initial push * disable forgotten define * Improve exitWith check * Requested/suggested changes * Requested changes * Requested changes
This commit is contained in:
parent
4726108c8e
commit
00eead47c1
@ -21,6 +21,7 @@ class CfgVehicles {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
MACRO_HASRESERVE
|
MACRO_HASRESERVE
|
||||||
|
GVAR(failureDelay) = 2;
|
||||||
};
|
};
|
||||||
class ParachuteWest: ParachuteBase {
|
class ParachuteWest: ParachuteBase {
|
||||||
MACRO_HASRESERVE
|
MACRO_HASRESERVE
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
PREP(cutParachute);
|
PREP(cutParachute);
|
||||||
|
PREP(handleFailureChance);
|
||||||
PREP(handleInfoDisplayChanged);
|
PREP(handleInfoDisplayChanged);
|
||||||
PREP(handleReserve);
|
PREP(handleReserve);
|
||||||
PREP(hideAltimeter);
|
PREP(hideAltimeter);
|
||||||
|
@ -38,3 +38,5 @@ if (!hasInterface) exitWith {};
|
|||||||
|
|
||||||
// Don't show vanilla speed and height when in expert mode
|
// Don't show vanilla speed and height when in expert mode
|
||||||
["ace_infoDisplayChanged", {_this call FUNC(handleInfoDisplayChanged)}] call CBA_fnc_addEventHandler;
|
["ace_infoDisplayChanged", {_this call FUNC(handleInfoDisplayChanged)}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
|
["vehicle", {_this call FUNC(handleFailureChance)}] call CBA_fnc_addPlayerEventHandler;
|
||||||
|
@ -18,4 +18,13 @@ PREP_RECOMPILE_END;
|
|||||||
{[QGVAR(hideAltimeter), _this, false] call EFUNC(common,cbaSettings_settingChanged)}
|
{[QGVAR(hideAltimeter), _this, false] call EFUNC(common,cbaSettings_settingChanged)}
|
||||||
] call CBA_fnc_addSetting;
|
] call CBA_fnc_addSetting;
|
||||||
|
|
||||||
|
[
|
||||||
|
QGVAR(failureChance),
|
||||||
|
"SLIDER",
|
||||||
|
LSTRING(FailureChance),
|
||||||
|
["ACE Uncategorized", localize "str_dn_parachute"],
|
||||||
|
[0, 1, 0, 2, true],
|
||||||
|
1
|
||||||
|
] call CBA_fnc_addSetting;
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
26
addons/parachute/functions/fnc_handleFailureChance.sqf
Normal file
26
addons/parachute/functions/fnc_handleFailureChance.sqf
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: JoramD
|
||||||
|
* Handles percentage chance parachute failure.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: Vehicle <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [player, vehicle player] call ace_parachute_fnc_handleFailureChance
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_unit", "_vehicle"];
|
||||||
|
|
||||||
|
if !(_vehicle isKindOf "ParachuteBase") exitWith {};
|
||||||
|
|
||||||
|
if (random 1 < GVAR(failureChance)) then {
|
||||||
|
private _failureDelay = getNumber (configOf _vehicle >> QGVAR(failureDelay));
|
||||||
|
[FUNC(cutParachute), [_unit, _vehicle], _failureDelay] call CBA_fnc_waitAndExecute;
|
||||||
|
};
|
@ -133,5 +133,8 @@
|
|||||||
<Spanish>Oculta la altitud y la velocidad que se muestran en caída libre o en paracaídas.</Spanish>
|
<Spanish>Oculta la altitud y la velocidad que se muestran en caída libre o en paracaídas.</Spanish>
|
||||||
<Turkish>Serbest düşme veya paraşütle atlama sırasında gösterilen yüksekliği ve hızı gizler.</Turkish>
|
<Turkish>Serbest düşme veya paraşütle atlama sırasında gösterilen yüksekliği ve hızı gizler.</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Parachute_FailureChance">
|
||||||
|
<English>Parachute Failure Chance</English>
|
||||||
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -16,9 +16,21 @@ version:
|
|||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
class CfgVehicles {
|
class CfgVehicles {
|
||||||
class BananaParachute {
|
class ParachuteBase;
|
||||||
|
class BananaParachute: ParachuteBase {
|
||||||
ace_hasReserveParachute = 1; // Add reserve parachute (1-enabled, 0-disabled)
|
ace_hasReserveParachute = 1; // Add reserve parachute (1-enabled, 0-disabled)
|
||||||
ace_reserveParachute = "ACE_ReserveParachute"; // Classname of the reserve parachute
|
ace_reserveParachute = "ACE_ReserveParachute"; // Classname of the reserve parachute
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 2. Adding failure cut delay
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
class CfgVehicles {
|
||||||
|
class ParachuteBase;
|
||||||
|
class BananaParachute: ParachuteBase {
|
||||||
|
ace_parachute_failureDelay = 2; // Add delay before parachute fails (time in seconds)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user