Parcourir la source

Deploy ccp is now event system to ensure actions added to all clients

Also made server spawn the vehicle to ensure it doesn't take from the unit's zeus spawn cap thing.
m3ales il y a 4 ans
Parent
commit
a69b34c79b

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

@@ -49,4 +49,12 @@ call macro_fnc_name(fortify_tool);
 rd501_medical_ccp_building = "Land_Medevac_house_V1_F";
 rd501_medical_ccp_bandage_treatmentTime = 1;
 rd501_medical_ccp_stitch_treatmentTime = 1;
-rd501_medical_ccp_classes = ["Land_Medevac_house_V1_F"];
+rd501_medical_ccp_classes = ["Land_Medevac_house_V1_F"];
+
+["rd501_medical_ccp_deployCCPLocal", {
+	_this call rd501_fnc_deployCCPLocal;
+}] call CBA_fnc_addEventHandler;
+
+["rd501_medical_ccp_deployCCPServer", {
+	_this call rd501_fnc_deployCCPServer;
+}] call CBA_fnc_addEventHandler;

+ 3 - 1
addons - Copy/RD501_Main/XEH_preInit.sqf

@@ -116,7 +116,6 @@ macro_prep_xeh(external_reload\fnc_reloadExternal.sqf,reloadExternal)
 macro_prep_xeh(external_reload\fnc_onReloadExternalHandler.sqf,onReloadExternalHandler)
 
 // Medical CCP
-macro_prep_xeh(medical_ccp\fnc_deployCCP.sqf,deployCCP)
 macro_prep_xeh(medical_ccp\fnc_stitchAllWounds.sqf,stitchAllWounds)
 macro_prep_xeh(medical_ccp\fnc_bandageAllWounds.sqf,bandageAllWounds)
 macro_prep_xeh(medical_ccp\fnc_checkInsideCCP.sqf,checkInsideCCP)
@@ -125,5 +124,8 @@ macro_prep_xeh(medical_ccp\fnc_bandageAllNearbyCCP.sqf,bandageAllNearbyCCP)
 macro_prep_xeh(medical_ccp\fnc_valueProgressBar.sqf,valueProgressBar)
 macro_prep_xeh(medical_ccp\fnc_incrementBandageProgress.sqf,incrementBandageProgress)
 macro_prep_xeh(medical_ccp\fnc_incrementStitchProgress.sqf,incrementStitchProgress)
+macro_prep_xeh(medical_ccp\fnc_deployCCP.sqf,deployCCP)
+macro_prep_xeh(medical_ccp\fnc_deployCCPLocal.sqf,deployCCPLocal)
+macro_prep_xeh(medical_ccp\fnc_deployCCPServer.sqf,deployCCPServer)
 
 diag_log "RD501 PREP Complete";

+ 14 - 0
addons - Copy/RD501_Main/functions/medical_ccp/fnc_deployCCPLocal.sqf

@@ -0,0 +1,14 @@
+params["_ccp"];
+
+_action = ["rd501_medical_ccp_bandageAll", "Bandage All Patients", "", {
+	params ["_target", "_player", "_params"];
+		[_player, _target, 20] call rd501_fnc_bandageAllNearbyCCP;
+	}, {true}] call ace_interact_menu_fnc_createAction;
+[_ccp, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
+
+_action = ["rd501_medical_ccp_stitchAll", "Stitch All Patients", "", {
+	params ["_target", "_player", "_params"];
+		[_player, _target, 20] call rd501_fnc_stitchAllWoundsNearbyCCP;
+	}, {true}] call ace_interact_menu_fnc_createAction;
+
+[_ccp, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;

+ 8 - 0
addons - Copy/RD501_Main/functions/medical_ccp/fnc_deployCCPServer.sqf

@@ -0,0 +1,8 @@
+params["_target"];
+
+_position = position _target;
+deleteVehicle _target;
+_spawner = rd501_medical_ccp_building createVehicle _position;
+systemChat format["Deployed CCP"];
+
+["rd501_medical_ccp_deployCCPLocal", [_spawner]] call CBA_fnc_remoteEvent; // raise on all clients (we should be on server)

+ 3 - 20
addons - Copy/RD501_Main/functions/medical_ccp/fnc_deployCcp.sqf

@@ -1,22 +1,5 @@
-params [
-	"_target", 
-	"_player", 
-	"_params"
-];
+params ["_target", "_player", "_params"];
 
-_position = position _target;
-deleteVehicle _target;
-_spawner = rd501_medical_ccp_building createVehicle _position;
-systemChat format["Deployed CCP"];
+["rd501_medical_ccp_deployCCPServer", [_target]] call CBA_fnc_serverEvent;
 
-_action = ["rd501_medical_ccp_bandageAll", "Bandage All Patients", "", {
-	params ["_target", "_player", "_params"];
-		[_player, _target, 20] call rd501_fnc_bandageAllNearbyCCP;
-	}, {true}] call ace_interact_menu_fnc_createAction;
-[_spawner, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
-
-_action = ["rd501_medical_ccp_stitchAll", "Stitch All Patients", "", {
-	params ["_target", "_player", "_params"];
-		[_this select 0, _this select 1, 20] call rd501_fnc_stitchAllWoundsNearbyCCP;
-	}, {true}] call ace_interact_menu_fnc_createAction;
-[_spawner, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
+["Deploying CCP Nearby"] call ACE_common_fnc_displayText;

+ 1 - 1
addons - Copy/RD501_Vehicles/land/resupply_box/config.cpp

@@ -84,7 +84,7 @@ class CfgVehicles
 				distance = 4;
 				class rd501_deploy_medical_ccp {
 					displayName = "Deploy";
-					statement = "_this call rd501_fnc_deployCcp";
+					statement = "_this call rd501_fnc_deployCCP";
 					icon = "rd501_main\ui_icons\medical_emblem.paa";
 					exceptions[] = {};
 				};