mirror of
https://github.com/akaAgar/the-universal-mission-for-dcs-world.git
synced 2025-11-25 19:31:01 +00:00
Added getRejoinTaskTable, wingmen now rejoin after attack
This commit is contained in:
@@ -23,9 +23,22 @@ do
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function getRejoinTaskTable(formationDistance)
|
||||||
|
formationDistance = formationDistance or 800
|
||||||
|
|
||||||
|
return {
|
||||||
|
id = "Follow",
|
||||||
|
params = {
|
||||||
|
groupId = DCSEx.dcs.getObjectIDAsNumber(world.getPlayer():getGroup()),
|
||||||
|
lastWptIndexFlag = false,
|
||||||
|
lastWptIndex = -1,
|
||||||
|
pos = { x = -formationDistance, y = 0, z = -formationDistance }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
function TUM.wingmenTasking.commandEngage(groupCategory, targetAttributes, delayRadioAnswer)
|
function TUM.wingmenTasking.commandEngage(groupCategory, targetAttributes, delayRadioAnswer)
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
|
|
||||||
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local wingmenCtrl = TUM.wingmen.getController()
|
local wingmenCtrl = TUM.wingmen.getController()
|
||||||
@@ -71,6 +84,7 @@ do
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
wingmenCtrl:setTask(taskTable)
|
wingmenCtrl:setTask(taskTable)
|
||||||
|
wingmenCtrl:setTask(getRejoinTaskTable()) -- Makes sure wingmen rejoin with the player after attack
|
||||||
|
|
||||||
local targetInfo = nil
|
local targetInfo = nil
|
||||||
local messageSuffix = nil
|
local messageSuffix = nil
|
||||||
@@ -91,14 +105,12 @@ do
|
|||||||
|
|
||||||
targetPointMapMarker = DCSEx.world.getNextMarkerID()
|
targetPointMapMarker = DCSEx.world.getNextMarkerID()
|
||||||
trigger.action.markToAll(targetPointMapMarker, "Last wingmen attack point", target:getPoint(), true)
|
trigger.action.markToAll(targetPointMapMarker, "Last wingmen attack point", target:getPoint(), true)
|
||||||
|
|
||||||
TUM.radio.playForAll("pilotWingmanEngage"..messageSuffix, { TUM.wingmen.getFirstWingmanNumber(), targetInfo }, TUM.wingmen.getFirstWingmanCallsign(), true)
|
TUM.radio.playForAll("pilotWingmanEngage"..messageSuffix, { TUM.wingmen.getFirstWingmanNumber(), targetInfo }, TUM.wingmen.getFirstWingmanCallsign(), true)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TUM.wingmenTasking.commandGoToMapMarker(markerText, delayRadioAnswer)
|
function TUM.wingmenTasking.commandGoToMapMarker(markerText, delayRadioAnswer)
|
||||||
markerText = markerText or TUM.wingmenTasking.DEFAULT_MARKER_TEXT
|
markerText = markerText or TUM.wingmenTasking.DEFAULT_MARKER_TEXT
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
|
|
||||||
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local mapMarker = DCSEx.world.getMarkerByText(markerText)
|
local mapMarker = DCSEx.world.getMarkerByText(markerText)
|
||||||
@@ -121,6 +133,7 @@ do
|
|||||||
|
|
||||||
function TUM.wingmenTasking.commandOrbit(delayRadioAnswer)
|
function TUM.wingmenTasking.commandOrbit(delayRadioAnswer)
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
@@ -132,32 +145,23 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
function TUM.wingmenTasking.commandRejoin(formationDistance, delayRadioAnswer)
|
function TUM.wingmenTasking.commandRejoin(formationDistance, delayRadioAnswer)
|
||||||
formationDistance = formationDistance or 800
|
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
|
|
||||||
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local player = world:getPlayer()
|
local player = world:getPlayer()
|
||||||
if not player then return end
|
if not player then return end
|
||||||
|
|
||||||
local wingmenCtrl = TUM.wingmen.getController()
|
local wingmenCtrl = TUM.wingmen.getController()
|
||||||
if not wingmenCtrl then return end
|
if not wingmenCtrl then return end
|
||||||
|
|
||||||
local taskTable = {
|
wingmenCtrl:setTask(getRejoinTaskTable(formationDistance))
|
||||||
id = "Follow",
|
|
||||||
params = {
|
|
||||||
groupId = DCSEx.dcs.getObjectIDAsNumber(player:getGroup()),
|
|
||||||
lastWptIndexFlag = false,
|
|
||||||
lastWptIndex = -1,
|
|
||||||
pos = { x = -formationDistance, y = 0, z = -formationDistance }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
wingmenCtrl:setTask(taskTable)
|
|
||||||
TUM.radio.playForAll("pilotWingmanRejoin", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanRejoin", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
end
|
end
|
||||||
|
|
||||||
function TUM.wingmenTasking.commandReportContacts(groupCategory, noReportIfNoContacts, delayRadioAnswer)
|
function TUM.wingmenTasking.commandReportContacts(groupCategory, noReportIfNoContacts, delayRadioAnswer)
|
||||||
noReportIfNoContacts = noReportIfNoContacts or false
|
noReportIfNoContacts = noReportIfNoContacts or false
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local reportString = TUM.wingmen.getContactsAsReportString(groupCategory, true)
|
local reportString = TUM.wingmen.getContactsAsReportString(groupCategory, true)
|
||||||
|
|
||||||
@@ -173,6 +177,7 @@ do
|
|||||||
|
|
||||||
function TUM.wingmenTasking.commandReportStatus(delayRadioAnswer)
|
function TUM.wingmenTasking.commandReportStatus(delayRadioAnswer)
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local wingmenGroup = TUM.wingmen.getGroup()
|
local wingmenGroup = TUM.wingmen.getGroup()
|
||||||
if not wingmenGroup then return end
|
if not wingmenGroup then return end
|
||||||
|
|||||||
Reference in New Issue
Block a user