From 355e784628e65f054a259c639e30856f46c73d64 Mon Sep 17 00:00:00 2001 From: Jacob Schmidt Date: Sun, 26 Apr 2026 16:49:04 -0500 Subject: [PATCH] feat: enhance locker initialization with dynamic class assignment --- .../locker/functions/fnc_initRepository.sqf | 6 +++++- arma/server/addons/task/README.md | 3 +-- arma/server/addons/task/XEH_postInit.sqf | 2 -- .../attack-mission-generator-2026-04-26.7z | Bin 0 -> 5008 bytes 4 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 arma/server/addons/task/backup/attack-mission-generator-2026-04-26.7z diff --git a/arma/client/addons/locker/functions/fnc_initRepository.sqf b/arma/client/addons/locker/functions/fnc_initRepository.sqf index e67157e..02a33af 100644 --- a/arma/client/addons/locker/functions/fnc_initRepository.sqf +++ b/arma/client/addons/locker/functions/fnc_initRepository.sqf @@ -260,8 +260,12 @@ GVAR(LockerRepositoryBaseClass) = compileFinal createHashMapFromArray [ private _pos = getPosASL _globalLocker; private _vDir = vectorDir _globalLocker; private _vUp = vectorUp _globalLocker; + private _lockerClass = typeOf _globalLocker; + if (_lockerClass isEqualTo "") then { + _lockerClass = "Box_NATO_Equip_F"; + }; - private _localLocker = createVehicleLocal ["Box_NATO_Equip_F", [0, 0, 0]]; + private _localLocker = createVehicleLocal [_lockerClass, [0, 0, 0]]; _localLocker setPosASL _pos; _localLocker setVectorDirAndUp [_vDir, _vUp]; _localLocker allowDamage false; diff --git a/arma/server/addons/task/README.md b/arma/server/addons/task/README.md index 785002c..d054b60 100644 --- a/arma/server/addons/task/README.md +++ b/arma/server/addons/task/README.md @@ -196,10 +196,9 @@ If you want the accepting player's org to own the task rewards, use `fnc_handler - initializes `TaskStore` - `XEH_postInit.sqf` - registers the ACE defuse event hook - - starts the attack-only mission manager on the server ## Notes -- the dynamic mission manager in `fnc_missionManager.sqf` is now limited to attack missions only +- the dynamic mission manager in `fnc_missionManager.sqf` is currently not started by default - it starts server-owned tasks through `fnc_handler.sqf` and binds them to the `default` org - task lifecycle for the mission manager is tracked through `TaskStore` status entries - task backend state is intentionally transient and resets with the active server/mission lifecycle diff --git a/arma/server/addons/task/XEH_postInit.sqf b/arma/server/addons/task/XEH_postInit.sqf index 5dcafcd..aadd2db 100644 --- a/arma/server/addons/task/XEH_postInit.sqf +++ b/arma/server/addons/task/XEH_postInit.sqf @@ -1,7 +1,5 @@ #include "script_component.hpp" -if (isServer) then { [] call FUNC(missionManager); }; - ["ace_explosives_defuse", { private _taskID = ""; { diff --git a/arma/server/addons/task/backup/attack-mission-generator-2026-04-26.7z b/arma/server/addons/task/backup/attack-mission-generator-2026-04-26.7z new file mode 100644 index 0000000000000000000000000000000000000000..5a54903d537be412dd202729d4aa45fa9fd42f6f GIT binary patch literal 5008 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 a00AQd0RaVF01yBG41(?o0mLiRIRF60;I3r= literal 0 HcmV?d00001