Files
Samuele Lorefice 9e023649ac initial files
2025-05-24 16:17:33 +02:00

65 lines
2.0 KiB
Plaintext

private [ "_dialog", "_backpack", "_backpackcontents" ];
if ( isNil "GRLIB_last_halo_jump" ) then { GRLIB_last_halo_jump = -6000; };
if ( GRLIB_halo_param > 1 && ( GRLIB_last_halo_jump + ( GRLIB_halo_param * 60 ) ) >= time ) exitWith {
hint format [ localize "STR_HALO_DENIED_COOLDOWN", ceil ( ( ( GRLIB_last_halo_jump + ( GRLIB_halo_param * 60 ) ) - time ) / 60 ) ];
};
_dialog = createDialog "liberation_halo";
dojump = 0;
halo_position = getpos player;
_backpackcontents = [];
[ "halo_map_event", "onMapSingleClick", { halo_position = _pos } ] call BIS_fnc_addStackedEventHandler;
"spawn_marker" setMarkerTextLocal (localize "STR_HALO_PARAM");
waitUntil { dialog };
while { dialog && alive player && dojump == 0 } do {
"spawn_marker" setMarkerPosLocal halo_position;
sleep 0.1;
};
if ( dialog ) then {
closeDialog 0;
sleep 0.1;
};
"spawn_marker" setMarkerPosLocal markers_reset;
"spawn_marker" setMarkerTextLocal "";
[ "halo_map_event", "onMapSingleClick" ] call BIS_fnc_removeStackedEventHandler;
if ( dojump > 0 ) then {
GRLIB_last_halo_jump = time;
halo_position = halo_position getPos [random 250, random 360];
halo_position = [ halo_position select 0, halo_position select 1, GRLIB_halo_altitude + (random 200) ];
halojumping = true;
sleep 0.1;
cutRsc ["fasttravel", "PLAIN", 1];
playSound "parasound";
sleep 2;
_backpack = backpack player;
if ( _backpack != "" && _backpack != "B_Parachute" ) then {
_backpackcontents = backpackItems player;
removeBackpack player;
sleep 0.1;
};
player addBackpack "B_Parachute";
player setpos halo_position;
sleep 4;
halojumping = false;
waitUntil { !alive player || isTouchingGround player };
if ( _backpack != "" && _backpack != "B_Parachute" ) then {
sleep 2;
player addBackpack _backpack;
clearAllItemsFromBackpack player;
{ player addItemToBackpack _x } foreach _backpackcontents;
};
};