diff --git a/.github/changelog.md b/.github/changelog.md
index 62c5f90..3942756 100644
--- a/.github/changelog.md
+++ b/.github/changelog.md
@@ -1,3 +1,88 @@
+# Changelog: MRH Milsim Tools version : v.1.18.1
+
+## Core
+* Added : Loadout recap in diary will now display loadout weight as well as occupied space in vest, uniform, and backpack. As with the rest it is updated everytime inventory is closed.
+* Changed : Roster was only added to diary after the briefing phase, now it will be there from the start.
+* Tweaked : Briefing roster should now get refreshed every time a new player gets connected.
+* Added some new global variables :
+**MRH_allPlayers** = All players minus headless clients.
+**MRH_allAlivePlayers** = All players that are considered 'Alive' by milsim tools minus headless clients.
+**MRH_allAliveAndConsciousPlayers** = All players that are considered 'Alive' by milsim tools, conscious by ACE 3 minus headless clients.
+The variables are refreshed on all clients and the server :
+-Whenever a player connects
+-Whenever a player disconnects
+-Whenever a player is killed
+-Whenever a player's conscious state is changed
+-Whenever a player respawns
+-Whenever the setRevived function is called on a unit
+* You can call MRH_fnc_MilsimTools_Core_allPlayers to manually update them on a local machine, the function also returns one of these depending on parameters sent to it, see function header for more.
+* Added :
+##### CBA Events
+```
+"MRH_playerConnected_EH", //same parametres as player connected EH but raised globally
+"MRH_playerDisconnected_EH", //same parametres as player disconnected EH but raised globally
+"MRH_playerOnly_ace_unconscious", // same as ace_uncounsious event, raised globally but only when a player's state changes (not raised for AIs unlike the ACE3 event its based on) params ["_unit", "_state"];
+"MRH_playerKilled", Same as MPKilled
+"MRH_playerRespawned_global", // raised globally when a player respawns params ["_unit", "_corpse"];
+"MRH_playerWasSetAsRevived" // raised globally when an admin resets "hasDied" condition on a player (via the admin menu or the setRevived function) target player is passed as a parameter.
+```
+
+## Radio Chatter
+* Changed : Volume of sounds of default radio lowered to 5 . Since arma A3 v1.91.145537 any volume exceeding 5 will not play since the function uses playSound3D ,getSoundFile function will automatically reduce returned volume to 5 if volume is above that.
+
+## Heli Taxi :
+* Tweaked: Heli taxi now makes use of the core clear waypoints function, should hopefully fix some issues when setting a new course
+
+## Soldier tab
+* Added : BluFor Tracker on tablet
+> Blufor tracker only works when the tablet is connected to an antenna. On the tracker units will only show up if they are equipped with one of the following items:
+1. "MRH_SoldierTab", PDA from milsim tools
+2. "MRH_BluForTransponder", transponder from MRH Satellite mod
+3. "ItemcTab", rugged tablet from cTab mod
+4. "ItemAndroid", android device from cTab mod
+5. "ACE_microDAGR" from ACE3
+In addition, units will show on the blufor tracker if they are in a vehicle that's listed by the mod. by default most of vanilla, RHS USAF, RHS AFRF and RHS GREF APCs, Tanks, MRAPS, helicopters, boats and planes are included.
+If you want to include a custom class of either Items or vehicles to the recognized vehicles you can use:
+```
+Function name:MRH_fnc_MilsimTools_Core_addToBFTenabledList
+Author: Mr H.
+Description: Will add the class to vehicles or items that show up on the BluFor tracker (provided a friendly unit is in them or they have item on self)
+Return value: List of all allowed classes, updated with new ones
+Public: Yes
+Parameters:
+0- or of can either be vehicles classnames or items classnames
+Example(s):
+["My_vehicle"]call MRH_fnc_MilsimTools_Core_addToBFTenabledList;
+["My_item"]call MRH_fnc_MilsimTools_Core_addToBFTenabledList;
+[["My_veh1","My_veh2","My_veh3","My_item1","My_item2"]]call MRH_fnc_MilsimTools_Core_addToBFTenabledList;
+```
+or from an addon, add the property to a cfgVehicles class //not yet implemented for cfgWeapons items
+
+```
+mrh_satcom = 1;
+```
+
+or list them in
+```
+class MRH_BFT_enabledClasses
+{
+ class enabledClasses
+ {
+ classes[]={};//vehicles or items
+ };
+};
+```
+* Added : In vehicles with satcom capabilities players can connect their tablet's to the vehicle's satcom system, they can also connect it from outside but distance limitations apply and you will loose the signal when going too far frome a vehicle.
+> Addon builders can add the property
+```
+mrh_satcom = 1;
+```
+To their configs to add satcom capabilities to their vehicles.
+> Some RHS/gref/usaf/afrf vehicles are already added by script (so as not to add a dependency.
+I may release a compatibilty mod in the future for RHS if requested.
+
+//////////////////////////////////////////////////
+
# Changelog: MRH Milsim Tools version : v.1.18.0
## Core
* Added : Loadout summary in diary.
diff --git a/Addons/MRHHeliTaxi/Functions/fn_MilsimTools_HeliTaxi_buttonAction.sqf b/Addons/MRHHeliTaxi/Functions/fn_MilsimTools_HeliTaxi_buttonAction.sqf
index ad5c588..3937a91 100644
--- a/Addons/MRHHeliTaxi/Functions/fn_MilsimTools_HeliTaxi_buttonAction.sqf
+++ b/Addons/MRHHeliTaxi/Functions/fn_MilsimTools_HeliTaxi_buttonAction.sqf
@@ -8,26 +8,18 @@ Example(s):
call MRH_fnc_MilsimTools_HeliTaxi_buttonAction;
*/
#include "MRH_C_Path.hpp"
-_veh = vehicle MRH_player;
-_isInFinalApp = _veh GVARDef(isInFinalApproachPhase,false);
+private _veh = vehicle MRH_player;
+private _isInFinalApp = _veh GVARDef(isInFinalApproachPhase,false);
if (_isInFinalApp) exitWith {closedialog 0; hintC (localize "STR_MRH_HeliTaxi_LandingChangeDeniedHint");};
-_wayPointsMarkers = MRH_player GVARDef(setWaypoints,[]);
+private _wayPointsMarkers = MRH_player GVARDef(setWaypoints,[]);
//check that destination is set
-_color = getMarkerColor "MRH_LZ_Marker";
+private _color = getMarkerColor "MRH_LZ_Marker";
if (_color == "") ExitWith {hint (localize "STR_MRH_HeliTaxi_NoDestError")};
//-- clear previous waypoints for the vehicle
-_oldWaypoints = waypoints group _veh;
-_hadWaypoints =false;
+private _oldWaypoints = waypoints group _veh;
+private _hadWaypoints =false;
if (count _oldWaypoints >1) then {
- _testArrAy= [];
- _waypoint0 = (group _veh) addwaypoint [getpos _veh,0];
- (group _veh) setCurrentWaypoint _waypoint0;
- for "_i" from 0 to ((count _oldWaypoints)+1) do
- {
-
- deleteWaypoint [group _veh, 1];
-
- };
+ [group _veh] CFUNC(clearAllWayPoints);
_hadWaypoints = true;
};
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_AddBriefingRoster.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_AddBriefingRoster.sqf
index 4cf9e70..ea0c5bb 100644
--- a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_AddBriefingRoster.sqf
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_AddBriefingRoster.sqf
@@ -10,15 +10,22 @@ call MRH_fnc_MilsimTools_Core_AddBriefingRoster;
*/
#include "MRH_C_Path.hpp"
-_parameters = call MRH_fnc_MilsimTools_Core_ApplyRosterTextSettings;
-_rosterText = _parameters call MRH_fnc_MilsimTools_Core_GenerateRosterText;
+private _parameters = call MRH_fnc_MilsimTools_Core_ApplyRosterTextSettings;
+private _rosterText = _parameters call MRH_fnc_MilsimTools_Core_GenerateRosterText;
-_convert = [_rosterText,"t font","font face"] call CBA_fnc_replace;
+private _convert = [_rosterText,"t font","font face"] call CBA_fnc_replace;
_convert = [_convert, "t color", "font color"] call CBA_fnc_replace;
_convert = [_convert, "
>"cfgVehicles">>typeOf _x>>"icon"),
+ [([side _x, false] call BIS_fnc_sideColor),[0,1,1,1]]select (_x isEqualTo MRH_player),
+ getPos _x,
+ 24,
+ 24,
+ [getDir _x,0] select isFormationLeader _x,
+ name _x,
+ 0,
+ 0.05,
+ "Unifont",
+ "right"
+ ];
+ };
+ if (isFormationLeader _x) then
+ {
+ private _icons = [group _x] FUNC(NATO_symbols_for);
+ _icons params ["_icon","_modifier"];
+ _ctrlMap drawIcon
+ [
+ _icon,
+ [([side _x, false] call BIS_fnc_sideColor),[0,1,1,1]]select (_x isEqualTo MRH_player),
+ (getPos _x)vectorAdd [0,4,0],
+ 24,
+ 24,
+ [getDir _x,0] select isFormationLeader _x,
+ ["",groupId group _x] select isFormationLeader _x,
+ 0,
+ 0.05,
+ "Unifont",
+ "right"
+ ];
+ _ctrlMap drawIcon
+ [
+ _modifier,
+ ([side _x, false] call BIS_fnc_sideColor),
+ (getPos _x)vectorAdd [0,2,0],
+ 24,
+ 24,
+ [getDir _x,0] select isFormationLeader _x,
+ ["",groupId group _x] select isFormationLeader _x,
+ 0,
+ 0.05,
+ "Unifont",
+ "right"
+ ];
+ };
+ };
+
+ }forEach _units;
+
+ },
+ [_units,_ctrlMap],
+ {},
+ {
+ ((ctrlShown (_this select 1)) && ([MRH_Player] FUNC(isConnectedToAntenna)))
+ }
+ ] FUNC(conditionalPFEH);
+ TRACE("BFT called");
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_NATO_symbols_for.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_NATO_symbols_for.sqf
new file mode 100644
index 0000000..7b7b38d
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_NATO_symbols_for.sqf
@@ -0,0 +1,42 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_;
+*/
+#include "MRH_C_Path.hpp"
+ params ["_grp"];
+ private ["_icon","_modifier","_leader"];
+ _leader = leader _grp;
+ switch (true) do
+ {
+ case (isNull (objectParent _leader)):{
+ if ((rank _leader) in ["CAPTAIN","MAJOR","COLONEL"])then {_icon ="\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa"}else {_icon ="\A3\Ui_f\data\Map\Markers\NATO\b_inf.paa"
+ }};
+ case( (objectParent _leader)isKindOf "AIR") :{_icon ="\A3\ui_f\data\map\markers\nato\b_plane.paa"};
+ case( (objectParent _leader)isKindOf "Car") :{_icon = "\A3\ui_f\data\map\markers\nato\b_motor_inf.paa"};
+ case( (objectParent _leader)isKindOf "APC_Tracked_01_base_F") :{_icon = "\A3\ui_f\data\map\markers\nato\b_mech_inf.paa"};
+ case( (objectParent _leader)isKindOf "Tank") :{_icon = "\A3\ui_f\data\map\markers\nato\b_armor.paa"};
+ case( (objectParent _leader)isKindOf "Static") :{_icon ="\A3\ui_f\data\map\markers\nato\b_mortar.paa"};
+ case( (objectParent _leader)isKindOf "Boat_F") :{_icon ="\A3\ui_f\data\map\markers\nato\b_naval.paa"};
+ default {_icon ="\A3\Ui_f\data\Map\Markers\NATO\b_inf.paa"};
+ };
+
+
+
+ switch (true) do
+ {
+ case (rank _leader == "PRIVATE"): {_modifier =""};
+ case (rank _leader == "CORPORAL"): {_modifier = "\A3\ui_f\data\map\markers\nato\group_0.paa";};
+ case (rank _leader == "SERGEANT"): {_modifier = "\A3\ui_f\data\map\markers\nato\group_1.paa"};
+ case (rank _leader == "LIEUTENANT"): {_modifier ="\A3\ui_f\data\map\markers\nato\group_3.paa"};
+ case (rank _leader == "CAPTAIN"): {_modifier ="\A3\ui_f\data\map\markers\nato\group_4.paa"};
+ case (rank _leader == "MAJOR"): {_modifier ="\A3\ui_f\data\map\markers\nato\group_5.paa"};
+ case (rank _leader == "COLONEL"): {_modifier ="\A3\ui_f\data\map\markers\nato\group_6.paa"};
+ };
+ [_icon,_modifier]
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_SetRevived.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_SetRevived.sqf
index 33d1f8c..5e22648 100644
--- a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_SetRevived.sqf
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_SetRevived.sqf
@@ -27,4 +27,5 @@ if (_uid == _x select 0) then {_deadPlayersNew deleteAt (_deadPlayersNew find _
//if (_uid == _x select 0) then {_allDeadPlayersInclude deleteAt (_allDeadPlayersInclude find _x);};
} forEach _allDeadPlayersInclude;
-missionNamespace setVariable ["MRH_MilsimTools_Core_allIncludingDisconnectedDeadPlayers",_deadPlayersNew,true];
\ No newline at end of file
+missionNamespace setVariable ["MRH_MilsimTools_Core_allIncludingDisconnectedDeadPlayers",_deadPlayersNew,true];
+["MRH_playerWasSetAsRevived",_target] call CBA_fnc_globalEvent;
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_addToBFTenabledList.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_addToBFTenabledList.sqf
new file mode 100644
index 0000000..467e9f2
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_addToBFTenabledList.sqf
@@ -0,0 +1,20 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_addToBFTenabledList
+Author: Mr H.
+Description: Will add the class to vehicles or items that show up on the BluFor tracker (provided a friendly unit is in them or they have item on self)
+Return value: List of all allowed classes, updated with new ones
+Public: Yes
+Parameters:
+0- or of can either be vehicles classnames or items classnames
+Example(s):
+["My_vehicle"]call MRH_fnc_MilsimTools_Core_addToBFTenabledList;
+["My_item"]call MRH_fnc_MilsimTools_Core_addToBFTenabledList;
+[["My_veh1","My_veh2","My_veh3","My_item1","My_item2"]]call MRH_fnc_MilsimTools_Core_addToBFTenabledList;
+*/
+#include "MRH_C_Path.hpp"
+params ["_add"];
+private _allowedClasses = missionNamespace getVariable ["MRH_soldierTab_BFT_enabling_items_andVehs",[]];
+if ((typeName _add)isEqualTo "ARRAY")then {_allowedClasses append _add};
+if ((typeName _add)isEqualTo "STRING")then {_allowedClasses pushBackUnique _add};
+missionNamespace setVariable ["MRH_soldierTab_BFT_enabling_items_andVehs",_allowedClasses,true];
+_allowedClasses
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_allPlayers.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_allPlayers.sqf
new file mode 100644
index 0000000..aac45bb
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_allPlayers.sqf
@@ -0,0 +1,48 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_allPlayers
+Author: Mr H.
+Description: Sets the variables MRH_allplayers (allplayers excluding HCs), MRH_allAlivePlayers (allplayers excluding HCs that are considered alive by Milsim Tools) and MRH_allAliveAndConsciousPlayers (allplayers excluding HCs that are considered alive by Milsim Tools and conscious by ACE3) on the LOCAL machine various events call this function on every machine.
+NOTE: These are auto-updated everywhere:
+-Whenever a player connects
+-Whenever a player disconnects
+-Whenever a player is killed
+-Whenever a player's conscious state is changed
+-Whenever a player respawns
+-Whenever the setRevived function is called on a unit
+
+Return value: MRH_allPlayers OR MRH_allAlivePlayers OR MRH_allAliveAndConsciousPlayers depending on the input parameter, default is MRH_allPlayers
+Public: Yes
+Parameters:
+ 0- optionnal, if 0 (default) will return MRH_allPlayers, 1 MRH_allAlivePlayers,2 MRH_allAliveAndConsciousPlayers
+
+Example(s):
+call MRH_fnc_MilsimTools_Core_allPlayers;
+0 call MRH_fnc_MilsimTools_Core_allPlayers;
+//both of the above return MRH_allPlayers
+
+1 call MRH_fnc_MilsimTools_Core_allPlayers; //returns MRH_allAlivePlayers
+2 call MRH_fnc_MilsimTools_Core_allPlayers; // returns MRH_allAliveAndConsciousPlayers
+
+*/
+#include "MRH_C_Path.hpp"
+params [["_return",0]];
+
+// MRH_allPlayers excludes HCs
+MRH_allPlayers = allPlayers - entities "HeadlessClient_F";
+
+//MRH_allAlivePlayers excludes players that are considered dead by the mod & excludes HCs
+private _MRH_allAlivePlayers = [];
+{
+ if !(_x getVariable ["MRH_MilsimTools_Core_HasDied",false]) then {_MRH_AllAlivePlayers pushBackUnique _x};
+} forEach MRH_allPlayers;
+
+MRH_allAlivePlayers = _MRH_allAlivePlayers;
+
+//MRH_allAliveAndConsciousPlayers excludes players that are considered dead by the mod,unconscious by ACE3 & excludes HCs
+private _MRH_allAliveAndConsciousPlayers =[];
+{
+ if ([_x] call ace_common_fnc_isAwake) then {_MRH_allAliveAndConsciousPlayers pushBackUnique _x};
+}forEach _MRH_allAlivePlayers;
+
+MRH_allAliveAndConsciousPlayers = _MRH_allAliveAndConsciousPlayers;
+([MRH_allPlayers,MRH_allAlivePlayers,MRH_allAliveAndConsciousPlayers] select _return)
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_armaWeightToReal.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_armaWeightToReal.sqf
new file mode 100644
index 0000000..b19e582
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_armaWeightToReal.sqf
@@ -0,0 +1,16 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_;
+*/
+#include "MRH_C_Path.hpp"
+ params ["_weight"];
+ private ["_weightReal","_units"];
+ if (systemOfUnits !=2)then {_weightReal = _weight/22;_units = "Kg."}else {_weightReal = _weight/10;_units = "Lbs."};
+ [_weightReal,_units]
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_canConnectToVehSatCom.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_canConnectToVehSatCom.sqf
new file mode 100644
index 0000000..22cc206
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_canConnectToVehSatCom.sqf
@@ -0,0 +1,16 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_canConnectToVehSatCom;
+*/
+#include "MRH_C_Path.hpp"
+params ["_unit"];
+private _veh = objectParent _unit;
+if (isNull _veh) exitWith {false};
+([_veh]FUNC(vehHasSatcom))
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_childrenClasses.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_childrenClasses.sqf
new file mode 100644
index 0000000..00f3943
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_childrenClasses.sqf
@@ -0,0 +1,25 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+_allFlyingClasses = ["Air"]call MRH_fnc_MilsimTools_Core_childrenClasses;
+copytoclipboard str _allFlyingClasses
+*/
+#include "MRH_C_Path.hpp"
+params ["_parentClass",["_cfg","cfgVehicles"],["_ignoreHidden",true]];
+private _all = (configFile>>_cfg) call BIS_fnc_getCfgSubClasses;
+private _result = [];
+{
+ if (_ignoreHidden && ((getNumber (configFile >> _cfg >> _x>>"scope"))<2)) then {}
+ else
+ {
+ if (_parentClass in ([(configFile >> _cfg >> _x),true ] call BIS_fnc_returnParents)) then {_result pushBackUnique _x};
+ };
+
+}forEach _all;
+_result
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_clearAllWaypoints.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_clearAllWaypoints.sqf
index b73a2c9..8f2c0c6 100644
--- a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_clearAllWaypoints.sqf
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_clearAllWaypoints.sqf
@@ -1,6 +1,6 @@
/*
Function name:MRH_fnc_MilsimTools_Core_clearAllWaypoints
-Author: Mr H.
+Author: Found on Biki & modified by Mr H.
Description: Deletes all waypoints for a given group
Return value: None
Public: No
@@ -12,6 +12,24 @@ Example(s):
*/
#include "MRH_C_Path.hpp"
params ["_grp"];
+
+//--sets current waypoint on group position
+[_grp,(currentWaypoint _grp)] setWaypointPosition [getPosASL ((units _grp) select 0), -1];
+
+//---deleting all waypoints needs a slight delay
+[
+ {
+ params ["_grp"];
+ for "_i" from count waypoints _grp - 1 to 1 step -1 do
+ {
+ deleteWaypoint [_grp, _i];
+ };
+ },
+ _this,
+ 0.1
+] call CBA_fnc_waitAndExecute;
+/*
{
deleteWaypoint [_grp,_forEachIndex];
-} forEach (waypoints _grp);
\ No newline at end of file
+} forEach (waypoints _grp);
+*/
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_diaryPercentageBar.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_diaryPercentageBar.sqf
new file mode 100644
index 0000000..c3d9ac3
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_diaryPercentageBar.sqf
@@ -0,0 +1,28 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_;
+*/
+#include "MRH_C_Path.hpp"
+params ["_percentage",["_size",10]];
+ if (_size>18)then {_size =18};
+ private _size = "'"+ (str _size) + "'";
+ private _emptyColor = "'#D0CCFE'";
+ private _fullColor = "'#2bfa06'";
+ private _over90Color = "'#ff0000'";
+ if (_percentage >=90)then {_fullColor = _over90Color};
+ private _bar = "";
+ private _1 = "|";
+ private _empty = 100-_percentage;
+ private _fullBar = "";
+ private _emptyBar = "";
+ for "_i" from 0 to _percentage do {_fullBar = _fullBar + _1};
+ for "_i" from 0 to _empty do {_emptyBar = _emptyBar + _1};
+ private _text = "
"+ _fullBar +"" + ""+ _emptyBar +""+ " "+ ""+ (_percentage toFixed 1) +"%"+"
";
+ _text
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateLoadOutText.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateLoadOutText.sqf
index bf7f8e4..f4bedee 100644
--- a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateLoadOutText.sqf
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateLoadOutText.sqf
@@ -16,6 +16,11 @@ params ["_unit"];
private _previous = missionNamespace getVariable ["MRH_MilsimTools_Core_LoadOutDiaryHandles",[]];
if !(_previous isEqualTo []) exitWith {[_unit,_previous]FUNC(updateLoadOutText)};
player createDiarySubject ["MRH_Loadout_summary",(localize "STR_MRH_LO_Di_LDMAINT"),"\MRHMarkers\paa\repack.paa"];
+
+ ([(loadAbs _unit)]FUNC(armaWeightToReal)) params ["_weight","_units"];
+
+
+
private _recordNotes = player createDiaryRecord ["MRH_Loadout_summary",
[
(localize "STR_MRH_LO_Di_NOTES"),
@@ -37,21 +42,21 @@ params ["_unit"];
private _recordVest = player createDiaryRecord ["MRH_Loadout_summary",
[
(localize "STR_MRH_LO_Di_LT_VEST"),
- "" +(toUpper(localize "STR_MRH_LO_Di_LT_VEST")) +"
"+([Vest _unit]FUNC(generateItemText))
+ "" +(toUpper(localize "STR_MRH_LO_Di_LT_VEST")) +"
"+([Vest _unit]FUNC(generateItemText))+"
"+(localize "STR_MRH_LO_Di_VestSpace") + ([([(loadVest _unit)*100,17]FUNC(diaryPercentageBar)),"
"+"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((vest _unit )isEqualTo ""))
]
];
private _recordUniform= player createDiaryRecord ["MRH_Loadout_summary",
[
(localize "STR_MRH_LO_Di_LT_UNI"),
- "" +(toUpper(localize "STR_MRH_LO_Di_LT_UNI")) +"
"+([uniform _unit]FUNC(generateItemText))
+ "" +(toUpper(localize "STR_MRH_LO_Di_LT_UNI")) +"
"+([uniform _unit]FUNC(generateItemText))+"
"+(localize "STR_MRH_LO_Di_UniSpace")+ ([([(loadUniform _unit)*100,17]FUNC(diaryPercentageBar)),"
"+"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((uniform _unit )isEqualTo ""))
]
];
private _recordBackPack = player createDiaryRecord ["MRH_Loadout_summary",
[
(localize "STR_MRH_LO_Di_LT_BackPack"),
- "" +(toUpper(localize "STR_MRH_LO_Di_LT_BackPack")) +"
"+([backpack _unit,true]FUNC(generateItemText))
+ "" +(toUpper(localize "STR_MRH_LO_Di_LT_BackPack")) +"
"+([backpack _unit,true]FUNC(generateItemText))+"
"+(localize "STR_MRH_LO_Di_BPSpace")+ ([([(loadBackpack _unit)*100,17]FUNC(diaryPercentageBar)),"
"+"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((backpack _unit )isEqualTo ""))
]
];
@@ -95,5 +100,19 @@ params ["_unit"];
"" +(toUpper(localize "STR_MRH_LO_Di_EQUIPMENT")) +"
"+([_unit,true,4]FUNC(generateMagazinesText))
]
];
- private _recordHandles = [_recordNotes,_recordHelmet,_recordVest,_recordUniform,_recordBackPack,_recordPW,_recordSW,_recordHGW,_recordAmmo,_recordItems,_recordEquips];
+
+ private _recordGenInfo = player createDiaryRecord ["MRH_Loadout_summary",
+ [
+ (localize "STR_MRH_LO_Di_LDINFO"),
+ "" +(toUpper (localize "STR_MRH_LO_Di_LDINFO")) +"
"+
+ (localize "STR_MRH_LO_Di_TotalWeight")+" "+"" +(_weight toFixed 2) + " " + _units + "
"+
+ (localize "STR_MRH_LO_Di_UniSpace")+ ([([(loadUniform _unit)*100,17]FUNC(diaryPercentageBar)),"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((uniform _unit )isEqualTo ""))+
+ (localize "STR_MRH_LO_Di_VestSpace") + ([([(loadVest _unit)*100,17]FUNC(diaryPercentageBar)),"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((vest _unit )isEqualTo ""))+
+ (localize "STR_MRH_LO_Di_BPSpace")+ ([([(loadBackpack _unit)*100,17]FUNC(diaryPercentageBar)),"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((backpack _unit )isEqualTo ""))
+ ]
+
+
+
+ ];
+ private _recordHandles = [_recordNotes,_recordHelmet,_recordVest,_recordUniform,_recordBackPack,_recordPW,_recordSW,_recordHGW,_recordAmmo,_recordItems,_recordEquips,_recordGenInfo];
missionNamespace setVariable ["MRH_MilsimTools_Core_LoadOutDiaryHandles",_recordHandles];
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getContainerWeightAndMaxLoad.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getContainerWeightAndMaxLoad.sqf
new file mode 100644
index 0000000..8b9b138
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getContainerWeightAndMaxLoad.sqf
@@ -0,0 +1,24 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_;
+*/
+#include "MRH_C_Path.hpp"
+params["_unit",["_container","UNIFORM"]];
+ _container = toUpper _container;
+ private ["_part","_loadPart"];
+ switch _container do
+ {
+ case "UNIFORM" :{_part = uniform _unit;_loadPart = loadUniform _unit};
+ case "VEST" :{_part = vest _unit;_loadPart = loadVest _unit};
+ case "BACKPACK" :{_part = vest _unit;_loadPart = loadVest _unit};
+ };
+ private _maxLoad= getContainerMaxLoad _part;
+ private _weight = _maxLoad * _loadPart;
+ [_weight,_maxLoad]
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getSoundFile.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getSoundFile.sqf
index e1ef80f..323c946 100644
--- a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getSoundFile.sqf
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_getSoundFile.sqf
@@ -27,6 +27,7 @@ _soundCfg params
private _soundPathFormated= _soundPath splitString "";
if ((_soundPathFormated select 0)isEqualTo "\") then {_soundPathFormated deleteAt 0};
private _soundPathFinal = _soundPathFormated joinString "";
+if (_volume >5)then {_volume = 5};
if (_config isEqualTo missionConfigFile) then {_soundPathFinal = MRH_MISSION_ROOT + _soundPathFinal};
private _return = [_soundPathFinal,_volume,_pitch,_distance];
_return
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_showOnBFT.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_showOnBFT.sqf
new file mode 100644
index 0000000..d6cc7c4
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_showOnBFT.sqf
@@ -0,0 +1,21 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_;
+*/
+#include "MRH_C_Path.hpp"
+ params ["_unit"];
+
+ private _allowedClasses = missionNamespace getVariable ["MRH_soldierTab_BFT_enabling_items_andVehs",[]];
+ if !((_allowedClasses arrayIntersect (items _unit)) isEqualTo []) exitWith {true};
+ if !((_allowedClasses arrayIntersect (AssignedItems _unit)) isEqualTo []) exitWith {true};
+ private _type = (typeOf (objectParent _unit));
+ if (_type in _allowedClasses) exitWith {true};
+ if ((getNumber (configFile>>"cfgVehicles">>_type>>"mrh_satcom"))>0) exitWith {true};
+ false
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_updateLoadOutText.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_updateLoadOutText.sqf
index 0f9d667..e67557e 100644
--- a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_updateLoadOutText.sqf
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_updateLoadOutText.sqf
@@ -12,15 +12,26 @@ Example(s):
#include "MRH_C_Path.hpp"
params ["_unit","_previous"];
- _previous params ["_recordNotes","_recordHelmet","_recordVest","_recordUniform","_recordBackPack","_recordPW","_recordSW","_recordHGW","_recordAmmo","_recordItems","_recordEquips"];
-
+ _previous params ["_recordNotes","_recordHelmet","_recordVest","_recordUniform","_recordBackPack","_recordPW","_recordSW","_recordHGW","_recordAmmo","_recordItems","_recordEquips","_recordGenInfo"];
+ ([(loadAbs _unit)]FUNC(armaWeightToReal)) params ["_weight","_units"];
+ player setDiaryRecordText [["MRH_Loadout_summary", _recordGenInfo],
+ [
+ (localize "STR_MRH_LO_Di_LDINFO"),
+ "" +(toUpper (localize "STR_MRH_LO_Di_LDINFO")) +"
"+
+ (localize "STR_MRH_LO_Di_TotalWeight")+" "+"" +(_weight toFixed 2) + " " + _units + "
"+
+ (localize "STR_MRH_LO_Di_UniSpace")+ ([([(loadUniform _unit)*100,17]FUNC(diaryPercentageBar)),"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((uniform _unit )isEqualTo ""))+
+ (localize "STR_MRH_LO_Di_VestSpace") + ([([(loadVest _unit)*100,17]FUNC(diaryPercentageBar)),"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((vest _unit )isEqualTo ""))+
+ (localize "STR_MRH_LO_Di_BPSpace")+ ([([(loadBackpack _unit)*100,17]FUNC(diaryPercentageBar)),"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((backpack _unit )isEqualTo ""))
+ ]
+ ];
+
player setDiaryRecordText [["MRH_Loadout_summary", _recordHelmet], [(localize "STR_MRH_LO_Di_LT_Helmet"),"" +(toUpper(localize "STR_MRH_LO_Di_LT_Helmet")) +"
"+([headGear _unit]FUNC(generateItemText))]];
- player setDiaryRecordText [["MRH_Loadout_summary", _recordVest], [(localize "STR_MRH_LO_Di_LT_VEST"), "" +(toUpper(localize "STR_MRH_LO_Di_LT_VEST")) +"
"+([Vest _unit]FUNC(generateItemText))]];
+ player setDiaryRecordText [["MRH_Loadout_summary", _recordVest], [(localize "STR_MRH_LO_Di_LT_VEST"), "" +(toUpper(localize "STR_MRH_LO_Di_LT_VEST")) +"
"+([Vest _unit]FUNC(generateItemText))+"
"+(localize "STR_MRH_LO_Di_VestSpace") + ([([(loadVest _unit)*100,17]FUNC(diaryPercentageBar)),"
"+"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((vest _unit )isEqualTo ""))]];
- player setDiaryRecordText [["MRH_Loadout_summary", _recordUniform], [(localize "STR_MRH_LO_Di_LT_UNI"), "" +(toUpper(localize "STR_MRH_LO_Di_LT_UNI")) +"
"+([uniform _unit]FUNC(generateItemText))]];
+ player setDiaryRecordText [["MRH_Loadout_summary", _recordUniform], [(localize "STR_MRH_LO_Di_LT_UNI"), "" +(toUpper(localize "STR_MRH_LO_Di_LT_UNI")) +"
"+([uniform _unit]FUNC(generateItemText))+"
"+(localize "STR_MRH_LO_Di_UniSpace")+ ([([(loadUniform _unit)*100,17]FUNC(diaryPercentageBar)),"
"+"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((uniform _unit )isEqualTo ""))]];
- player setDiaryRecordText [["MRH_Loadout_summary", _recordBackPack], [(localize "STR_MRH_LO_Di_LT_BackPack"),"" +(toUpper(localize "STR_MRH_LO_Di_LT_BackPack")) +"
"+([backpack _unit,true]FUNC(generateItemText))]];
+ player setDiaryRecordText [["MRH_Loadout_summary", _recordBackPack], [(localize "STR_MRH_LO_Di_LT_BackPack"),"" +(toUpper(localize "STR_MRH_LO_Di_LT_BackPack")) +"
"+([backpack _unit,true]FUNC(generateItemText))+"
"+(localize "STR_MRH_LO_Di_BPSpace")+ ([([(loadBackpack _unit)*100,17]FUNC(diaryPercentageBar)),"
"+"
"+(localize "STR_MRH_LO_Di_NOTEQUIP")+"
"]select ((backpack _unit )isEqualTo ""))]];
player setDiaryRecordText [["MRH_Loadout_summary", _recordPW], [(localize "STR_MRH_LO_Di_LT_PW"),"" +(toUpper(localize "STR_MRH_LO_Di_LT_PW")) +"
"+([primaryWeapon _unit,false,false,true]FUNC(generateItemText)) +([_unit,true,1]FUNC(generateMagazinesText))]];
diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_vehHasSatcom.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_vehHasSatcom.sqf
new file mode 100644
index 0000000..888e968
--- /dev/null
+++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_vehHasSatcom.sqf
@@ -0,0 +1,18 @@
+/*
+Function name:MRH_fnc_MilsimTools_Core_
+Author: Mr H.
+Description:
+Return value:
+Public: No
+Parameters:
+
+Example(s):
+[]call MRH_fnc_MilsimTools_Core_;
+*/
+#include "MRH_C_Path.hpp"
+params ["_veh"];
+#include "..\..\bftVehicles.inc"
+private _type = typeOf _veh;
+if (_type in _bftVehs) exitWith {true};
+if ((getNumber (configFile>>"cfgVehicles">>_type>>"mrh_satcom"))>0) exitWith {true};
+false
diff --git a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf
index 6699d05..9cbb5b7 100644
--- a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf
+++ b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf
@@ -1,7 +1,31 @@
#include "MRH_C_Path.hpp"
[player]FUNC(generateLoadOutText);
-//functions that need to wait until the player is initialized
+FUNC(AddBriefingRoster);
+
+["MRH_playerConnected_EH",
+ {
+ params ["_id", "_uid", "_name", "_jip", "_ownerID"];
+ FUNC(AddBriefingRoster);//update roster
+ 0 FUNC(allPlayers); //update allPlayers on clients
+ }
+]call CBA_fnc_addEventHandler;//fired whenever any player connects
+
+["MRH_playerDisconnected_EH",
+ {
+ params ["_id", "_uid", "_name", "_jip", "_ownerID"];
+ FUNC(AddBriefingRoster);//update roster
+ 0 FUNC(allPlayers); //update allPlayers on clients
+ }
+]call CBA_fnc_addEventHandler;//fired whenever any player disconnects
+["MRH_playerOnly_ace_unconscious",
+ {
+ params ["_unit","_state"];
+ 0 FUNC(allPlayers);
+ }
+
+] call CBA_fnc_addEventHandler; // fired whenever a player's ace uncounscious state changes
+//functions that need to wait until the player is initialized
[{(player == player) && (!isNull (findDisplay 46))},
{
FUNC(InitPlayerLocal);
@@ -11,5 +35,6 @@
}] call CBA_fnc_waitUntilAndExecute;
+
//
TRACE("Core Xeh: calling initPlayerLocal");
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHinit.sqf b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHinit.sqf
index c15da72..8cd9206 100644
--- a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHinit.sqf
+++ b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHinit.sqf
@@ -1,4 +1,5 @@
#include "MRH_C_Path.hpp"
+
_fullVersioning = (call MRH_fnc_MilsimTools_DebugTools_ListModsAndAddons) select 0;
_toTraceFullV = format ["MRH MilsimTools: Activated mods and addons:%1 %2",endl,_fullVersioning];
TRACE(_toTraceFullV);
@@ -22,7 +23,9 @@ if(MRH_MISSION_ROOT_FOUND) then {
_missionRootTrace = format ["MRH Milsim Tools Core- Local mission root is: %1",MRH_MISSION_ROOT];
TRACE(_missionRootTrace);
};
-
+//---Define allPlayers at start
+ 0 FUNC(allPlayers);
+//------EHs
["MRH_curatorViewOpened",
{
params ["_display","_player"];
@@ -163,4 +166,27 @@ if(MRH_MISSION_ROOT_FOUND) then {
] call CBA_fnc_waitAndExecute;
}
+] call CBA_fnc_addEventHandler;
+
+["MRH_playerKilled",
+ {
+ params ["_unit", "_killer", "_instigator", "_useEffects"];
+ 0 FUNC(allPlayers);
+ }
+
+] call CBA_fnc_addEventHandler;
+
+
+["MRH_playerRespawned_global",
+ {
+ params ["_unit", "_corpse"];
+ 0 FUNC(allPlayers);
+ }
+] call CBA_fnc_addEventHandler;
+
+["MRH_playerWasSetAsRevived",
+ {
+ params ["_revivedPlayer"];
+ 0 FUNC(allPlayers);
+ }
] call CBA_fnc_addEventHandler;
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHserver.sqf b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHserver.sqf
index 1822ef1..e6b31da 100644
--- a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHserver.sqf
+++ b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHserver.sqf
@@ -1,3 +1,18 @@
#include "MRH_C_Path.hpp"
call MRH_fnc_MilsimTools_Core_PlayersRegistry;
+["ace_unconscious",
+ {
+ params ["_unit", "_state"];
+ if (isPlayer _unit) then
+ {
+ ["MRH_playerOnly_ace_unconscious",_this] call CBA_fnc_globalEvent; //ace event fires on every unit, I only want an event for players
+ 0 FUNC(allPlayers);
+ };
+ }
+] call CBA_fnc_addEventHandler;
+// update of BFT_enabledClasses
+private _enabled = getArray (configFile>>"MRH_BFT_enabledClasses">>"enabledClasses">>"classes");
+#include "..\..\bftVehicles.inc"
+_enabled append _bftVehs;
+[_enabled]FUNC(addToBFTenabledList);
TRACE("Core Xeh: calling PlayersRegistryInit");
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_InitPlayerLocal.sqf b/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_InitPlayerLocal.sqf
index 26145b6..f612dd3 100644
--- a/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_InitPlayerLocal.sqf
+++ b/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_InitPlayerLocal.sqf
@@ -14,7 +14,7 @@ TRACE("Player initialized InitPlayerLocal starting");
FUNC(BriefingAdminMenuLink);
//======init for the Has died variable
player setVariable ["MRH_MilsimTools_Core_HasDied", false, true];
-FUNC(AddBriefingRoster);
+
//removes the map of players that are not leaders according to setting
_mapKeepSetting = ["MRH_MilsimTools_Rmv_map_nolead"] call cba_settings_fnc_get;
if (_mapKeepSetting) then
@@ -39,7 +39,7 @@ _EHkilledIdx = player addEventHandler ["killed",
[[],MRH_fnc_MilsimTools_Core_GenAliveAndDead] RemoteExec ["Call",0];
// shows hint to admin
[[],MRH_fnc_MilsimTools_Core_AdminDeadCount] RemoteExec ["Call",[0,-2] select isDedicated];
-
+ ["MRH_playerKilled",_this] call CBA_fnc_globalEvent;
}
];
@@ -95,6 +95,12 @@ if (_reinitUponRespawn) then {
}];
};
+
+player addEventHandler ["Respawn", {
+ params ["_unit", "_corpse"];
+ ["MRH_playerRespawned_global",_this] call CBA_fnc_globalEvent;
+
+ }];
//ReRegister just in case
[[],MRH_fnc_MilsimTools_Core_GenAliveAndDead] RemoteExec ["Call",0];
diff --git a/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_PlayersRegistry.sqf b/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_PlayersRegistry.sqf
index 513e1cc..7ea75b4 100644
--- a/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_PlayersRegistry.sqf
+++ b/Addons/MRHMilsimTools/Functions/InitFunctions/fn_MilsimTools_Core_PlayersRegistry.sqf
@@ -43,6 +43,8 @@ addMissionEventHandler ["PlayerDisconnected",
};
//add delay for disconnecting before calling function
[{call MRH_fnc_MilsimTools_Core_GenAliveAndDead; Diag_Log "MRH_MilsimToolsCore PlayerDisconnected EH fired";},[], 3] call CBA_fnc_waitAndExecute;
+ 0 FUNC(allPlayers);
+ ["MRH_playerDisconnected_EH",_this] call CBA_fnc_globalEvent;
}];
@@ -82,8 +84,8 @@ addMissionEventHandler ["PlayerConnected",
missionNamespace setVariable ["MRH_MilsimTools_Core_allIncludingDisconnectedDeadPlayers",_deadPlayersNew,true];
call MRH_fnc_MilsimTools_Core_SetPlayerIntel; //Updates player intel
Diag_Log "MRH_MilsimToolsCore Player Connected EH Fired";
-
-
+ 0 FUNC(allPlayers);
+ ["MRH_playerConnected_EH",_this] call CBA_fnc_globalEvent;
}];
//delete bodies of disconnected players
diff --git a/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp b/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp
index 8780d4d..c9ee7ea 100644
--- a/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp
+++ b/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp
@@ -223,6 +223,28 @@ class MRH // Defines the "owner"
{};
class MilsimTools_Core_getCfgInfo
{};
+ class MilsimTools_Core_diaryPercentageBar
+ {};
+ class MilsimTools_Core_getContainerWeightAndMaxLoad
+ {};
+ class MilsimTools_Core_armaWeightToReal
+ {};
+ class MilsimTools_Core_allPlayers
+ {};
+ class MilsimTools_Core_BFT
+ {};
+ class MilsimTools_Core_NATO_symbols_for
+ {};
+ class MilsimTools_Core_showOnBFT
+ {};
+ class MilsimTools_Core_addToBFTenabledList
+ {};
+ class MilsimTools_Core_childrenClasses
+ {};
+ class MilsimTools_Core_vehHasSatcom
+ {};
+ class MilsimTools_Core_canConnectToVehSatCom
+ {};
/*
class MilsimTools_Core_
diff --git a/Addons/MRHMilsimTools/bftVehicles.inc b/Addons/MRHMilsimTools/bftVehicles.inc
new file mode 100644
index 0000000..289ed1b
--- /dev/null
+++ b/Addons/MRHMilsimTools/bftVehicles.inc
@@ -0,0 +1 @@
+private _bftVehs = ["B_Heli_Light_01_F","B_Heli_Light_01_dynamicLoadout_F","C_Heli_Light_01_civil_F","O_Heli_Light_02_dynamicLoadout_F","O_Heli_Light_02_unarmed_F","B_Heli_Attack_01_dynamicLoadout_F","O_Heli_Attack_02_dynamicLoadout_F","B_Heli_Transport_01_F","I_Heli_Transport_02_F","I_Plane_Fighter_03_dynamicLoadout_F","I_Heli_light_03_dynamicLoadout_F","I_Heli_light_03_unarmed_F","B_Plane_CAS_01_dynamicLoadout_F","O_Plane_CAS_02_dynamicLoadout_F","B_UAV_01_F","O_UAV_01_F","I_UAV_01_F","B_UAV_02_dynamicLoadout_F","O_UAV_02_dynamicLoadout_F","I_UAV_02_dynamicLoadout_F","B_Heli_Transport_03_F","B_Heli_Transport_03_unarmed_F","O_Heli_Transport_04_F","O_Heli_Transport_04_ammo_F","O_Heli_Transport_04_bench_F","O_Heli_Transport_04_box_F","O_Heli_Transport_04_covered_F","O_Heli_Transport_04_fuel_F","O_Heli_Transport_04_medevac_F","O_Heli_Transport_04_repair_F","I_C_Heli_Light_01_civil_F","B_CTRG_Heli_Transport_01_sand_F","B_CTRG_Heli_Transport_01_tropic_F","C_Plane_Civil_01_F","C_Plane_Civil_01_racing_F","I_C_Plane_Civil_01_F","B_T_UAV_03_dynamicLoadout_F","O_T_UAV_04_CAS_F","B_T_VTOL_01_infantry_F","B_T_VTOL_01_vehicle_F","B_T_VTOL_01_armed_F","O_T_VTOL_02_infantry_dynamicLoadout_F","O_T_VTOL_02_vehicle_dynamicLoadout_F","B_Plane_Fighter_01_F","B_Plane_Fighter_01_Stealth_F","O_Plane_Fighter_02_F","O_Plane_Fighter_02_Stealth_F","I_Plane_Fighter_04_F","B_UAV_05_F","C_IDAP_Heli_Transport_02_F","C_IDAP_UAV_01_F","B_UAV_06_F","O_UAV_06_F","I_UAV_06_F","C_IDAP_UAV_06_F","C_UAV_06_F","C_IDAP_UAV_06_antimine_F","B_UAV_06_medical_F","O_UAV_06_medical_F","I_UAV_06_medical_F","C_IDAP_UAV_06_medical_F","C_UAV_06_medical_F","I_E_Heli_light_03_dynamicLoadout_F","I_E_Heli_light_03_unarmed_F","I_E_UAV_01_F","I_E_UAV_06_F","I_E_UAV_06_medical_F","rhsusf_f22","RHS_MELB_H6M","RHS_MELB_AH6M","RHS_MELB_MH6M","RHS_Mi24P_vvs","RHS_Mi24P_vvsc","RHS_Mi24P_vdv","RHS_Mi24V_vvs","RHS_Mi24V_vvsc","RHS_Mi24Vt_vvs","RHS_Mi24Vt_vvsc","RHS_Mi24V_vdv","RHS_Mi8mt_vvs","RHS_Mi8mt_vvsc","RHS_Mi8mt_vdv","RHS_Mi8mt_vv","RHS_Mi8mt_Cargo_vvs","RHS_Mi8mt_Cargo_vvsc","RHS_Mi8mt_Cargo_vdv","RHS_Mi8mt_Cargo_vv","RHS_Mi8MTV3_vvs","RHS_Mi8MTV3_vvsc","RHS_Mi8MTV3_vdv","RHS_Mi8mtv3_Cargo_vvs","RHS_Mi8mtv3_Cargo_vvsc","RHS_Mi8mtv3_Cargo_vdv","RHS_Mi8MTV3_heavy_vvs","RHS_Mi8MTV3_heavy_vvsc","RHS_Mi8MTV3_heavy_vdv","RHS_Mi8T_vvs","RHS_Mi8T_vvsc","RHS_Mi8T_vdv","RHS_Mi8t_vv","RHS_Mi8AMT_vvs","RHS_Mi8AMT_vvsc","RHS_Mi8AMT_vdv","RHS_Mi8AMTSh_vvs","RHS_Mi8AMTSh_vvsc","RHS_Mi8amt_civilian","RHS_Mi8t_civilian","RHS_Su25SM_vvs","RHS_Su25SM_vvsc","RHS_Ka52_vvsc","RHS_Ka52_vvs","rhs_pchela1t_vvs","rhs_pchela1t_vvsc","rhs_ka60_grey","rhs_ka60_c","RHS_T50_vvs_generic","RHS_T50_vvs_generic_ext","RHS_T50_vvs_051","RHS_T50_vvs_052","RHS_T50_vvs_053","RHS_T50_vvs_054","RHS_T50_vvs_blueonblue","RHS_TU95MS_vvs_old","RHS_TU95MS_vvs_dubna","RHS_TU95MS_vvs_irkutsk","RHS_TU95MS_vvs_tambov","RHS_TU95MS_vvs_chelyabinsk","rhs_mi28n_vvs","rhs_mi28n_vvsc","rhs_mig29s_vvs","rhs_mig29s_vvsc","rhs_mig29s_vmf","rhs_mig29sm_vvs","rhs_mig29sm_vvsc","rhs_mig29sm_vmf","RHS_AH64D","RHS_AH64D_wd","RHS_AH64DGrey","RHS_AH1Z","RHS_AH1Z_wd","RHS_CH_47F","RHS_CH_47F_10","RHS_CH_47F_light","RHS_UH60M","RHS_UH60M_MEV","RHS_UH60M_d","RHS_UH60M_MEV_d","RHS_UH60M2","RHS_UH60M2_d","RHS_UH60M_ESSS","RHS_UH60M_ESSS2","RHS_UH60M_ESSS_d","RHS_UH60M_ESSS2_d","RHS_UH60M_MEV2","RHS_UH60M_MEV2_d","RHS_UH1Y","RHS_UH1Y_d","RHS_UH1Y_FFAR","RHS_UH1Y_FFAR_d","RHS_UH1Y_UNARMED","RHS_UH1Y_UNARMED_d","RHS_C130J","RHS_A10","rhsusf_CH53E_USMC","rhsusf_CH53E_USMC_GAU21","rhsusf_CH53E_USMC_D","rhsusf_CH53E_USMC_GAU21_D","rhsgref_cdf_Mi35","rhsgref_mi24g_CAS","rhsgref_b_mi24g_CAS","rhs_uh1h_hidf","rhs_uh1h_hidf_gunship","rhs_uh1h_hidf_unarmed","rhs_uh1h_un","rhs_uh1h_idap","rhs_l159_CDF","rhs_l39_cdf","rhs_l159_cdf_b_CDF","rhs_l39_cdf_b_cdf","RHS_AN2","RHS_AN2_B","rhsgref_cdf_reg_Mi8amt","rhsgref_cdf_reg_Mi17Sh","rhsgref_cdf_Mi24D","rhsgref_cdf_Mi24D_early","rhsgref_cdf_su25","rhsgref_cdf_mig29s","rhsgref_cdf_b_reg_Mi8amt","rhsgref_cdf_b_reg_Mi17Sh","rhsgref_cdf_b_Mi35","rhsgref_cdf_b_Mi24D","rhsgref_cdf_b_Mi24D_Early","rhsgref_cdf_b_su25","rhsgref_cdf_b_mig29s","rhsgref_ins_Mi8amt","rhsgref_ins_g_Mi8amt","rhsgref_un_Mi8amt","rhsgref_un_Mi24V","rhsgred_hidf_cessna_o3a","B_Boat_Armed_01_minigun_F","O_Boat_Armed_01_hmg_F","B_Boat_Transport_01_F","O_Boat_Transport_01_F","B_Lifeboat","O_Lifeboat","C_Rubberboat","I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","B_SDV_01_F","O_SDV_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F","B_G_Boat_Transport_01_F","O_G_Boat_Transport_01_F","B_T_Boat_Armed_01_minigun_F","O_T_Boat_Armed_01_hmg_F","O_T_Boat_Transport_01_F","I_C_Boat_Transport_01_F","B_T_Boat_Transport_01_F","B_T_Lifeboat","O_T_Lifeboat","I_C_Boat_Transport_02_F","C_Boat_Transport_02_F","C_Scooter_Transport_01_F","rhsgref_hidf_canoe","rhsgref_civ_canoe","rhsgref_hidf_rhib","rhsgref_hidf_assault_boat","B_MRAP_01_F","B_MRAP_01_gmg_F","B_MRAP_01_hmg_F","B_T_MRAP_01_F","B_T_MRAP_01_gmg_F","B_T_MRAP_01_hmg_F","rhsusf_CGRCAT1A2_usmc_d","rhsusf_CGRCAT1A2_M2_usmc_d","rhsusf_CGRCAT1A2_Mk19_usmc_d","rhsusf_CGRCAT1A2_usmc_wd","rhsusf_CGRCAT1A2_M2_usmc_wd","rhsusf_CGRCAT1A2_Mk19_usmc_wd","rhsusf_m998_w_2dr","rhsusf_m998_d_2dr","rhsusf_m998_w_s_2dr","rhsusf_m998_d_s_2dr","rhsusf_m998_w_2dr_halftop","rhsusf_m998_d_2dr_halftop","rhsusf_m998_w_s_2dr_halftop","rhsusf_m998_d_s_2dr_halftop","rhsusf_m998_w_2dr_fulltop","rhsusf_m998_d_2dr_fulltop","rhsusf_m998_w_s_2dr_fulltop","rhsusf_m998_d_s_2dr_fulltop","rhsusf_m998_w_4dr","rhsusf_m998_d_4dr","rhsusf_m998_w_s_4dr","rhsusf_m998_d_s_4dr","rhsusf_m998_w_4dr_halftop","rhsusf_m998_d_4dr_halftop","rhsusf_m998_w_s_4dr_halftop","rhsusf_m998_d_s_4dr_halftop","rhsusf_m998_w_4dr_fulltop","rhsusf_m998_d_4dr_fulltop","rhsusf_m998_w_s_4dr_fulltop","rhsusf_m998_d_s_4dr_fulltop","rhsusf_m1025_w","rhsusf_m1025_d","rhsusf_m1025_w_s","rhsusf_m1025_d_s","rhsusf_m1025_w_m2","rhsusf_m1025_d_m2","rhsusf_m1025_w_s_m2","rhsusf_m1025_d_s_m2","rhsusf_m1025_w_mk19","rhsusf_m1025_d_Mk19","rhsusf_m1025_w_s_Mk19","rhsusf_m1025_d_s_Mk19","rhsusf_m966_w","rhsusf_m966_d","rhsusf_m1043_w","rhsusf_m1043_d","rhsusf_m1043_w_s","rhsusf_m1043_d_s","rhsusf_m1043_w_m2","rhsusf_m1043_d_m2","rhsusf_m1043_w_s_m2","rhsusf_m1043_d_s_m2","rhsusf_m1043_w_mk19","rhsusf_m1043_d_mk19","rhsusf_m1043_w_s_mk19","rhsusf_m1043_d_s_mk19","rhsusf_m1045_w","rhsusf_m1045_d","rhsusf_m1045_w_s","rhsusf_m1045_d_s","rhsusf_mrzr4_d","rhsusf_M1238A1_socom_d","rhsusf_M1238A1_M2_socom_d","rhsusf_M1238A1_Mk19_socom_d","rhsusf_M1232_usarmy_d","rhsusf_M1232_M2_usarmy_d","rhsusf_M1232_MK19_usarmy_d","rhsusf_M1237_M2_usarmy_d","rhsusf_M1237_MK19_usarmy_d","rhsusf_M1232_MC_M2_usmc_d","rhsusf_M1232_MC_M2_usmc_wd","rhsusf_M1232_MC_MK19_usmc_d","rhsusf_M1232_MC_MK19_usmc_wd","rhsusf_M1232_usarmy_wd","rhsusf_M1232_M2_usarmy_wd","rhsusf_M1232_MK19_usarmy_wd","rhsusf_M1237_M2_usarmy_wd","rhsusf_M1237_MK19_usarmy_wd","rhsusf_M1239_socom_d","rhsusf_M1239_M2_socom_d","rhsusf_M1239_MK19_socom_d","rhsusf_M1239_M2_Deploy_socom_d","rhsusf_M1239_MK19_Deploy_socom_d","rhsgref_hidf_M998_2dr","rhsgref_hidf_M998_2dr_halftop","rhsgref_hidf_M998_2dr_fulltop","rhsgref_hidf_m998_4dr","rhsgref_hidf_M998_4dr_halftop","rhsgref_hidf_M998_4dr_fulltop","rhsgref_hidf_m1025","rhsgref_hidf_m1025_m2","rhsgref_hidf_m1025_mk19","B_APC_Tracked_01_rcws_F","B_APC_Tracked_01_CRV_F","B_APC_Tracked_01_AA_F","O_APC_Tracked_02_cannon_F","O_APC_Tracked_02_AA_F","B_MBT_01_cannon_F","B_MBT_01_arty_F","B_MBT_01_mlrs_F","O_MBT_02_cannon_F","O_MBT_02_arty_F","I_APC_tracked_03_cannon_F","I_MBT_03_cannon_F","B_MBT_01_TUSK_F","B_T_APC_Tracked_01_AA_F","B_T_APC_Tracked_01_CRV_F","B_T_APC_Tracked_01_rcws_F","O_T_APC_Tracked_02_cannon_ghex_F","O_T_APC_Tracked_02_AA_ghex_F","B_T_MBT_01_arty_F","B_T_MBT_01_mlrs_F","B_T_MBT_01_cannon_F","B_T_MBT_01_TUSK_F","O_T_MBT_02_cannon_ghex_F","O_T_MBT_02_arty_ghex_F","I_LT_01_AT_F","I_LT_01_scout_F","I_LT_01_AA_F","I_LT_01_cannon_F","O_MBT_04_cannon_F","O_T_MBT_04_cannon_F","O_MBT_04_command_F","O_T_MBT_04_command_F","B_UGV_02_Science_F","B_UGV_02_Demining_F","O_UGV_02_Science_F","O_UGV_02_Demining_F","I_UGV_02_Science_F","I_E_UGV_02_Science_F","I_UGV_02_Demining_F","I_E_UGV_02_Demining_F","C_IDAP_UGV_02_Demining_F","I_E_APC_tracked_03_cannon_F","rhs_2s3_tv","rhs_bmd1","rhs_bmd1k","rhs_bmd1p","rhs_bmd1pk","rhs_bmd1r","rhs_bmd2","rhs_bmd2m","rhs_bmd2k","rhs_bmp3_msv","rhs_bmp3_late_msv","rhs_bmp3m_msv","rhs_bmp3mera_msv","rhs_bmp1_vdv","rhs_bmp1_tv","rhs_bmp1_msv","rhs_bmp1_vmf","rhs_bmp1_vv","rhs_bmp1p_vdv","rhs_bmp1p_tv","rhs_bmp1p_msv","rhs_bmp1p_vmf","rhs_bmp1p_vv","rhs_bmp1k_vdv","rhs_bmp1k_tv","rhs_bmp1k_msv","rhs_bmp1k_vmf","rhs_bmp1k_vv","rhs_bmp1d_vdv","rhs_bmp1d_tv","rhs_bmp1d_msv","rhs_bmp1d_vmf","rhs_bmp1d_vv","rhs_prp3_vdv","rhs_prp3_tv","rhs_prp3_msv","rhs_prp3_vmf","rhs_prp3_vv","rhs_bmp2e_vdv","rhs_bmp2e_tv","rhs_bmp2e_msv","rhs_bmp2e_vmf","rhs_bmp2e_vv","rhs_bmp2_vdv","rhs_bmp2_tv","rhs_bmp2_msv","rhs_bmp2_vmf","rhs_bmp2_vv","rhs_bmp2k_vdv","rhs_bmp2k_tv","rhs_bmp2k_msv","rhs_bmp2k_vmf","rhs_bmp2k_vv","rhs_bmp2d_vdv","rhs_bmp2d_tv","rhs_bmp2d_msv","rhs_bmp2d_vmf","rhs_bmp2d_vv","rhs_Ob_681_2","rhs_brm1k_vdv","rhs_brm1k_tv","rhs_brm1k_msv","rhs_brm1k_vmf","rhs_brm1k_vv","rhs_pts_vmf","rhs_sprut_vdv","rhs_bmd4_vdv","rhs_bmd4m_vdv","rhs_bmd4ma_vdv","rhs_t14_tv","rhs_t72ba_tv","rhs_t72bb_tv","rhs_t72bc_tv","rhs_t72bd_tv","rhs_t72be_tv","rhs_t90_tv","rhs_t90a_tv","rhs_t90saa_tv","rhs_t90sab_tv","rhs_t90am_tv","rhs_t90sm_tv","rhs_t80b","rhs_t80bk","rhs_t80bv","rhs_t80bvk","rhs_t80","rhs_t80a","rhs_t80u","rhs_t80uk","rhs_t80u45m","rhs_t80ue1","rhs_t80um","RHS_M2A2","RHS_M2A2_BUSKI","RHS_M2A3","RHS_M2A3_BUSKI","RHS_M2A3_BUSKIII","RHS_M2A3_BUSKIII_wd","RHS_M6","RHS_M2A2_wd","RHS_M2A2_BUSKI_WD","RHS_M2A3_BUSKI_wd","RHS_M2A3_wd","RHS_M6_wd","rhsusf_m109_usarmy","rhsusf_m109d_usarmy","rhsusf_m113_usarmy","rhsusf_m113_usarmy_supply","rhsusf_m113_usarmy_unarmed","rhsusf_m113_usarmy_medical","rhsusf_m113_usarmy_M240","rhsusf_m113_usarmy_MK19","rhsusf_m113d_usarmy","rhsusf_m113d_usarmy_supply","rhsusf_m113d_usarmy_unarmed","rhsusf_m113d_usarmy_medical","rhsusf_m113d_usarmy_M240","rhsusf_m113d_usarmy_MK19","rhsusf_m113_usarmy_M2_90","rhsusf_m113_usarmy_MK19_90","rhsusf_m1a1aimwd_usarmy","rhsusf_m1a1aimd_usarmy","rhsusf_m1a1aim_tuski_wd","rhsusf_m1a1aim_tuski_d","rhsusf_m1a1fep_d","rhsusf_m1a1fep_wd","rhsusf_m1a1fep_od","rhsusf_m1a1hc_wd","rhsusf_m1a2sep1d_usarmy","rhsusf_m1a2sep1wd_usarmy","rhsusf_m1a2sep1tuskid_usarmy","rhsusf_m1a2sep1tuskiwd_usarmy","rhsusf_m1a2sep1tuskiiwd_usarmy","rhsusf_m1a2sep1tuskiid_usarmy","rhs_2s1_tv","rhs_2s1_vmf","rhs_zsu234_aa","rhsgref_cdf_bmp1","rhsgref_cdf_bmp1p","rhsgref_cdf_bmp1d","rhsgref_cdf_bmp1k","rhsgref_cdf_bmp2","rhsgref_cdf_bmp2e","rhsgref_cdf_bmp2k","rhsgref_cdf_bmp2d","rhsgref_cdf_bmd1","rhsgref_cdf_bmd1k","rhsgref_cdf_bmd1pk","rhsgref_cdf_bmd1p","rhsgref_cdf_bmd2","rhsgref_cdf_bmd2k","rhsgref_cdf_zsu234","rhsgref_cdf_2s1","rhsgref_cdf_t72ba_tv","rhsgref_cdf_t72bb_tv","rhsgref_cdf_t80b_tv","rhsgref_cdf_t80bv_tv","rhsgref_cdf_b_bmp1","rhsgref_cdf_b_bmp1p","rhsgref_cdf_b_bmp1d","rhsgref_cdf_b_bmp1k","rhsgref_cdf_b_bmp2","rhsgref_cdf_b_bmp2e","rhsgref_cdf_b_bmp2k","rhsgref_cdf_b_bmp2d","rhsgref_cdf_b_bmd1","rhsgref_cdf_b_bmd1k","rhsgref_cdf_b_bmd1p","rhsgref_cdf_b_bmd1pk","rhsgref_cdf_b_bmd2","rhsgref_cdf_b_bmd2k","rhsgref_cdf_b_2s1","rhsgref_cdf_b_t72ba_tv","rhsgref_cdf_b_t72bb_tv","rhsgref_cdf_b_t80b_tv","rhsgref_cdf_b_t80bv_tv","rhsgref_cdf_b_zsu234","rhsgref_ins_bmp1","rhsgref_ins_bmp1p","rhsgref_ins_bmp1d","rhsgref_ins_bmp1k","rhsgref_ins_bmp2","rhsgref_ins_bmp2e","rhsgref_ins_bmp2k","rhsgref_ins_bmp2d","rhsgref_ins_zsu234","rhsgref_ins_bmd1","rhsgref_ins_bmd1p","rhsgref_ins_bmd2","rhsgref_ins_t72ba","rhsgref_ins_t72bb","rhsgref_ins_t72bc","rhsgref_ins_2s1","rhsgref_ins_g_bmp1","rhsgref_ins_g_bmp1p","rhsgref_ins_g_bmp1d","rhsgref_ins_g_bmp1k","rhsgref_ins_g_bmp2","rhsgref_ins_g_bmp2e","rhsgref_ins_g_bmp2k","rhsgref_ins_g_bmp2d","rhsgref_ins_g_zsu234","rhsgref_ins_g_bmd1","rhsgref_ins_g_bmd1p","rhsgref_ins_g_bmd2","rhsgref_ins_g_t72ba","rhsgref_ins_g_t72bb","rhsgref_ins_g_t72bc","rhsgref_ins_g_2s1","rhsgref_hidf_m113a3_unarmed","rhsgref_hidf_m113a3_m2","rhsgref_hidf_m113a3_mk19"];
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/cfghpp/cfgVehicles.hpp b/Addons/MRHMilsimTools/cfghpp/cfgVehicles.hpp
new file mode 100644
index 0000000..b4eabd8
--- /dev/null
+++ b/Addons/MRHMilsimTools/cfghpp/cfgVehicles.hpp
@@ -0,0 +1,63 @@
+
+//----parents
+class Man;
+class LandVehicle;
+class Air;
+class Ship;
+//---parents ends
+class CAManBase: Man
+{
+ class ACE_SelfActions
+ {
+
+ class MRH_vehActions {
+ displayName = $STR_MRH_core_satComSystem;
+ condition = "!(isNull (objectParent MRH_player))";
+ exceptions[] = {"notOnMap", "isNotInside","isNotSitting"};
+ statement = "";
+ icon = "\MRHMarkers\paa\icoantenna.paa";
+
+ class MRH_connectToSatCom
+ {
+ displayName = $STR_MRH_core_connectToVehSat;
+ condition = "([MRH_player] call MRH_fnc_MilsimTools_Core_canConnectToVehSatCom)&& !([MRH_player] call MRH_fnc_MilsimTools_Core_isConnectedToAntenna)";
+ exceptions[] = {"notOnMap", "isNotInside","isNotSitting"};
+ statement = "[(vehicle MRH_player),MRH_player] call MRH_fnc_MilsimTools_MiscItems_handleAntennaConnection";
+ icon = "\MRHMarkers\paa\iconconnect.paa";
+
+ };
+ };
+ };
+};
+/*
+class B_Truck_01_transport_F;
+class B_Truck_01_mover_F : B_Truck_01_transport_F
+{
+ #include "satcomExternalMacro.hpp"
+ mrh_satcom = 1;
+};
+*/
+
+
+class Car: LandVehicle
+{
+ #include "satcomExternalMacro.hpp"
+};
+
+class Helicopter: Air
+{
+ #include "satcomExternalMacro.hpp"
+};
+class Plane: Air
+{
+ #include "satcomExternalMacro.hpp"
+};
+
+class Ship_F: Ship
+{
+ #include "satcomExternalMacro.hpp"
+};
+class Tank: LandVehicle
+{
+ #include "satcomExternalMacro.hpp"
+};
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/cfghpp/satcomExternalMacro.hpp b/Addons/MRHMilsimTools/cfghpp/satcomExternalMacro.hpp
new file mode 100644
index 0000000..f851a28
--- /dev/null
+++ b/Addons/MRHMilsimTools/cfghpp/satcomExternalMacro.hpp
@@ -0,0 +1,19 @@
+class ACE_Actions
+{
+
+ class ACE_MainActions
+ {
+
+ displayName = $STR_MRH_MRHMiscItems_AceInteractionsMain;
+ icon = "";
+ distance = 3;
+ selection = "mem01";
+
+ class MRH_SatCom {
+ displayName = $STR_MRH_core_connectToVehSat;
+ condition = "([_target]call MRH_fnc_MilsimTools_Core_vehHasSatCom)&& !([MRH_player] call MRH_fnc_MilsimTools_Core_isConnectedToAntenna)";
+ statement = "[_target,MRH_player] call MRH_fnc_MilsimTools_MiscItems_handleAntennaConnection";
+ icon = "\MRHMarkers\paa\icoantenna.paa";
+ };
+ };
+};
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/config.cpp b/Addons/MRHMilsimTools/config.cpp
index 237e4e4..0a36e86 100644
--- a/Addons/MRHMilsimTools/config.cpp
+++ b/Addons/MRHMilsimTools/config.cpp
@@ -4,9 +4,9 @@ class CfgPatches {
weapons[] = {}; //
requiredVersion = 0.1; //
requiredAddons[] = {"cba_main"};
- version = 1.18.0;
- versionStr = "1.18.0";
- versionAr[] = {1,18,0};
+ version = 1.18.1;
+ versionStr = "1.18.1";
+ versionAr[] = {1,18,1};
versionDesc = "MRH Milsim Tools";
versionAct = "call compile preProcessFileLineNumbers '\MRHMilSimTools\about.sqf'";
author = "Mr H.";
@@ -150,4 +150,17 @@ class RscDisplayCurator
};
};
+};
+
+class MRH_BFT_enabledClasses
+{
+ class enabledClasses
+ {
+ classes[]={"MRH_SoldierTab","MRH_BluForTransponder","ItemcTab","ItemAndroid","ACE_microDAGR"};
+ };
+};
+
+class cfgVehicles
+{
+ #include"\MRHMilSimTools\cfghpp\cfgVehicles.hpp"
};
\ No newline at end of file
diff --git a/Addons/MRHMilsimTools/stringtable.xml b/Addons/MRHMilsimTools/stringtable.xml
index f52236b..1b10756 100644
--- a/Addons/MRHMilsimTools/stringtable.xml
+++ b/Addons/MRHMilsimTools/stringtable.xml
@@ -1262,6 +1262,51 @@
No equipment
Pas d'équipement
+
+ Loadout Info
+ Loadout Info
+ Infos paquetage
+
+
+ NOT EQUIPPED
+ NOT EQUIPPED
+ PAS EQUIPE
+
+
+ Total weight :
+ Total weight :
+ Poids total :
+
+
+ Uniform space :
+ Uniform space :
+ Place dans l'uniforme :
+
+
+ Vest space :
+ Vest space :
+ Place dans le gilet :
+
+
+ Backpack space :
+ Backpack space :
+ Place dans le sac à dos :
+
+
+ SATCOM system
+ SATCOM system
+
+
+
+ Connect to vehicle SATCOM system
+ Connect to vehicle SATCOM system
+
+
+
+
+
+
+
diff --git a/Addons/MRHRadioChatter/Sounds/uschatter.hpp b/Addons/MRHRadioChatter/Sounds/uschatter.hpp
index 31cd284..43f504e 100644
--- a/Addons/MRHRadioChatter/Sounds/uschatter.hpp
+++ b/Addons/MRHRadioChatter/Sounds/uschatter.hpp
@@ -3,9 +3,9 @@
{
name = "MRH_US_ChatterT";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_ChatterT.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_ChatterT.ogg",5, 1, 20};
titles[] = {};
- soundLength = 10;
+ soundLength =5;
};
*/
@@ -13,7 +13,7 @@
{
name = "MRH_US_Chatter1";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter1.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter1.ogg",5, 1, 20};
titles[] = {};
soundLength = 19;
@@ -22,7 +22,7 @@
{
name = "MRH_US_Chatter2";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter2.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter2.ogg",5, 1, 20};
titles[] = {};
soundLength = 21;
@@ -31,7 +31,7 @@
{
name = "MRH_US_Chatter3";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter3.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter3.ogg",5, 1, 20};
titles[] = {};
soundLength = 21;
@@ -40,7 +40,7 @@
{
name = "MRH_US_Chatter4";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter4.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter4.ogg",5, 1, 20};
titles[] = {};
soundLength = 21;
@@ -49,7 +49,7 @@
{
name = "MRH_US_Chatter5";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter5.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter5.ogg",5, 1, 20};
titles[] = {};
soundLength = 23;
@@ -58,7 +58,7 @@
{
name = "MRH_US_Chatter6";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter6.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter6.ogg",5, 1, 20};
titles[] = {};
soundLength = 60;
@@ -67,7 +67,7 @@
{
name = "MRH_US_Chatter7";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter7.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter7.ogg",5, 1, 20};
titles[] = {};
soundLength = 15;
@@ -76,7 +76,7 @@
{
name = "MRH_US_Chatter8";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter8.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter8.ogg",5, 1, 20};
titles[] = {};
soundLength = 29;
@@ -85,7 +85,7 @@
{
name = "MRH_US_Chatter9";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter9.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter9.ogg",5, 1, 20};
titles[] = {};
soundLength = 48;
@@ -94,7 +94,7 @@
{
name = "MRH_US_Chatter10";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter10.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter10.ogg",5, 1, 20};
titles[] = {};
soundLength = 11;
@@ -103,7 +103,7 @@
{
name = "MRH_US_Chatter11";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter11.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter11.ogg",5, 1, 20};
titles[] = {};
soundLength = 22;
@@ -112,7 +112,7 @@
{
name = "MRH_US_Chatter12";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter12.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter12.ogg",5, 1, 20};
titles[] = {};
soundLength = 44;
@@ -121,8 +121,8 @@
{
name = "MRH_US_Chatter13";
- sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter13.ogg", 10, 1, 20};
+ sound[] = {"\MRHRadioChatter\Sounds\US\MRH_US_Chatter13.ogg",5, 1, 20};
titles[] = {};
- soundLength = 10;
+ soundLength =10;
};
diff --git a/Addons/MRHSoldierTab/Functions/fn_MilsimTools_SoldierTab_RefreshMapPage.sqf b/Addons/MRHSoldierTab/Functions/fn_MilsimTools_SoldierTab_RefreshMapPage.sqf
index f456340..2613335 100644
--- a/Addons/MRHSoldierTab/Functions/fn_MilsimTools_SoldierTab_RefreshMapPage.sqf
+++ b/Addons/MRHSoldierTab/Functions/fn_MilsimTools_SoldierTab_RefreshMapPage.sqf
@@ -32,4 +32,11 @@ ctrlShow [_x,true];
sleep 1;
};
deleteMarkerLocal _markerName;
+};
+if ([MRH_player] CFUNC(isConnectedToAntenna)) then
+{
+ private _unitsToShow = [allUnits,side MRH_player] CFUNC(SortUnitsBySide);
+ private _Map = ((findDisplay 03062018 )displayCtrl 1205);
+
+ [_unitsToShow,_Map]CFUNC(BFT)
};
\ No newline at end of file