From cfcb772c17179b37c3f2a66483134fb1812ed068 Mon Sep 17 00:00:00 2001 From: Ambroise Garel <47314805+akaAgar@users.noreply.github.com> Date: Fri, 25 Jul 2025 12:20:47 +0200 Subject: [PATCH] Added TUM.mizCleaner table --- Script/Script.lua | 1 + Script/The Universal Mission/MizCleaner.lua | 55 +++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 Script/The Universal Mission/MizCleaner.lua diff --git a/Script/Script.lua b/Script/Script.lua index 2e3aafb..808eae9 100644 --- a/Script/Script.lua +++ b/Script/Script.lua @@ -87,6 +87,7 @@ do if not TUM.playerCareer.onStartUp() then return nil end if not TUM.intermission.onStartUp() then return nil end if not TUM.airForce.onStartUp() then return nil end + if not TUM.mizCleaner.onStartUp() then return nil end -- Must be called after TUM.settings.onStartUp() TUM.hasStarted = true diff --git a/Script/The Universal Mission/MizCleaner.lua b/Script/The Universal Mission/MizCleaner.lua new file mode 100644 index 0000000..dba2f42 --- /dev/null +++ b/Script/The Universal Mission/MizCleaner.lua @@ -0,0 +1,55 @@ +-- ==================================================================================== +-- TUM.MIZCLEANER - REMOVED UNWANTED UNIT GROUPS FROM THE MIZ FILE +-- ==================================================================================== +-- (local) removeAIWingmen() +-- TUM.mizCleaner.onStartUp() +-- ==================================================================================== + +TUM.mizCleaner = {} + +do + ------------------------------------- + -- Removes all AI wingmen units + ------------------------------------- + local function removeAIWingmen() + local groups = DCSEx.envMission.getGroups(TUM.settings.getPlayerCoalition()) + + local aiWingMenToRemove = {} + for _,g in ipairs(groups) do + if g.units then + local isPlayerGroup = false + + for _,u in ipairs(g.units) do + if u.skill == "Player" or u.skill == "Client" then + isPlayerGroup = true + end + end + + if isPlayerGroup then + for _,u in ipairs(g.units) do + if u.skill ~= "Player" and u.skill ~= "Client" then + table.insert(aiWingMenToRemove, u.unitId) + end + end + end + end + end + + if #aiWingMenToRemove > 0 then + for _,id in ipairs(aiWingMenToRemove) do + local u = DCSEx.world.getUnitByID(id) + if u then u:destroy() end + end + TUM.log("Removed "..tostring(#aiWingMenToRemove).." AI wingmen from the mission.\nPlease do not add AI wingmen to the mission, The Universal Mission uses its own wingman system.", TUM.logLevel.WARNING) + end + end + + ------------------------------------- + -- Called on mission start up + -- @return True if started up properly, false if an error happened + ------------------------------------- + function TUM.mizCleaner.onStartUp() + removeAIWingmen() + return true + end +end