From 6790211ffcd37fcd09dc16d0c5ffe7a2b8eb3cad Mon Sep 17 00:00:00 2001 From: AndreasBrostrom Date: Tue, 30 Jul 2024 11:21:10 +0200 Subject: [PATCH 1/3] Added improvments to endex call --- .../modules/fn_zenModule_callEndex.sqf | 77 +++++++++++-------- 1 file changed, 44 insertions(+), 33 deletions(-) diff --git a/cScripts/functions/modules/fn_zenModule_callEndex.sqf b/cScripts/functions/modules/fn_zenModule_callEndex.sqf index 0e4c9e022..5834d151b 100644 --- a/cScripts/functions/modules/fn_zenModule_callEndex.sqf +++ b/cScripts/functions/modules/fn_zenModule_callEndex.sqf @@ -19,6 +19,7 @@ params ["_modulePos", "_objectPos"]; [ "Call Endex", [ + ["CHECKBOX", ["Call Endex", "False will end the endex"], true, false], ["CHECKBOX", ["Set Player Weapons To Safe", ""], true, false], ["CHECKBOX", ["Pacify AI", ""], true, false], ["CHECKBOX", ["Hint Players That Fire", ""], true, false], @@ -27,6 +28,7 @@ params ["_modulePos", "_objectPos"]; { params ["_arg", "_pos"]; _arg params [ + "_endex", "_weaponsSafe", "_aiPacified", "_holdFireMessage", @@ -34,6 +36,13 @@ params ["_modulePos", "_objectPos"]; ]; _pos params ["_modulePos"]; + // End endex + if (!_endex && GETMVAR(EGVAR(Mission,Endex),false)) then { + "ENDEX CANCELED" remoteExecCall ["systemChat", -2]; + SETMVAR(EGVAR(Mission,Endex),false); + INFO_2("ENDEX", "Mission var %1 is set %2",QEGVAR(Mission,Endex),GETMVAR(EGVAR(Mission,Endex),false)); + }; + //systemChat Endex message "ENDEX ENDEX ENDEX" remoteExecCall ["systemChat", -2]; "DEBRIEF" remoteExecCall ["systemChat", -2]; @@ -52,7 +61,7 @@ params ["_modulePos", "_objectPos"]; if (_weaponsSafe) then { { private _weapon = currentWeapon player; - private _safedWeapons = player getVariable ['ace_safemode_safedWeapons', []]; + private _safedWeapons = GETVAR(player,ace_safemode_safedWeapons,[]); if !(_weapon in _safedWeapons) then { [player, currentWeapon player, currentMuzzle player] call ace_safemode_fnc_lockSafety; INFO_2("ZEN", "%1 weapon (%2) have been set to safe."); @@ -67,11 +76,11 @@ params ["_modulePos", "_objectPos"]; }; //Change AI to careless (doesn't affected AI created after Endex) - if (_aiPacified) then { + if (_aiPacified) then { { (group _x) setBehaviourStrong "CARELESS"; (group _x) setCombatMode "BLUE"; - INFO_2("ZEN", "AI %1 group (%2) have been set to careless and blue.", _x, group _x); + INFO_2("ENDEX", "AI %1 group (%2) have been set to careless and blue.", _x, group _x); } forEach ((allUnits) - (allPlayers)); }; @@ -79,45 +88,47 @@ params ["_modulePos", "_objectPos"]; [ { { - [ - player, - "fired", - { - params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"]; - private _hftitle = format[ - "%1 %2
hold your Fire!


", + private _fn_handleDischarge = { + params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"]; + + if (!GETMVAR(EGVAR(Mission,Endex),false)) exitWith {}; + private _hftitle = format[ + "%1 %2
hold your Fire!


", + [_unit, 'USA'] call EFUNC(player,getRank), + [_unit] call EFUNC(unit,getName) + ]; + private _hfimage = "

"; + private _hftext = "You are not allowed to discharge your weapon during Endex.
"; + + hint parseText (_hftitle + _hfimage + _hftext); + format ["Player %1 have discharge his weapon (%2; %3) during endex.", name _unit, _weapon, _muzzle] remoteExecCall [QFUNC(info), 0]; + if ( _unit getVariable [QEGVAR(player,endexFiredWeapon), ""] != _muzzle ) then { + format [ + "Hold your fire %1 %2!", [_unit, 'USA'] call EFUNC(player,getRank), [_unit] call EFUNC(unit,getName) - ]; - private _hfimage = "

"; - private _hftext = "You are not allowed to discharge your weapon during Endex.
"; - - hint parseText (_hftitle + _hfimage + _hftext); - format ["Player %1 have discharge his weapon (%2; %3) during endex.", name _unit, _weapon, _muzzle] remoteExecCall [QFUNC(info), 0]; - if ( _unit getVariable [QEGVAR(player,endexFiredWeapon), ""] != _muzzle ) then { - format [ - "Hold your fire %1 %2!", - [_unit, 'USA'] call EFUNC(player,getRank), - [_unit] call EFUNC(unit,getName) - ] remoteExecCall ["systemChat", 0]; - _unit setVariable [QEGVAR(player,endexFiredWeapon), _muzzle]; - }; - } - ] call CBA_fnc_addBISEventHandler; + ] remoteExecCall ["systemChat", 0]; + _unit setVariable [QEGVAR(player,endexFiredWeapon), _muzzle]; + }; + }; + if (!isNil{GETVAR(_unit,EGVAR(Endex,EventsAdded),nil)}) then { + [player, "fired", {_this call _fn_handleDischarge}] call CBA_fnc_addBISEventHandler; + ["ace_firedPlayer", {_this call _fn_handleDischarge}] call CBA_fnc_addEventHandler; + ["ace_firedPlayerVehicle", {_this call _fn_handleDischarge}] call CBA_fnc_addEventHandler; + SETVAR(_unit,EGVAR(Endex,EventsAdded),true); + }; } remoteExecCall ["bis_fnc_call", 0]; - }, + }, [], 10] call CBA_fnc_waitAndExecute; }; - if (isNil{missionNamespace getVariable QEGVAR(Mission,Endex)}) then { - missionNamespace setVariable [QEGVAR(Mission,Endex), True]; - INFO_2("", "Mission var %1 is set %2", QEGVAR(Mission,Endex), missionNamespace getVariable [QEGVAR(Mission,Endex), false]); - }; - + SETMVAR(EGVAR(Mission,Endex),true); + INFO_2("ENDEX", "Mission var %1 is set %2",QEGVAR(Mission,Endex),GETMVAR(EGVAR(Mission,Endex),false)); + [QGVAR(getAttendance)] call CBA_fnc_localEvent; - ["Endex called (All attended players have been saved to your RPT log)"] call zen_common_fnc_showMessage; + ["Endex called"] call zen_common_fnc_showMessage; }, {}, [_modulePos] From 75547cef0614913027d748fb52a5e9ef85572813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brostr=C3=B6m=2EA=20=7C=20Evul?= Date: Tue, 13 Aug 2024 13:31:54 +0200 Subject: [PATCH 2/3] Possible fix for function call --- cScripts/functions/modules/fn_zenModule_callEndex.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cScripts/functions/modules/fn_zenModule_callEndex.sqf b/cScripts/functions/modules/fn_zenModule_callEndex.sqf index 5834d151b..6911c8496 100644 --- a/cScripts/functions/modules/fn_zenModule_callEndex.sqf +++ b/cScripts/functions/modules/fn_zenModule_callEndex.sqf @@ -113,9 +113,9 @@ params ["_modulePos", "_objectPos"]; }; }; if (!isNil{GETVAR(_unit,EGVAR(Endex,EventsAdded),nil)}) then { - [player, "fired", {_this call _fn_handleDischarge}] call CBA_fnc_addBISEventHandler; - ["ace_firedPlayer", {_this call _fn_handleDischarge}] call CBA_fnc_addEventHandler; - ["ace_firedPlayerVehicle", {_this call _fn_handleDischarge}] call CBA_fnc_addEventHandler; + [player, "fired", {_this call _thisArgs#0}, [_fn_handleDischarge]] call CBA_fnc_addBISEventHandler; + ["ace_firedPlayer", {_this call _thisArgs#0}] call CBA_fnc_addEventHandler; + ["ace_firedPlayerVehicle", {_this call _thisArgs#0}] call CBA_fnc_addEventHandler; SETVAR(_unit,EGVAR(Endex,EventsAdded),true); }; } remoteExecCall ["bis_fnc_call", 0]; From 0ccd63de7d0fbc8e5eebd005466e2406b099a490 Mon Sep 17 00:00:00 2001 From: AndreasBrostrom Date: Tue, 13 Aug 2024 14:01:00 +0200 Subject: [PATCH 3/3] Added logging and rewritten some stuff --- .../modules/fn_zenModule_callEndex.sqf | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/cScripts/functions/modules/fn_zenModule_callEndex.sqf b/cScripts/functions/modules/fn_zenModule_callEndex.sqf index 6911c8496..7bf869dcc 100644 --- a/cScripts/functions/modules/fn_zenModule_callEndex.sqf +++ b/cScripts/functions/modules/fn_zenModule_callEndex.sqf @@ -1,3 +1,4 @@ +#define DEBUG_MODE #include "..\script_component.hpp"; /* * Author: CPL.Brostrom.A, CPL.Dunn.W @@ -37,10 +38,15 @@ params ["_modulePos", "_objectPos"]; _pos params ["_modulePos"]; // End endex - if (!_endex && GETMVAR(EGVAR(Mission,Endex),false)) then { - "ENDEX CANCELED" remoteExecCall ["systemChat", -2]; - SETMVAR(EGVAR(Mission,Endex),false); - INFO_2("ENDEX", "Mission var %1 is set %2",QEGVAR(Mission,Endex),GETMVAR(EGVAR(Mission,Endex),false)); + if (!_endex) then { + if (GETMVAR(EGVAR(Mission,Endex),true)) exitWith { + "ENDEX CANCELED" remoteExecCall ["systemChat", -2]; + SETMVAR(EGVAR(Mission,Endex),false); + INFO_2("ENDEX", "Mission var %1 is set %2",QEGVAR(Mission,Endex),GETMVAR(EGVAR(Mission,Endex),false)); + }; + if (!GETMVAR(EGVAR(Mission,Endex),true)) exitWith { + INFO_2("ENDEX", "No endex in progress",QEGVAR(Mission,Endex),GETMVAR(EGVAR(Mission,Endex),false)); + }; }; //systemChat Endex message @@ -59,20 +65,21 @@ params ["_modulePos", "_objectPos"]; //Set Safety to all Players if (_weaponsSafe) then { - { + [{ private _weapon = currentWeapon player; private _safedWeapons = GETVAR(player,ace_safemode_safedWeapons,[]); if !(_weapon in _safedWeapons) then { [player, currentWeapon player, currentMuzzle player] call ace_safemode_fnc_lockSafety; - INFO_2("ZEN", "%1 weapon (%2) have been set to safe."); + INFO_4("ENDEX", "Player %1 [%2] weapon ([%3, %4]) have been set to safe.",player, typeOf player, currentWeapon player, currentMuzzle player); }; - } remoteExecCall ["bis_fnc_call", -2]; + }] remoteExec ["call", -2]; }; if (_healAllPlayers) then { - { + [{ [player, player] call ace_medical_fnc_treatmentAdvanced_fullHealLocal; - } remoteExecCall ["bis_fnc_call", -2]; + INFO_2("ENDEX", "%1 [%2] have been healed.",player, typeOf player); + }] remoteExec ["call", -2]; }; //Change AI to careless (doesn't affected AI created after Endex) @@ -87,7 +94,7 @@ params ["_modulePos", "_objectPos"]; if (_holdFireMessage) then { [ { - { + [{ private _fn_handleDischarge = { params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"]; @@ -108,17 +115,17 @@ params ["_modulePos", "_objectPos"]; "Hold your fire %1 %2!", [_unit, 'USA'] call EFUNC(player,getRank), [_unit] call EFUNC(unit,getName) - ] remoteExecCall ["systemChat", 0]; + ] remoteExec ["systemChat", 0]; _unit setVariable [QEGVAR(player,endexFiredWeapon), _muzzle]; }; }; if (!isNil{GETVAR(_unit,EGVAR(Endex,EventsAdded),nil)}) then { - [player, "fired", {_this call _thisArgs#0}, [_fn_handleDischarge]] call CBA_fnc_addBISEventHandler; - ["ace_firedPlayer", {_this call _thisArgs#0}] call CBA_fnc_addEventHandler; - ["ace_firedPlayerVehicle", {_this call _thisArgs#0}] call CBA_fnc_addEventHandler; + [player, "fired", {player call _thisArgs#0}, [_fn_handleDischarge]] call CBA_fnc_addBISEventHandler; + ["ace_firedPlayer", {player call _thisArgs#0;}, [_fn_handleDischarge]] call CBA_fnc_addEventHandlerArgs; + ["ace_firedPlayerVehicle", {player call _thisArgs#0}, [_fn_handleDischarge]] call CBA_fnc_addEventHandlerArgs; SETVAR(_unit,EGVAR(Endex,EventsAdded),true); }; - } remoteExecCall ["bis_fnc_call", 0]; + }] remoteExec ["call", -2]; }, [], 10] call CBA_fnc_waitAndExecute; };