From e44cb14dcad892a4d8fe16f9b2c8dca259111b03 Mon Sep 17 00:00:00 2001 From: MisterHLunaticwraith Date: Sun, 22 Sep 2019 02:11:16 +0200 Subject: [PATCH] v.1.17.5 Changelog: MRH Milsim Tools version : v.1.17.5 - Core : * Added setting to disable loading of personal loadouts in Ace Arsenal * Added attributes checkbox to allow a full zeus for unit (no need to add the module etc.) * Added utility function to generate ace default loadouts: >Function name:MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts Description: Generates a ready to paste file to run from mission or addon's init that will set Ace default loadouts for the ace arsenal tab. HOW TO: create your loadouts on different units placed in the editor, give each unit a variable name that corresponds to the loadout (it will be the loadout name). When you're done, run the function. Paste the results to your mission's init.sqf (or any other sqf filled executed from init.sqf). The result file also contains a list of the objetcs to allow for the arsenal box if you want a limited arsenal as well as a how to. (see comments at the bottom of the generated file) Alternatively for sexier loadout names you can set them in the roledescription field of the unit and call the function with true as a parameter (but it will only grab playable units) Return value: file to paste from clipboard Public: Yes Parameters: 0- (optional) to use roledescription instead of variable name Example(s): call MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts; //will use allunits and variable names or true call MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts; // will grab only playable units and use role descriptions - Zeus modules * Added module to grant any player zeus powers - Misc Items * Added Magic Whellie bin: >Anything placed in the bin wheel be deleted (when the bin's inventory tab is closed) useful if your players are the type to leave stuff everywher, the been can be carried and dragged with ace, have someone on cleanup duty! --- .github/changelog.md | 31 ++++++++ ...ilsimTools_Core_cbaEventHandlersPlayer.sqf | 45 ++++++++++++ ...mTools_Core_generateAceDefaultLoadOuts.sqf | 59 ++++++++++++++++ .../fn_MilsimTools_Core_isCurator.sqf | 21 ++++++ ...n_MilsimTools_Core_serverCreateCurator.sqf | 66 ++++++++++++++++++ .../Functions/InitFunctions/XEHclient.sqf | 1 + .../Functions/SettingsPreInit/CBASettings.sqf | 1 + .../MRHMilsimTools/Functions/cfgFunctions.hpp | 8 +++ Addons/MRHMilsimTools/cfghpp/cfg3DEN.hpp | 18 ++++- Addons/MRHMilsimTools/config.cpp | 6 +- Addons/MRHMilsimTools/stringtable.xml | 20 ++++++ .../MRHMiscItems/Functions/cfgfunctions.hpp | 2 + .../fn_MilsimTools_MiscItems_binHandlers.sqf | 30 ++++++++ Addons/MRHMiscItems/cfgvehicles.hpp | 13 ++++ Addons/MRHMiscItems/config.cpp | 2 +- Addons/MRHMiscItems/stringtable.xml | 5 ++ .../MRHZeusModules/Functions/cfgfunctions.hpp | 6 ++ .../fn_MilsimTools_ZeusModules_setZeus.sqf | 24 +++++++ Addons/MRHZeusModules/Paa/ModuleZeus.paa | Bin 0 -> 22016 bytes Addons/MRHZeusModules/cfghpp/cfgvehicles.hpp | 11 +++ Addons/MRHZeusModules/config.cpp | 3 +- Addons/MRHZeusModules/stringtable.xml | 15 ++++ 22 files changed, 381 insertions(+), 6 deletions(-) create mode 100644 Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_cbaEventHandlersPlayer.sqf create mode 100644 Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateAceDefaultLoadOuts.sqf create mode 100644 Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_isCurator.sqf create mode 100644 Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_serverCreateCurator.sqf create mode 100644 Addons/MRHMiscItems/Functions/fn_MilsimTools_MiscItems_binHandlers.sqf create mode 100644 Addons/MRHZeusModules/Functions/fn_MilsimTools_ZeusModules_setZeus.sqf create mode 100644 Addons/MRHZeusModules/Paa/ModuleZeus.paa diff --git a/.github/changelog.md b/.github/changelog.md index 07f17a2..3b344cd 100644 --- a/.github/changelog.md +++ b/.github/changelog.md @@ -1,4 +1,35 @@ Changelog: +MRH Milsim Tools version : v.1.17.5 +- Core : +* Added setting to disable loading of personal loadouts in Ace Arsenal +* Added attributes checkbox to allow a full zeus for unit (no need to add the module etc.) +* Added utility function to generate ace default loadouts: +>Function name:MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts + +Description: Generates a ready to paste file to run from mission or addon's init that will set Ace default loadouts for the ace arsenal tab. +HOW TO: create your loadouts on different units placed in the editor, give each unit a variable name that corresponds to the loadout (it will be the loadout name). When you're done, run the function. Paste the results to your mission's init.sqf (or any other sqf filled executed from init.sqf). + +The result file also contains a list of the objetcs to allow for the arsenal box if you want a limited arsenal as well as a how to. (see comments at the bottom of the generated file) + +Alternatively for sexier loadout names you can set them in the roledescription field of the unit and call the function with true as a parameter (but it will only grab playable units) +Return value: file to paste from clipboard +Public: Yes +Parameters: +0- (optional) to use roledescription instead of variable name +Example(s): +call MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts; //will use allunits and variable names +or +true call MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts; // will grab only playable units and use role descriptions + +- Zeus modules +* Added module to grant any player zeus powers + +- Misc Items +* Added Magic Whellie bin: +>Anything placed in the bin wheel be deleted (when the bin's inventory tab is closed) useful if your players are the type to leave stuff everywher, the been can be carried and dragged with ace, have someone on cleanup duty! + +///////////////////////////////// +Changelog: MRH Milsim Tools version : v.1.17.4 - Heli Taxi revamped: diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_cbaEventHandlersPlayer.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_cbaEventHandlersPlayer.sqf new file mode 100644 index 0000000..504e678 --- /dev/null +++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_cbaEventHandlersPlayer.sqf @@ -0,0 +1,45 @@ +/* +Function name:MRH_fnc_MilsimTools_Core_cbaEventHandlersPlayer +Author: Mr H. +Description: Fired at player init, adds some cba handlers +Return value: none +Public: No +Parameters:none + +Example(s): +call MRH_fnc_MilsimTools_Core_cbaEventHandlersPlayer; +*/ +#include "MRH_C_Path.hpp" +["MRH_EventsCuratorAssigned", + { + params ["_unit"]; + [_unit]FUNC(isCurator); + ["MRH_Zeus_Notif",["A Zeus has granted you Zeus powers,use them wisely!"]] call BIS_fnc_showNotification; + } +] call CBA_fnc_addEventHandler; + +["MRH_Events_curatorObjectCreated", + { + params ["_zeusPlayer","_zeusModule"]; + _toTrace = format ["Player %1 has received zeus powers and been assigned module %2",_zeusPlayer,_zeusModule]; + TRACE(_toTrace); + } +] call CBA_fnc_addEventHandler; + +["ace_arsenal_loadoutsDisplayOpened", + { + params ["_display"]; + if (serverCommandAvailable "#kick") exitWith {}; + _hide= ["MRH_MilsimTools_hideAceMyLoadOuts"] call cba_settings_fnc_get; + if !(_hide) exitWith {}; + (_display displayCtrl 401) ctrlShow false; + (_display displayCtrl 402) ctrlShow false; + [_display] spawn { + params ["_display"]; + sleep 0.1; //needed because the change tab func is called to set to default after the EH is fired + [_display,(_display displayCtrl 404)] call ace_arsenal_fnc_loadoutsChangeTab; + }; + } +] call CBA_fnc_addEventHandler; + +TRACE("Player CBA Even tHandlers Added"); \ No newline at end of file diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateAceDefaultLoadOuts.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateAceDefaultLoadOuts.sqf new file mode 100644 index 0000000..fa01224 --- /dev/null +++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_generateAceDefaultLoadOuts.sqf @@ -0,0 +1,59 @@ +/* +Function name:MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts +Author: Mr H. +Description: Generates a ready to paste file to run from mission or addon's init that will set Ace default loadouts for the ace arsenal tab. +HOW TO: create your loadouts on different units placed in the editor, give each unit a variable name that corresponds to the loadout (it will be the loadout name). When you're done, run the function. Paste the results to your mission's init.sqf (or any other sqf filled executed from init.sqf). + +The result file also contains a list of the objetcs to allow for the arsenal box if you want a limited arsenal as well as a how to. (see comments at the bottom of the generated file) + +Alternatively for sexier loadout names you can set them in the roledescription field of the unit and call the function with true as a parameter (but it will only grab playable units) +Return value: file to paste from clipboard +Public: Yes +Parameters: +0- (optional) to use roledescription instead of variable name +Example(s): +call MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts; //will use allunits and variable names +or +true call MRH_fnc_MilsimTools_Core_generateAceDefaultLoadOuts; // will grab only playable units and use role descriptions +*/ +#include "MRH_C_Path.hpp" +params [["_useRoleDescription",false]]; +_allUnits = allUnits; +if (_useRoleDescription) then {_allUnits = playableUnits}; + +_allLoadOuts =["[",endl,endl]; +_arsenalItemsArray = []; + +//---generates the objects for the arsenalVariable (Borrowed from ace 3 doc) +private _items = _allUnits apply {getUnitLoadout _x}; +_items = str _items splitString "[]," joinString ","; +_items = parseSimpleArray ("[" + _items + "]"); +_items = _items arrayIntersect _items select {_x isEqualType "" && {_x != ""}}; + +_getName = { + params ["_unit","_useRoleDescription"]; + _roleDescription = roleDescription _unit; + if ((roleDescription _unit) isEqualTo "") then {_roleDescription = getText(configFile >> "CfgVehicles" >> typeOf(_unit) >> "displayName")}; + [str _unit,_roleDescription] select _useRoleDescription + }; + +{ + private _name = [_x,_useRoleDescription] call _getName; + private _toString =[endl,endl,"//-----",_name,"-----//",endl,"[","""",_name,"""",",",getUnitLoadOut _x,"]"]; + _toString append ([[",",endl,endl],[endl,endl]] select (_forEachIndex isEqualTo ((count _allUnits)-1))); + _allLoadOuts append _toSTring; +}forEach _allunits; +_allLoadOuts pushBackUnique "];"; + +_info1 = "/*"; +_info2 = "//-----NOTE-------//"; +_info3 = "If you want to create an arsenal that contains only items from the above loadouts paste the following code in its init:"; +_info4 ="this spawn {waitUntil{!isNil 'ACE_ArsenalAllowedItems'};[_this,ACE_ArsenalAllowedItems,true] call ace_arsenal_fnc_initBox};"; +_info5 ="*/"; +_script = ["//-----------Load Outs-----------//",endl,endl,"_allLoadOuts = "]; +_footer = [endl,endl,"//----------LoadOuts End----------//",endl,endl,"//-------add loadouts to ace default------",endl,"{[_x select 0,_x select 1] call ace_arsenal_fnc_addDefaultLoadout}forEach _allLoadOuts;",endl,endl,"ACE_ArsenalAllowedItems =",_items,";",endl,endl,_info1,endl,_info2,endl,_info3,endl,_info4,endl,_info5]; + +_script append _allLoadOuts; +_script append _footer; +copyToClipboard (_script joinstring ""); +hint "export complete, paste results to file"; \ No newline at end of file diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_isCurator.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_isCurator.sqf new file mode 100644 index 0000000..22d5531 --- /dev/null +++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_isCurator.sqf @@ -0,0 +1,21 @@ +/* +Function name:MRH_fnc_MilsimTools_Core_isCurator +Author: Mr H. +Description: Creates and assigns a player a zeus curator. Must be executed on player's machine +Return value: None +Public: No +Parameters: + 0- player object that will receive zeus powers + +Example(s): +[player]call MRH_fnc_MilsimTools_Core_isCurator; +*/ +#include "MRH_C_Path.hpp" +if (is3DEN) exitWith{}; +_this spawn { + params ["_unit"]; + waitUntil {(time>5) && (player == _unit)}; + [[_unit],MRH_fnc_MilsimTools_Core_serverCreateCurator] RemoteExec ["Call",2]; + _toTrace = format ["isCurator function called for %1",_unit]; + TRACE(_toTrace); + }; \ No newline at end of file diff --git a/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_serverCreateCurator.sqf b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_serverCreateCurator.sqf new file mode 100644 index 0000000..e4d0204 --- /dev/null +++ b/Addons/MRHMilsimTools/Functions/CoreFunctions/fn_MilsimTools_Core_serverCreateCurator.sqf @@ -0,0 +1,66 @@ +/* +Function name:MRH_fnc_MilsimTools_Core_serverCreateCurator +Author: Mr H. +Description: Creates a new curator module for a player unit, if it already exists it reassigns the module to the unit, curator object gets a variablename based on player's variable name in format MRH_Player_Zeus_Module_ + player variable eg. zeus module for player somePlayer will be called MRH_Player_Zeus_Module_somePlayer +Return value: None +Public: No +Parameters: +0- player object + +Example(s): +[somePlayer]call MRH_fnc_MilsimTools_Core_serverCreateCurator; +*/ +#include "MRH_C_Path.hpp" +if !(isServer) ExitWith {}; + params ["_zeusPlayer"]; + _name =("MRH_Player_Zeus_Module" +"_" + (str _zeusPlayer)); + _PLAYERSLOT_Zeus_Module = missionNameSpace getVariable [_name,objNull]; + if !(isNull _PLAYERSLOT_Zeus_Module) exitWith {_zeusPlayer assignCurator _PLAYERSLOT_Zeus_Module;}; + + _MRH_Zeus_logicSide = missionNamespace getVariable ["MRH_Zeus_SideLogic",objNull]; + _MRH_Zeus_logicGrp = missionNamespace getVariable ["MRH_Zeus_logicGrp",objNull]; + + if (isNull _MRH_Zeus_LogicGrp) then { + _MRH_Zeus_logicSide = createCenter sideLogic; + missionNamespace setVariable ["MRH_Zeus_SideLogic",_MRH_Zeus_logicSide,true]; + _MRH_Zeus_logicGrp = createGroup _MRH_Zeus_logicSide; + missionNamespace setVariable ["MRH_Zeus_logicGrp",_MRH_Zeus_logicGrp,true]; + }; + + + + _PLAYERSLOT_Zeus_Module = _MRH_Zeus_logicGrp createUnit ["ModuleCurator_F",[2,0,0] , [], 0, ""]; + _PLAYERSLOT_Zeus_Module setVariable ["showNotification", false, true]; + _PLAYERSLOT_Zeus_Module setVariable ["birdType", "", true]; + _PLAYERSLOT_Zeus_Module setVariable ["Owner", (str _zeusPlayer), true]; + _PLAYERSLOT_Zeus_Module setVariable ["Addons", 3, true]; + _PLAYERSLOT_Zeus_Module setVariable ["Forced", 0, true]; + _PLAYERSLOT_Zeus_Module setVariable ["name", "Zeus joueur", true]; + missionNamespace setVariable ["MRH_Player_Zeus_Module" +"_" + (str _zeusPlayer),_PLAYERSLOT_Zeus_Module,true]; + _PLAYERSLOT_Zeus_Module setVehicleVarName ("MRH_Player_Zeus_Module" +"_" + (str _zeusPlayer)); + _PLAYERSLOT_Zeus_Module setVariable [ "bis_fnc_initModules_disableAutoActivation", false, true ]; + _PLAYERSLOT_Zeus_Module call BIS_fnc_objectVar; + + + + + + _PLAYERSLOT_Zeus_Module addCuratorEditableObjects [(allMissionObjects "All"),true]; + _PLAYERSLOT_Zeus_Module addEventHandler ["CuratorObjectPlaced", + { + params ["_curator", "_entity"]; + { + _x addCuratorEditableObjects [[_entity],true]; + } forEach allCurators; + + }]; + _zeusPlayer assignCurator _PLAYERSLOT_Zeus_Module; + [[_zeusPlayer], + { + params ["_zeusPlayer"]; + _zeusPlayer addEventHandler ["Respawn",{params ["_unit", "_corpse"]; [_unit] call MRH_fnc_isCurator}]; + } + ]RemoteExec ["Call",_zeusPlayer]; + _toTrace = format ["Zeus module %1 Created and assigner to %1",_zeusPlayer,_PLAYERSLOT_Zeus_Module]; + TRACE(_toTrace); + ["MRH_Events_curatorObjectCreated", [_zeusPlayer,_PLAYERSLOT_Zeus_Module]] call CBA_fnc_globalEvent; \ No newline at end of file diff --git a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf index c8ac7ee..f55a302 100644 --- a/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf +++ b/Addons/MRHMilsimTools/Functions/InitFunctions/XEHclient.sqf @@ -6,6 +6,7 @@ { FUNC(InitPlayerLocal); FUNC(initMRHPlayer); + FUNC(cbaEventHandlersPlayer); }] call CBA_fnc_waitUntilAndExecute; diff --git a/Addons/MRHMilsimTools/Functions/SettingsPreInit/CBASettings.sqf b/Addons/MRHMilsimTools/Functions/SettingsPreInit/CBASettings.sqf index 6e58159..941b5e9 100644 --- a/Addons/MRHMilsimTools/Functions/SettingsPreInit/CBASettings.sqf +++ b/Addons/MRHMilsimTools/Functions/SettingsPreInit/CBASettings.sqf @@ -31,6 +31,7 @@ _script Script to execute when setting is changed. (optional) ["MRH_MilsimTools_Delete_disconnected_body", "CHECKBOX", [localize "STR_MRH_MS_CBA_CORE_REMOVEDISCONNECTEDBODYPRETTY",localize "STR_MRH_MS_CBA_CORE_REMOVEDISCONNECTEDBODYTOOLTIP"], "MRH_MilsimTools - Core settings",true,1] call cba_settings_fnc_init; //setting to apply medic patch on ace3 medics ["MRH_MilsimTools_Core_ApplyMedicPatch", "CHECKBOX", [localize "STR_MRH_CBA_ApplyMedicPatchSetting",localize "STR_MRH_CBA_ApplyMedicPatchSettingToolTip"], "MRH_MilsimTools - Core settings",true,1] call cba_settings_fnc_init; +["MRH_MilsimTools_hideAceMyLoadOuts", "CHECKBOX", [localize "STR_MRH_CBA_DISABLEACELOADOUTS",localize "STR_MRH_CBA_DISABLEACELOADOUTSToolTip"],"MRH_MilsimTools - Core settings",false,1] call cba_settings_fnc_init; //===Below are settings for the jip menu //allow jip menu on startup ["MRH_MilsimTools_Jip_MenuAllow", "CHECKBOX", [localize "STR_MRH_MS_CBA_JIP_ALLOWPRETTY",localize "STR_MRH_MS_CBA_JIP_ALLOWTOOLTIP"], "MRH_MilsimTools - JIP settings",true,1] call cba_settings_fnc_init; diff --git a/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp b/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp index 1c2cf07..e4949f6 100644 --- a/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp +++ b/Addons/MRHMilsimTools/Functions/cfgFunctions.hpp @@ -185,6 +185,14 @@ class MRH // Defines the "owner" {}; class MilsimTools_Core_lockNonCargo {}; + class MilsimTools_Core_generateAceDefaultLoadOuts + {}; + class MilsimTools_Core_isCurator + {}; + class MilsimTools_Core_serverCreateCurator + {}; + class MilsimTools_Core_cbaEventHandlersPlayer + {}; /* class MilsimTools_Core_ {}; diff --git a/Addons/MRHMilsimTools/cfghpp/cfg3DEN.hpp b/Addons/MRHMilsimTools/cfghpp/cfg3DEN.hpp index ab8afd8..a5ecfe8 100644 --- a/Addons/MRHMilsimTools/cfghpp/cfg3DEN.hpp +++ b/Addons/MRHMilsimTools/cfghpp/cfg3DEN.hpp @@ -4,7 +4,23 @@ class Cfg3DEN { class mrhtools_attributes { displayName = $STR_MRH_MISC_3DENattributesCat; collapsed = 1; - class Attributes {}; + class Attributes + { + class MRH_isZeus + { + + displayName = $STR_MRH_MISC_isZeus3DENATT; + tooltip = $STR_MRH_MISC_isZeus3DENATTToolTip; + property = "mrh_isZeus"; + control = "CheckboxState"; + expression = "[_this] call MRH_fnc_MilsimTools_Core_isCurator;"; + defaultValue = false; + unique = 0; + validate = "none"; + condition = "objectControllable"; + typeName = "BOOL"; + }; + }; }; }; }; diff --git a/Addons/MRHMilsimTools/config.cpp b/Addons/MRHMilsimTools/config.cpp index 10f45ef..016d3f0 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.17.4; - versionStr = "1.17.4"; - versionAr[] = {1,17,4}; + version = 1.17.5; + versionStr = "1.17.5"; + versionAr[] = {1,17,5}; versionDesc = "MRH Milsim Tools"; versionAct = "call compile preProcessFileLineNumbers '\MRHMilSimTools\about.sqf'"; author = "Mr H."; diff --git a/Addons/MRHMilsimTools/stringtable.xml b/Addons/MRHMilsimTools/stringtable.xml index d73c6ed..99e522c 100644 --- a/Addons/MRHMilsimTools/stringtable.xml +++ b/Addons/MRHMilsimTools/stringtable.xml @@ -1067,6 +1067,26 @@ Medic Shoulder Patch Ecusson d'AuxSan + + Assign a Zeus to this unit + Assign a Zeus to this unit + Assigner un Zeus à cette unité + + + A Zeus module with full powers will be created and assigned to this unit + A Zeus module with full powers will be created and assigned to this unit + Un module Zeus avec tous les pouvoirs sera créé et assigné à cette unité + + + Ace Arsenal: disable user loadouts + Ace Arsenal: disable user loadouts + Arsenal Ace : désactiver le chargement des loadouts de l'utilisateur + + + If this setting is enabled, players will not be able to load/save their personnal loadouts. Can be changed at any time during the game. Doesn't affect logged in admins + If this setting is enabled, players will not be able to load/save their personnal loadouts. Can be changed at any time during the game. Doesn't affect logged in admins + Si ce réglage est activé les joueurs ne pourront pas charger/sauver de loadouts personnels. Peut être changé en cours de partie, n'affecte pas les admins loggués. + diff --git a/Addons/MRHMiscItems/Functions/cfgfunctions.hpp b/Addons/MRHMiscItems/Functions/cfgfunctions.hpp index a2d55ec..a897714 100644 --- a/Addons/MRHMiscItems/Functions/cfgfunctions.hpp +++ b/Addons/MRHMiscItems/Functions/cfgfunctions.hpp @@ -38,6 +38,8 @@ class MRH // Defines the "owner" {}; class MilsimTools_MiscItems_LaserDesignatorUnPack {}; + class MilsimTools_MiscItems_binHandlers + {}; }; }; diff --git a/Addons/MRHMiscItems/Functions/fn_MilsimTools_MiscItems_binHandlers.sqf b/Addons/MRHMiscItems/Functions/fn_MilsimTools_MiscItems_binHandlers.sqf new file mode 100644 index 0000000..35d4e56 --- /dev/null +++ b/Addons/MRHMiscItems/Functions/fn_MilsimTools_MiscItems_binHandlers.sqf @@ -0,0 +1,30 @@ +/* +Function name:MRH_fnc_MilsimTools_MiscItems_ +Author: Mr H. +Description: +Return value: +Public: +Parameters: +Example(s): +[cursortarget] call MRH_fnc_MilsimTools_MiscItems_binHandlers; +*/ +#include "MRH_C_Path.hpp" +params ["_wheeliebin"]; +if (is3DEN) exitWith {}; +_wheeliebin addEventHandler ["ContainerOpened", { + params ["_container", "_unit"]; + clearItemCargoGlobal _container; + clearMagazineCargoGlobal _container; + clearWeaponCargoGlobal _container; + clearBackpackCargoGlobal _container; +}]; + +_wheeliebin addEventHandler ["ContainerClosed", { + params ["_container", "_unit"]; + clearItemCargoGlobal _container; + clearMagazineCargoGlobal _container; + clearWeaponCargoGlobal _container; + clearBackpackCargoGlobal _container; +}]; +_toTrace = format ["Clear cargo handlers added to %1",_wheeliebin]; +TRACE(_toTrace) \ No newline at end of file diff --git a/Addons/MRHMiscItems/cfgvehicles.hpp b/Addons/MRHMiscItems/cfgvehicles.hpp index c696c97..1b77527 100644 --- a/Addons/MRHMiscItems/cfgvehicles.hpp +++ b/Addons/MRHMiscItems/cfgvehicles.hpp @@ -84,6 +84,7 @@ class Man; class TransportWeapons{}; class TransportMagazines{}; class TransportItems{}; + class TransportBackpacks{}; }; class MRH_emptySupplyBox : B_supplyCrate_F @@ -98,6 +99,18 @@ class MRH_emptySupplyBox : B_supplyCrate_F ace_cargo_size = 2; ace_cargo_canLoad = 1; }; +class MRH_TrashBin : MRH_emptyBox +{ + displayName = $STR_MRH_MRHMiscItems_wheelieBinName; + model = "\A3\Structures_F_Heli\Civ\Garbage\WheelieBin_01_F.p3d"; + editorPreview = "\A3\EditorPreviews_F\Data\CfgVehicles\Land_WheelieBin_01_F.jpg"; + ace_dragging_carryDirection = 180; + ace_dragging_carryPosition[] = {0,1,0.1}; + ace_dragging_dragDirection = 180; + class EventHandlers { + init = "_this call MRH_fnc_MilsimTools_MiscItems_binHandlers;"; + }; +}; class MRH_AcexFoodSuppliesCrate : CargoNet_01_box_F { diff --git a/Addons/MRHMiscItems/config.cpp b/Addons/MRHMiscItems/config.cpp index bc44b94..3a23ce5 100644 --- a/Addons/MRHMiscItems/config.cpp +++ b/Addons/MRHMiscItems/config.cpp @@ -1,7 +1,7 @@ class CfgPatches { class MRHMiscItems{ - units[] = {"MRH_BioScanner_Base","MRH_BioScanner","MRH_ElevatorButton_Base","MRH_ElevatorButton","MRH_USB_ThumbDrive","MRH_ShootingMat_Khaki","MRH_ShootingMat_Olive","MRH_emptyBox","MRH_emptySupplyBox","MRH_AcexFoodSuppliesCrate","MRH_MedicalTent","MRH_MedicalTent_Special","MRH_FOB_container","MRH_camp_container","MRH_laser_designator","MRH_MT_protectiveCase","MRH_empty_protectiveCase"}; // + units[] = {"MRH_BioScanner_Base","MRH_BioScanner","MRH_ElevatorButton_Base","MRH_ElevatorButton","MRH_USB_ThumbDrive","MRH_ShootingMat_Khaki","MRH_ShootingMat_Olive","MRH_emptyBox","MRH_emptySupplyBox","MRH_AcexFoodSuppliesCrate","MRH_MedicalTent","MRH_MedicalTent_Special","MRH_FOB_container","MRH_camp_container","MRH_laser_designator","MRH_MT_protectiveCase","MRH_empty_protectiveCase","MRH_TrashBin"}; // weapons[] = {"MRH_FoldedMedicalTent","MRH_ShootingMat_Base","MRH_ShootingMat_Khaki","MRH_ShootingMat_Olive","MRH_laser_designator","MRH_KeyCard_BLUFOR","MRH_KeyCard_OPFOR","MRH_KeyCard_IND"}; // requiredVersion = 0.1; // requiredAddons[] = {"MRHMilsimTools"}; // diff --git a/Addons/MRHMiscItems/stringtable.xml b/Addons/MRHMiscItems/stringtable.xml index 0e1ce73..265b9d7 100644 --- a/Addons/MRHMiscItems/stringtable.xml +++ b/Addons/MRHMiscItems/stringtable.xml @@ -377,6 +377,11 @@ Empty protective case Caisse protectrice vide + + Magic wheelie bin + Magic wheelie bin + Poubelle magique + diff --git a/Addons/MRHZeusModules/Functions/cfgfunctions.hpp b/Addons/MRHZeusModules/Functions/cfgfunctions.hpp index 36c7e39..25c764e 100644 --- a/Addons/MRHZeusModules/Functions/cfgfunctions.hpp +++ b/Addons/MRHZeusModules/Functions/cfgfunctions.hpp @@ -89,6 +89,12 @@ class MRH // Defines the "owner" {}; class MilsimTools_ZeusModules_setForSurrenderModuleAction {}; + class MilsimTools_ZeusModules_setZeus + {}; + /* + class MilsimTools_ZeusModules_ + {}; + */ diff --git a/Addons/MRHZeusModules/Functions/fn_MilsimTools_ZeusModules_setZeus.sqf b/Addons/MRHZeusModules/Functions/fn_MilsimTools_ZeusModules_setZeus.sqf new file mode 100644 index 0000000..66938ea --- /dev/null +++ b/Addons/MRHZeusModules/Functions/fn_MilsimTools_ZeusModules_setZeus.sqf @@ -0,0 +1,24 @@ +/* +Function name:MRH_fnc_MilsimTools_ZeusModules_ +Author: Mr H. +Description: +Return value: +Public: +Parameters: +Example(s): +call MRH_fnc_MilsimTools_ZeusModules_startHaloJump; +*/ +#include "MRH_C_Path.hpp" +#include "MRH_MODULE_FUNC_MACROS_INC.sqf" +// Argument 1 is list of affected units (affected by value selected in the 'class Units' argument)) +_unit = attachedTo _logic; +//systemChat format ["%1 %2",_logic,attachedObjects _logic]; + +if (isNull _unit) exitWith {[_logic,localize "STR_MRH_MRHMRHZeusModules_ERRORNOUNSELECTED"]FUNC(deleteAndError)}; +if !(isPlayer _unit) exitWith {[_logic,localize "STR_MRH_MRHMRHZeusModules_ERRMUSTBEPLAYER"]FUNC(deleteAndError)}; +if !(alive _unit) exitWith {[_logic,localize "STR_MRH_MRHMRHZeusModules_ERRORMUSTBEALIVE"]FUNC(deleteAndError)}; +["MRH_EventsCuratorAssigned", [_unit],_unit] call CBA_fnc_targetEvent; +deleteVehicle _logic; +_message = format [(localize "STR_MRH_MRHMRHZeusModules_ZEUSPOWERSGRANTED"),name _unit]; +[objNull, _message] call BIS_fnc_showCuratorFeedbackMessage; +[localize "STR_MRH_MRHMRHZeusModules_setZeusName", _message, 5] call BIS_fnc_curatorHint; \ No newline at end of file diff --git a/Addons/MRHZeusModules/Paa/ModuleZeus.paa b/Addons/MRHZeusModules/Paa/ModuleZeus.paa new file mode 100644 index 0000000000000000000000000000000000000000..ada0fb85061c95e8fddfe2d5674c30f4feb4c587 GIT binary patch literal 22016 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 kE`lH%(SK7H3ii|q`T3E;u;QJAd7-UsgeLZ altitude (above see level): %1 Altitude de la LZ (niveau de la mer): %1 + + Give zeus powers + Give zeus powers + Attribuer un Zeus + + + Error: Selected unit must be a player + Error: Selected unit must be a player + Erreur l'unité selectionnée doit être un joueur + + + Zeus powers granted to: %1 + Zeus powers granted to: %1 + Pouvoir de zeus attribués à: %1 +