Now generate proper callsigns for wingmen

This commit is contained in:
Ambroise Garel 2025-07-24 10:27:00 +02:00
parent ea3378e05d
commit 7d97549cc5

View File

@ -150,23 +150,33 @@ do
local player = world:getPlayer() local player = world:getPlayer()
if not player then return end if not player then return end
-- Retrive player unit type
local playerTypeName = player:getTypeName() local playerTypeName = player:getTypeName()
if not Library.aircraft[playerTypeName] then if not Library.aircraft[playerTypeName] then
TUM.log("Cannot spawn AI wingmen, aircraft \""..playerTypeName.."\" not found in the database.", TUM.logLevel.WARNING) TUM.log("Cannot spawn AI wingmen, aircraft \""..playerTypeName.."\" not found in the database.", TUM.logLevel.WARNING)
return return
end end
local playerCategory = Group.Category.AIRPLANE local playerCategory = Group.Category.AIRPLANE
if player:hasAttribute("Helicopters") then playerCategory = Group.Category.HELICOPTER end -- Player is a helicopter if player:hasAttribute("Helicopters") then playerCategory = Group.Category.HELICOPTER end -- Player is a helicopter
-- Generate wingman callsign
local wingmanCallsign = DCSEx.envMission.getPlayerGroups()[1].units[1].callsign
if type(wingmanCallsign) == "table" then
wingmanCallsign[3] = nil
wingmanCallsign["name"] = wingmanCallsign["name"]:sub(1, #wingmanCallsign["name"] - 1)
if wingmanCallsign[4] then wingmanCallsign[4] = wingmanCallsign["name"] end
else
wingmanCallsign = DCSEx.unitCallsignMaker.getCallsign(playerTypeName)
end
local groupInfo = DCSEx.unitGroupMaker.create( local groupInfo = DCSEx.unitGroupMaker.create(
TUM.settings.getPlayerCoalition(), TUM.settings.getPlayerCoalition(),
playerCategory, playerCategory,
DCSEx.math.randomPointInCircle(DCSEx.math.vec3ToVec2(player:getPoint()), 500, 250), DCSEx.math.randomPointInCircle(DCSEx.math.vec3ToVec2(player:getPoint()), 500, 250),
{ playerTypeName, playerTypeName }, { playerTypeName, playerTypeName },
{ {
callsign = DCSEx.unitCallsignMaker.getNextGroupCallSign(player:getCallsign()), callsign = wingmanCallsign,
callsignOffset = 1,
silenced = true, silenced = true,
taskFollow = DCSEx.dcs.getObjectIDAsNumber(player:getGroup()), taskFollow = DCSEx.dcs.getObjectIDAsNumber(player:getGroup()),
unlimitedFuel = true unlimitedFuel = true