diff --git a/cScripts/functions/modules/fn_zenModule_callEndex.sqf b/cScripts/functions/modules/fn_zenModule_callEndex.sqf
index 0e4c9e022..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
@@ -19,6 +20,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 +29,7 @@ params ["_modulePos", "_objectPos"];
{
params ["_arg", "_pos"];
_arg params [
+ "_endex",
"_weaponsSafe",
"_aiPacified",
"_holdFireMessage",
@@ -34,6 +37,18 @@ params ["_modulePos", "_objectPos"];
];
_pos params ["_modulePos"];
+ // End endex
+ 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
"ENDEX ENDEX ENDEX" remoteExecCall ["systemChat", -2];
"DEBRIEF" remoteExecCall ["systemChat", -2];
@@ -50,74 +65,77 @@ params ["_modulePos", "_objectPos"];
//Set Safety to all Players
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.");
+ 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)
- 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));
};
if (_holdFireMessage) then {
[
{
- {
- [
- player,
- "fired",
- {
- params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"];
+ [{
+
+ private _fn_handleDischarge = {
+ params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"];
- private _hftitle = format[
- "%1 %2
hold your Fire!
",
+ 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 ["bis_fnc_call", 0];
- },
+ ] remoteExec ["systemChat", 0];
+ _unit setVariable [QEGVAR(player,endexFiredWeapon), _muzzle];
+ };
+ };
+ if (!isNil{GETVAR(_unit,EGVAR(Endex,EventsAdded),nil)}) then {
+ [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);
+ };
+ }] remoteExec ["call", -2];
+ },
[], 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]