From a65fbddc73184a66ef3c45930170357e572d3b58 Mon Sep 17 00:00:00 2001 From: Zepheris Date: Sun, 23 Feb 2020 18:51:30 -0700 Subject: [PATCH] Converted script for Epoch. Before testing --- .../addons/drag_body/H8_dragBody.sqf | 335 ++++++++---------- .../CfgActionMenu/CfgActionMenu_target.hpp | 21 ++ .../epoch_config/Configs/CfgRemoteExec.hpp | 80 +++-- Server/mpmissions/epoch.Bornholm/init.sqf | 2 + 4 files changed, 215 insertions(+), 223 deletions(-) diff --git a/Server/mpmissions/epoch.Bornholm/addons/drag_body/H8_dragBody.sqf b/Server/mpmissions/epoch.Bornholm/addons/drag_body/H8_dragBody.sqf index cb451f0..b0e6ef4 100644 --- a/Server/mpmissions/epoch.Bornholm/addons/drag_body/H8_dragBody.sqf +++ b/Server/mpmissions/epoch.Bornholm/addons/drag_body/H8_dragBody.sqf @@ -1,197 +1,156 @@ /* DragBody script by BangaBob (H8erMaker) v1.2 - - Description - Drag dead bodies out of sight to avoid detection. JIP/MP/SP/Dedicated compatible - - Instructions - Add this line into the init.sqf. This will add a drag action to all editor placed units. - null = allUnits execVM "H8_dragBody.sqf"; - - Functions - [UNIT1,UNIT2,UNIT3] spawn H8_addDrag; - Add living units into the script. (Useful for units spawned mid-mission). + http://www.armaholic.com/page.php?id=26578 + +Modified by Zepheris to work with A3 Epoch's Dyna Menu System */ -#define H8_DRAGTEXT "Drag Body" // AddAction text for drag body -#define H8_DROPTEXT "Release Body" // AddAction text for dropping body -#define H8_LOADTEXT "Load Body" // AddAction text for dropping body -#define H8_UNLOTEXT "Unload Body" // AddAction text for dropping body - - H8_fnc_Action = { -_dragCond = "vehicle _this != vehicle _target and isNull attachedTo _target and count attachedObjects _this == 0 and _target distance _this < 3"; - { - _x addaction [H8_DRAGTEXT,{call H8_DragAction},nil,6,false,false,"",_dragCond]; - }forEach _this; - }; - - - H8_DragAction = { - _unit = (_this select 0); - -// GLOBAL CODE - _unitID = _unit getVariable "H8_increm"; - [[_unit, vehicle player,_unitID],"H8_fnc_attach",true] call BIS_fnc_MP; - _unit attachTo [player,[0,1,0]]; - -// CLIENT SIDE - player playAction "grabDrag"; - player forceWalk true; - -_dropID= player addAction [H8_DROPTEXT,{call H8_dropAction},_unit,6]; -_hideID =player addAction [H8_LOADTEXT,{call H8_putIncar},_unit,6,false,false,"","_target distance _this < 8 and cursorTarget isKindOf ""LandVehicle"""]; - - player setVariable ["H8hideVeh",_hideID]; - player setVariable ["H8dropact",_dropID]; - }; - - - H8_putIncar = { - _hideID = (_this select 2); - _dropID = player getVariable "H8dropact"; - _unit = (_this select 3); - _vehicle = cursorTarget; - -_loadedBody =_vehicle getVariable "H8loadedBody"; - if (isNil "_loadedBody") then { - - -// CLIENT CODE - player playMove "amovpknlmstpsraswrfldnon"; - player forceWalk false; - player removeAction _hideID; - player removeAction _dropID; - -// GLOBAL CODE - _unitID = _unit getVariable "H8_increm"; - 0 = [[_unit, vehicle player,_unitID],"H8_fnc_detach",true] call BIS_fnc_MP; - sleep 1; - deTach _unit; - _unit setPos [0,0,0]; - _vehicle setVariable ["H8loadedBody",_unit,true]; - [[_vehicle],"H8_carAction",true] call BIS_fnc_MP; - - - }else{ -hint "Vehicle already has a body loaded"; - }; - }; - - - H8_carAction = { - _vehicle = (_this select 0); - _vehicle addAction [H8_UNLOTEXT,{call H8_removeBody},nil,0,false,false,"","_this distance _target < 8"]; - }; - - - H8_carRemoveAction = { - _vehicle = (_this select 0); - _id = (_this select 1); - _vehicle removeAction _id; - }; - - - H8_removeBody = { - _vehicle = (_this select 0); - _player = (_this select 1); - _id = (_this select 2); - - [[_vehicle,_id],"H8_carRemoveAction",true] call BIS_fnc_MP; - - _unit = _vehicle getVariable "H8loadedBody"; - _vehicle setVariable ["H8loadedBody",Nil]; - _pos = _player modelToWorld [1,0,0]; - _unit setPos _pos; - _unit switchMove "AinjPpneMstpSnonWrflDb_release"; - }; - - - H8_dropAction = { - _dropID = (_this select 2); - _hideID = player getVariable "H8hideVeh"; - _unit = (_this select 3); - -// GLOBAL CODE - _unitID = _unit getVariable "H8_increm"; - 0 = [[_unit, vehicle player,_unitID],"H8_fnc_detach",true] call BIS_fnc_MP; - deTach _unit; - -// CLIENT SIDE - player removeAction _hideID; - player removeAction _dropID; - player playMove "amovpknlmstpsraswrfldnon"; - player forceWalk false; - }; - - - H8_fnc_attach = { - _unit = (_this select 0); - _player = (_this select 1); - _unitID = (_this select 2); - - _id = format ["h8EF%1",_unitID]; - 0 = [_id, "onEachFrame", "H8_fnc_moveBody",[_unit,_player]] call BIS_fnc_addStackedEventHandler; - }; - - - H8_fnc_detach = { - _unit = (_this select 0); - _player = (_this select 1); - _unitID = (_this select 2); - - _id = format ["h8EF%1",_unitID]; - 0 = [_id, "onEachFrame"] call BIS_fnc_removeStackedEventHandler; - - sleep 0.05; - _relD = [_unit,_player] call BIS_fnc_dirTo; - _unit switchMove "AinjPpneMstpSnonWrflDb_release"; - _unit setDir _relD; - }; - - - H8_fnc_moveBody = { - _unit = (_this select 0); - _player = (_this select 1); - -// CREDIT TOO Das Attorney FOR CODE - _pos = _player modelToWorld [0,1,0]; - _unit setPos _pos; - _unit setDir 180; - _unit switchMove "AinjPpneMrunSnonWnonDb"; - }; - H8_addDrag = { - { - H8_increments = H8_increments + 1; - _x setVariable ["H8_increm",H8_increments,true]; - H8_dragUnitArray set [count H8_dragUnitArray, _x]; - }forEach _this; - - [_this,"H8_fnc_Action",TRUE] call BIS_fnc_MP; - -publicVariable "H8_increments"; -publicVariable "H8_dragUnitArray"; - }; +H8_DragAction = { + _unit = (_this select 0); + _epochID = (_this select 1); + + //[[_unit, vehicle player,_unitID],"H8_fnc_attach",true] call BIS_fnc_MP; + [_unit, vehicle player, _epochID] remoteExec ["H8_fnc_attach", 2, false]; + _unit attachTo [player,[0,1,0]]; + + player playAction "grabDrag"; + player forceWalk true; +}; + +H8_fnc_attach = { + _unit = (_this select 0); + _player = (_this select 1); + _unitID = (_this select 2); + + _id = format ["h8EF%1",_unitID]; + 0 = [_id, "onEachFrame", "H8_fnc_moveBody",[_unit,_player]] call BIS_fnc_addStackedEventHandler; +}; + +H8_fnc_moveBody = { + _unit = (_this select 0); + _player = (_this select 1); + + // CREDIT TOO Das Attorney FOR CODE + _pos = _player modelToWorld [0,1,0]; + _unit setPos _pos; + _unit setDir 180; + _unit switchMove "AinjPpneMrunSnonWnonDb"; +}; + +H8_dropAction = { + _dropID = (_this select 0); + _epochID = (_this select 1); + + // GLOBAL CODE + //0 = [[_unit, vehicle player,_unitID],"H8_fnc_detach",true] call BIS_fnc_MP; + [_unit, vehicle player, _epochID] remoteExec ["H8_fnc_detach",2,false]; + detach _unit; + + // CLIENT SIDE + player playMove "amovpknlmstpsraswrfldnon"; + player forceWalk false; +}; + +H8_fnc_detach = { + _unit = (_this select 0); + _player = (_this select 1); + _unitID = (_this select 2); + + _id = format ["h8EF%1",_unitID]; + 0 = [_id, "onEachFrame"] call BIS_fnc_removeStackedEventHandler; + + sleep 0.05; + _relD = [_unit,_player] call BIS_fnc_dirTo; + _unit switchMove "AinjPpneMstpSnonWrflDb_release"; + _unit setDir _relD; +}; + +/* +H8_putIncar = { + _hideID = (_this select 2); + _dropID = player getVariable "H8dropact"; + _unit = (_this select 3); + _vehicle = cursorTarget; + + _loadedBody =_vehicle getVariable "H8loadedBody"; + if (isNil "_loadedBody") then { + + // CLIENT CODE + player playMove "amovpknlmstpsraswrfldnon"; + player forceWalk false; + player removeAction _hideID; + player removeAction _dropID; + + // GLOBAL CODE + _unitID = _unit getVariable "H8_increm"; + 0 = [[_unit, vehicle player,_unitID],"H8_fnc_detach",true] call BIS_fnc_MP; + sleep 1; + deTach _unit; + _unit setPos [0,0,0]; + _vehicle setVariable ["H8loadedBody",_unit,true]; + [[_vehicle],"H8_carAction",true] call BIS_fnc_MP; + + }else{ + hint "Vehicle already has a body loaded"; + }; +}; + +H8_carAction = { + _vehicle = (_this select 0); + _vehicle addAction [H8_UNLOTEXT,{call H8_removeBody},nil,0,false,false,"","_this distance _target < 8"]; +}; + +H8_carRemoveAction = { + _vehicle = (_this select 0); + _id = (_this select 1); + _vehicle removeAction _id; +}; + +H8_removeBody = { + _vehicle = (_this select 0); + _player = (_this select 1); + _id = (_this select 2); + + [[_vehicle,_id],"H8_carRemoveAction",true] call BIS_fnc_MP; + + _unit = _vehicle getVariable "H8loadedBody"; + _vehicle setVariable ["H8loadedBody",Nil]; + _pos = _player modelToWorld [1,0,0]; + _unit setPos _pos; + _unit switchMove "AinjPpneMstpSnonWrflDb_release"; +}; + +H8_addDrag = { + { + H8_increments = H8_increments + 1; + _x setVariable ["H8_increm",H8_increments,true]; + H8_dragUnitArray set [count H8_dragUnitArray, _x]; + }forEach _this; + + [_this,"H8_fnc_Action",TRUE] call BIS_fnc_MP; + + publicVariable "H8_increments"; + publicVariable "H8_dragUnitArray"; +}; - if (isServer) then { -if (isNil ("H8_dragUnitArray")) then { - H8_dragUnitArray = []; - H8_increments = 0;}; - - { - H8_increments = H8_increments + 1; - _x setVariable ["H8_increm",H8_increments,true]; - H8_dragUnitArray set [count H8_dragUnitArray, _x]; - }forEach _this; - -publicVariable "H8_increments"; -publicVariable "H8_dragUnitArray"; - }; - + if (isNil ("H8_dragUnitArray")) then { + H8_dragUnitArray = []; + H8_increments = 0;}; + { + H8_increments = H8_increments + 1; + _x setVariable ["H8_increm",H8_increments,true]; + H8_dragUnitArray set [count H8_dragUnitArray, _x]; + }forEach _this; + publicVariable "H8_increments"; + publicVariable "H8_dragUnitArray"; +}; + if (!isServer && (player != player)) then { waitUntil {player == player}; waitUntil {time > 15};}; - - if (!isDedicated) then { - 0 = H8_dragUnitArray spawn H8_fnc_Action; - }; \ No newline at end of file + +if (!isDedicated) then { + 0 = H8_dragUnitArray spawn H8_fnc_Action; +}; +/* diff --git a/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp b/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp index 9eb1645..2156293 100644 --- a/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp +++ b/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp @@ -24,7 +24,28 @@ class flip_vic }; */ //end added by Zepheris +class drag_Stuff +{ + condition = "true"; + action = ""; + icon = "x\addons\a3_epoch_code\Data\UI\buttons\epoch_bluekey.paa"; + tooltip= "Drag Test"; + class drag_body + { + condition = "true"; + action = "[dyna_cursorTarget,Epoch_personalToken] call H8_dragAction;"; + icon = "x\addons\a3_epoch_code\Data\UI\buttons\epoch_brownkey.paa"; + tooltip = "Grab Test"; + }; + class drop_body + { + condition = "true"; + action = "[dyna_cursorTarget,Epoch_personalToken] call H8_dropAction;"; + icon = "x\addons\a3_epoch_code\Data\UI\buttons\epoch_coralkey.paa"; + tooltip = "Release Test"; + }; +}; class build_upgrade { condition = "dyna_buildMode select 0"; diff --git a/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgRemoteExec.hpp b/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgRemoteExec.hpp index 2647e4e..a70ebb4 100644 --- a/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgRemoteExec.hpp +++ b/Server/mpmissions/epoch.Bornholm/epoch_config/Configs/CfgRemoteExec.hpp @@ -26,26 +26,26 @@ class CfgRemoteExec { mode = 1; jip = 0; - class EPOCH_server_spawnLoot - { - allowedTargets=2; - jip = 0; - }; - class EPOCH_server_PaintVehicle - { - allowedTargets=2; - jip = 0; - }; - class EPOCH_server_PutCrypto - { - allowedTargets=2; - jip = 0; - }; - class EPOCH_server_SetFinalPlayerPos - { - allowedTargets=2; - jip = 0; - }; + class EPOCH_server_spawnLoot + { + allowedTargets=2; + jip = 0; + }; + class EPOCH_server_PaintVehicle + { + allowedTargets=2; + jip = 0; + }; + class EPOCH_server_PutCrypto + { + allowedTargets=2; + jip = 0; + }; + class EPOCH_server_SetFinalPlayerPos + { + allowedTargets=2; + jip = 0; + }; class bis_fnc_reviveinitaddplayer { allowedTargets = 2; @@ -321,51 +321,61 @@ class CfgRemoteExec allowedTargets = 2; jip = 0; }; - class EPOCH_server_upgrade_vehicle + class EPOCH_server_upgrade_vehicle { allowedTargets = 2; jip = 0; }; - class EPOCH_fnc_updatePlayerStats + class EPOCH_fnc_updatePlayerStats { allowedTargets = 2; jip = 0; }; - class EPOCH_client_updatePlayerStat + class EPOCH_client_updatePlayerStat { allowedTargets = 1; jip = 0; }; - class EPOCH_server_createTempGroup - { + class EPOCH_server_createTempGroup + { allowedTargets = 2; jip = 0; }; - class EPOCH_server_invitePlayerTempGroup - { + class EPOCH_server_invitePlayerTempGroup + { allowedTargets = 2; jip = 0; }; - class EPOCH_server_updatePlayerTempGroup - { + class EPOCH_server_updatePlayerTempGroup + { allowedTargets = 2; jip = 0; }; - class EPOCH_server_deleteTempGroup - { + class EPOCH_server_deleteTempGroup + { allowedTargets = 2; jip = 0; }; - class EPOCH_server_upgradeTempGroup - { + class EPOCH_server_upgradeTempGroup + { allowedTargets = 2; jip = 0; }; - class EPOCH_server_DefuseBomb - { + class EPOCH_server_DefuseBomb + { allowedTargets = 2; jip = 0; }; + class H8_fnc_attach + { + allowedTargets = 0; + jip = 0; + }; + class H8_fnc_detach + { + allowedTargets = 0; + jip = 0; + }; }; class Commands { diff --git a/Server/mpmissions/epoch.Bornholm/init.sqf b/Server/mpmissions/epoch.Bornholm/init.sqf index 3121918..8463604 100644 --- a/Server/mpmissions/epoch.Bornholm/init.sqf +++ b/Server/mpmissions/epoch.Bornholm/init.sqf @@ -30,3 +30,5 @@ call compile preprocessFileLineNumbers (TCL_Path+"TCL_Preprocess.sqf"); // 7. B_Heli_Transport_01_F = Transport helicopter for the mission system EPOCH_spawnLimits = [0, 1, 0, 0, 1, 0, 1]; + +execVM "addons\drag_body\H8_dragBody.sqf";