From 17596987d03816abc5d670e4df1f1255cd6f152d Mon Sep 17 00:00:00 2001 From: Ambroise Garel <47314805+akaAgar@users.noreply.github.com> Date: Wed, 23 Jul 2025 21:08:07 +0200 Subject: [PATCH] Wingmen now generated on takeoff and destroyed on landing --- .../The Universal Mission/SupportWingmen.lua | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Script/The Universal Mission/SupportWingmen.lua b/Script/The Universal Mission/SupportWingmen.lua index b8f3770..eac35d1 100644 --- a/Script/The Universal Mission/SupportWingmen.lua +++ b/Script/The Universal Mission/SupportWingmen.lua @@ -8,22 +8,22 @@ TUM.supportWingmen = {} do local wingmenGroupID = nil - function TUM.supportWingmen.create() - if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer + local function createWingmen() TUM.supportWingmen.removeAll() -- Destroy all pre-existing wingmen TUM.log("Creating wingmen...") local player = world:getPlayer() if not player then return end - local count = 1 -- TODO + local playerTypeName = player:getTypeName() local groupInfo = DCSEx.unitGroupMaker.create( TUM.settings.getPlayerCoalition(), Group.Category.AIRPLANE, -- TODO: or helicopter! DCSEx.math.randomPointInCircle(DCSEx.math.vec3ToVec2(player:getPoint()), 500, 250), - { player:getTypeName() }, + { playerTypeName, playerTypeName }, { + callsign = DCSEx.unitCallsignMaker.getNextGroupCallSign(player:getCallsign()), silenced = true, taskFollow = DCSEx.dcs.getObjectIDAsNumber(player:getGroup()), unlimitedFuel = true @@ -46,4 +46,22 @@ do wingmenGroupID = nil end + + ------------------------------------- + -- Called when an event is raised + -- @param event The DCS World event + ------------------------------------- + function TUM.supportWingmen.onEvent(event) + if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer + if TUM.mission.getStatus() == TUM.mission.status.NONE then return end + if not event.initiator then return end + if Object.getCategory(event.initiator) ~= Object.Category.UNIT then return end + if not event.initiator:getPlayerName() then return end + + if event.id == world.event.S_EVENT_TAKEOFF then -- Create wingmen on takeoff + createWingmen() + elseif event.id == world.event.S_EVENT_LAND then + TUM.supportWingmen.removeAll() -- Remove wingmen on landing + end + end end