Browse Source

Add jammer funcs, get working after testing locally

m3ales 4 years ago
parent
commit
e55b4d5e8c

+ 6 - 1
addons - Copy/RD501_Main/XEH_postinit.sqf

@@ -68,4 +68,9 @@ rd501_medical_ccp_bandageDurationSeconds = 10;
 }] call CBA_fnc_addEventHandler;
 
 // Surrender stun
-call macro_fnc_name(stun);
+call macro_fnc_name(stun);
+
+// Jammers
+["rd501_addJammerLocal", {
+	_this call rd501_fnc_addJammerLocal
+}] call CBA_fnc_addEventHandler;

+ 6 - 0
addons - Copy/RD501_Main/XEH_preInit.sqf

@@ -137,4 +137,10 @@ macro_prep_xeh(medical_ccp\fnc_isDoctor.sqf,isDoctor)
 macro_prep_xeh(medical_ccp\fnc_canBandageNearbyCCP.sqf,canBandageNearbyCCP)
 macro_prep_xeh(medical_ccp\fnc_canStitchNearbyCCP.sqf,canStitchNearbyCCP)
 
+// Jammer
+macro_prep_xeh(jammer\fnc_addJammer.sqf,addJammer)
+macro_prep_xeh(jammer\fnc_addJammerLocal.sqf,addJammerLocal)
+macro_prep_xeh(jammer\fnc_jammersPFH.sqf,jammersPFH)
+macro_prep_xeh(jammer\fnc_jammersServerPFH.sqf,jammersServerPFH)
+
 diag_log "RD501 PREP Complete";

+ 9 - 2
addons - Copy/RD501_Main/functions/jammer/fnc_addJammer.sqf

@@ -1,4 +1,11 @@
-params["_jammer", ["_strength", 400], ["_radius", 500]];
+params["_jammer", ["_radius", 300], ["_strength", 400]];
+
+_jammers = missionNamespace getVariable ["rd501_jammers",[]];
+_jammers pushBack [_jammer, _radius, _strength];
+missionNamespace setVariable ["rd501_jammers",_jammers, true];
+
+params["_jammer", "_radius", "_strength"];
 _jipId = ["rd501_addJammerLocal", [_jammer, _radius, _strength]] call CBA_fnc_globalEventJIP;
 _jammer setVariable ["rd501_jammer_jipId", _jipId, true];
-[{ _this call rd501_jammersServerPFH }, 1, [_jammer,_radius,_strength]] call CBA_fnc_addPerFrameHandler;
+
+[{ _this call rd501_jammersServerPFH }, 1, [_jammer, _radius, _strength]] call CBA_fnc_addPerFrameHandler;

+ 6 - 2
addons - Copy/RD501_Main/functions/jammer/fnc_addJammerLocal.sqf

@@ -1,8 +1,12 @@
-if(isDedicated || !hasInterface) exitWith { };
-
+params["_jammer", "_radius", "_strength"];
+if(isDedicated || !hasInterface) exitWith {
+};
+systemChat "Adding Jammer Local";
 if(player getVariable ["rd501_jammers_pfh", -1] == -1) exitWith {
+	systemChat "Adding Client Per Frame Handler";
 	private _handler = [{
 			_this call rd501_fnc_jammersPFH;
 		}, 0.5, [player]] call CBA_fnc_addPerFrameHandler;
 	player setVariable ["rd501_jammers_pfh", _handler];
+	_handler
 };

+ 1 - 0
addons - Copy/RD501_Main/functions/jammer/fnc_jammersPFH.sqf

@@ -12,6 +12,7 @@ _jammers = missionNamespace getVariable ["rd501_jammers",[]];
 
 // Exit if jammer list is empty, remove PFH and rely on someone else calling it via jammer placement
 if(count _jammers == 0) exitWith {
+	systemChat "Exiting Client PFH";
 	[_handle] call CBA_fnc_removePerFrameHandler;
 	_player setVariable ["rd501_jammers_pfh", -1];
 	_player setVariable ["tf_receivingDistanceMultiplicator", 1];

+ 2 - 0
addons - Copy/RD501_Main/functions/jammer/fnc_jammersServerPFH.sqf

@@ -5,6 +5,7 @@ if(!isServer) exitWith {
 };
 
 _jammers = missionNamespace getVariable ["rd501_jammers",[]];
+if(_jammers == []) exitWith { };
 
 _toRemoveIndexes = [];
 {
@@ -22,5 +23,6 @@ _toRemoveIndexes = [];
 missionNamespace setVariable ["rd501_jammers", _jammers, true];
 
 if(count _jammers == 0) exitWith {
+	systemChat "Exiting Server PFH";
 	[_handle] call CBA_fnc_removePerFrameHandler;
 };