Skip to content

Commit 628c4e0

Browse files
DomT602Jason2605
andcommitted
Anti-dupe improvement & esc menu handler (#595)
* Initial commit * Missing changes? * fixes Co-authored-by: Jason_000 <Jason2605@users.noreply.github.com>
1 parent da43c4e commit 628c4e0

7 files changed

Lines changed: 58 additions & 81 deletions

File tree

Altis_Life.Altis/Functions.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class Life_Client_Core {
178178
class checkMap {};
179179
class clearVehicleAmmo {};
180180
class dropItems {};
181-
class escInterupt {};
181+
class onGameInterrupt {};
182182
class fetchCfgDetails {};
183183
class fetchDeadGear {};
184184
class fetchVehInfo {};

Altis_Life.Altis/config/Config_SpyGlass.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ class SpyGlass {
248248
"life_fnc_clearvehicleammo","life_fnc_clearvehicleammo_meta","life_fnc_clothingfilter","life_fnc_clothingfilter_meta","life_fnc_clothingmenu","life_fnc_clothingmenu_meta","life_fnc_colorvehicle","life_fnc_colorvehicle_meta","life_fnc_containerinvsearch","life_fnc_containerinvsearch_meta","life_fnc_containermenu","life_fnc_containermenu_meta","life_fnc_copbreakdoor",
249249
"life_fnc_copbreakdoor_meta","life_fnc_cophouseowner","life_fnc_cophouseowner_meta","life_fnc_copinteractionmenu","life_fnc_copinteractionmenu_meta","life_fnc_coplights","life_fnc_coplights_meta","life_fnc_copmarkers","life_fnc_copmarkers_meta","life_fnc_copsearch","life_fnc_copsearch_meta","life_fnc_copsiren",
250250
"life_fnc_copsiren_meta","life_fnc_copsplit","life_fnc_copsplit_meta","life_fnc_corpse","life_fnc_corpse_meta","life_fnc_creategang","life_fnc_creategang_meta","life_fnc_deathscreen","life_fnc_deathscreen_meta","life_fnc_defusekit","life_fnc_defusekit_meta","life_fnc_demochargetimer","life_fnc_demochargetimer_meta","life_fnc_devicemine","life_fnc_devicemine_meta",
251-
"life_fnc_displayhandler","life_fnc_displayhandler_meta","life_fnc_dooranimate","life_fnc_dooranimate_meta","life_fnc_dpfinish","life_fnc_dpfinish_meta","life_fnc_dropfishingnet","life_fnc_dropfishingnet_meta","life_fnc_dropitems","life_fnc_dropitems_meta","life_fnc_escinterupt","life_fnc_escinterupt_meta","life_fnc_escortaction","life_fnc_escortaction_meta",
251+
"life_fnc_displayhandler","life_fnc_displayhandler_meta","life_fnc_dooranimate","life_fnc_dooranimate_meta","life_fnc_dpfinish","life_fnc_dpfinish_meta","life_fnc_dropfishingnet","life_fnc_dropfishingnet_meta","life_fnc_dropitems","life_fnc_dropitems_meta","life_fnc_ongameinterrupt","life_fnc_ongameinterrupt_meta","life_fnc_escortaction","life_fnc_escortaction_meta",
252252
"life_fnc_fedcamdisplay","life_fnc_fedcamdisplay_meta","life_fnc_fetchcfgdetails","life_fnc_fetchcfgdetails_meta","life_fnc_fetchdeadgear","life_fnc_fetchdeadgear_meta","life_fnc_fetchvehinfo","life_fnc_fetchvehinfo_meta","life_fnc_flashbang","life_fnc_flashbang_meta","life_fnc_freezeplayer","life_fnc_freezeplayer_meta","life_fnc_fuellbchange","life_fnc_fuellbchange_meta",
253253
"life_fnc_fuelrefuelcar","life_fnc_fuelrefuelcar_meta","life_fnc_fuelstatopen","life_fnc_fuelstatopen_meta","life_fnc_fuelstore","life_fnc_fuelstore_meta","life_fnc_fuelsupply","life_fnc_fuelsupply_meta","life_fnc_gangcreated","life_fnc_gangcreated_meta","life_fnc_usegangbank","life_fnc_usegangbank_meta","life_fnc_gangdisband","life_fnc_gangdisband_meta","life_fnc_gangdisbanded",
254254
"life_fnc_gangdisbanded_meta","life_fnc_ganginvite","life_fnc_ganginvite_meta","life_fnc_ganginviteplayer","life_fnc_ganginviteplayer_meta","life_fnc_gangkick","life_fnc_gangkick_meta","life_fnc_gangleave","life_fnc_gangleave_meta","life_fnc_gangmenu","life_fnc_gangmenu_meta","life_fnc_gangnewleader","life_fnc_gangnewleader_meta","life_fnc_gangupgrade","life_fnc_gangupgrade_meta",

Altis_Life.Altis/core/fn_setupEVH.sqf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ player addEventHandler ["InventoryOpened", {_this call life_fnc_inventoryOpened}
1515
player addEventHandler ["HandleRating", {0}];
1616

1717
addMissionEventHandler ["Map", {_this call life_fnc_checkMap}];
18+
19+
[missionNamespace,"OnGameInterrupt",{_this call life_fnc_onGameInterrupt}] call BIS_fnc_addScriptedEventHandler;

Altis_Life.Altis/core/functions/fn_escInterupt.sqf

Lines changed: 0 additions & 69 deletions
This file was deleted.

Altis_Life.Altis/core/functions/fn_inventoryOpened.sqf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,11 @@ private _list = ["LandVehicle", "Ship", "Air"];
4646
true breakOut "main";
4747
};
4848
} count [_container, _secContainer];
49+
50+
[] spawn {
51+
private _startTime = time;
52+
waitUntil {!(isNull (findDisplay 49)) || time > (_startTime + 2.5)};
53+
if !(isNull (findDisplay 49)) then {
54+
(findDisplay 49) closeDisplay 2; //close Esc dialog
55+
};
56+
};
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#include "..\..\script_macros.hpp"
2+
/*
3+
File: fn_onGameInterrupt.sqf
4+
Author: DomT602
5+
Description: Handles game interuptions - ie when esc menu is opened.
6+
*/
7+
params [
8+
["_display",displayNull,[displayNull]]
9+
];
10+
11+
private _abortButton = _display displayCtrl 104;
12+
private _respawnButton = _display displayCtrl 1010;
13+
private _fieldManual = _display displayCtrl 122;
14+
private _saveButton = _display displayCtrl 103;
15+
private _topButton = _display displayCtrl 2;
16+
17+
_abortButton ctrlEnable false;
18+
_abortButton buttonSetAction "call SOCK_fnc_updateRequest; [player] remoteExec [""TON_fnc_cleanupRequest"",2];";
19+
_respawnButton ctrlEnable false;
20+
_fieldManual ctrlEnable false;
21+
_saveButton ctrlEnable false;
22+
23+
if (LIFE_SETTINGS(getNumber,"escapeMenu_displayExtras") isEqualTo 1) then {
24+
_topButton ctrlEnable false;
25+
_topButton ctrlSetText (LIFE_SETTINGS(getText,"escapeMenu_displayText"));
26+
_saveButton ctrlSetText format ["Player UID: %1",getPlayerUID player];
27+
};
28+
29+
private _conditions = playerSide isEqualTo west || {!((player getVariable ["restrained",false]) || {player getVariable ["Escorting",false]} || {player getVariable ["transporting",false]} || {life_is_arrested} || {life_istazed} || {life_isknocked})};
30+
if (_conditions) then {
31+
[_display,_abortButton] spawn {
32+
params ["_display","_abortButton"];
33+
private _abortTime = LIFE_SETTINGS(getNumber,"escapeMenu_timer");
34+
private _timeStamp = time + _abortTime;
35+
36+
waitUntil {
37+
_abortButton ctrlSetText format [localize "STR_NOTF_AbortESC",[(_timeStamp - time),"SS.MS"] call BIS_fnc_secondsToString];
38+
if (dialog && {isNull (findDisplay 7300)}) then {closeDialog 0};
39+
40+
(_timeStamp - time) <= 0 || {isNull _display || {!alive player}}
41+
};
42+
if (!alive player) exitWith {};
43+
_abortButton ctrlSetText localize "STR_DISP_INT_ABORT";
44+
_abortButton ctrlEnable true;
45+
};
46+
};

Altis_Life.Altis/core/init.sqf

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ diag_log "[Life Client] Server loading completed ";
4444
waitUntil {life_session_completed};
4545
0 cutText[localize "STR_Init_ClientFinish","BLACK FADED",99999999];
4646

47-
[] spawn life_fnc_escInterupt;
48-
4947
switch (playerSide) do {
5048
case west: {
5149
life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_cop");
@@ -80,14 +78,6 @@ diag_log "[Life Client] Executing client.fsm";
8078

8179
0 cutText ["","BLACK IN"];
8280

83-
[] spawn {
84-
for "_i" from 0 to 1 step 0 do {
85-
waitUntil {(!isNull (findDisplay 49)) && {(!isNull (findDisplay 602))}}; // Check if Inventory and ESC dialogs are open
86-
(findDisplay 49) closeDisplay 2; // Close ESC dialog
87-
(findDisplay 602) closeDisplay 2; // Close Inventory dialog
88-
};
89-
};
90-
9181
addMissionEventHandler ["EachFrame", life_fnc_playerTags];
9282
addMissionEventHandler ["EachFrame", life_fnc_revealObjects];
9383

0 commit comments

Comments
 (0)