mirror of
https://github.com/akaAgar/the-universal-mission-for-dcs-world.git
synced 2025-11-25 19:31:01 +00:00
71 lines
2.8 KiB
Lua
71 lines
2.8 KiB
Lua
-- ====================================================================================
|
|
-- TUM.MIZCLEANER - REMOVED UNWANTED UNIT GROUPS FROM THE MIZ FILE
|
|
-- ====================================================================================
|
|
-- (local) removeAIWingmen()
|
|
-- TUM.mizCleaner.onStartUp()
|
|
-- TUM.mizCleaner.onEvent(event)
|
|
-- ====================================================================================
|
|
|
|
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
|
|
|
|
-------------------------------------
|
|
-- Called when an event is raised
|
|
-- @param event The DCS World event
|
|
-------------------------------------
|
|
function TUM.mizCleaner.onEvent(event)
|
|
-- Remove AI aircraft when they land, so they "free room" (e.g. don't occupy an "enemy air force unit" slot) for new aircraft
|
|
if event.id ~= world.event.S_EVENT_LAND then return end
|
|
if not event.initiator then return end
|
|
if Object.getCategory(event.initiator) ~= Object.Category.UNIT then return end -- Not a unit
|
|
if event.initiator:getPlayerName() then return end -- Don't remove player aircraft, that would cause horrendous bugs
|
|
|
|
event.initiator:destroy()
|
|
end
|
|
end
|