mirror of
https://github.com/akaAgar/the-universal-mission-for-dcs-world.git
synced 2025-11-25 19:31:01 +00:00
TUM.wingmenTasking.command* functions now return true if tasking worked, false otherwise
This commit is contained in:
parent
ae352b304b
commit
76ce4c5761
@ -135,10 +135,10 @@ do
|
|||||||
|
|
||||||
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 false end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local wingmenCtrl = TUM.wingmen.getController()
|
local wingmenCtrl = TUM.wingmen.getController()
|
||||||
if not wingmenCtrl then return end
|
if not wingmenCtrl then return false end
|
||||||
|
|
||||||
-- Strike targets are handled differently
|
-- Strike targets are handled differently
|
||||||
if groupCategory == "strike" then
|
if groupCategory == "strike" then
|
||||||
@ -146,10 +146,11 @@ do
|
|||||||
|
|
||||||
if targetPoint3 then
|
if targetPoint3 then
|
||||||
TUM.radio.playForAll("pilotWingmanEngageStrike", { TUM.wingmen.getFirstWingmanNumber(), DCSEx.dcs.getBRAA(targetPoint3, DCSEx.world.getGroupCenter(TUM.wingmen.getGroup()), false) }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanEngageStrike", { TUM.wingmen.getFirstWingmanNumber(), DCSEx.dcs.getBRAA(targetPoint3, DCSEx.world.getGroupCenter(TUM.wingmen.getGroup()), false) }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
|
return true
|
||||||
else
|
else
|
||||||
TUM.radio.playForAll("pilotWingmanEngageNoTarget", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanEngageNoTarget", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
return
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local detectedContacts = TUM.wingmenContacts.getContacts(groupCategory)
|
local detectedContacts = TUM.wingmenContacts.getContacts(groupCategory)
|
||||||
@ -178,7 +179,7 @@ do
|
|||||||
|
|
||||||
if #validTargets == 0 then
|
if #validTargets == 0 then
|
||||||
TUM.radio.playForAll("pilotWingmanEngageNoTarget", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanEngageNoTarget", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
return
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local wingmenPosition = DCSEx.world.getGroupCenter(TUM.wingmen.getGroup())
|
local wingmenPosition = DCSEx.world.getGroupCenter(TUM.wingmen.getGroup())
|
||||||
@ -232,12 +233,13 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
TUM.radio.playForAll("pilotWingmanEngage"..messageSuffix, { TUM.wingmen.getFirstWingmanNumber(), targetInfo, targetBRAA }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanEngage"..messageSuffix, { TUM.wingmen.getFirstWingmanNumber(), targetInfo, targetBRAA }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
|
return 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 false end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local mapMarker = DCSEx.world.getMarkerByText(markerText)
|
local mapMarker = DCSEx.world.getMarkerByText(markerText)
|
||||||
if not mapMarker and not mapMarkerMissingWarningAlreadyDisplayed then
|
if not mapMarker and not mapMarkerMissingWarningAlreadyDisplayed then
|
||||||
@ -246,44 +248,47 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
local wingmenCtrl = TUM.wingmen.getController()
|
local wingmenCtrl = TUM.wingmen.getController()
|
||||||
if not wingmenCtrl then return end
|
if not wingmenCtrl then return false end
|
||||||
|
|
||||||
|
|
||||||
if not mapMarker then
|
if not mapMarker then
|
||||||
-- TUM.radio.playForAll("pilotWingmanGoToMarkerNoMarker", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
-- TUM.radio.playForAll("pilotWingmanGoToMarkerNoMarker", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
return
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
currentTargetIDorPoint = nil
|
currentTargetIDorPoint = nil
|
||||||
allowWeaponUse(wingmenCtrl, false, false)
|
allowWeaponUse(wingmenCtrl, false, false)
|
||||||
wingmenCtrl:setTask(getOrbitTaskTable(DCSEx.math.vec3ToVec2(mapMarker.pos)))
|
wingmenCtrl:setTask(getOrbitTaskTable(DCSEx.math.vec3ToVec2(mapMarker.pos)))
|
||||||
-- TUM.radio.playForAll("pilotWingmanGoToMarker", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
-- TUM.radio.playForAll("pilotWingmanGoToMarker", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
|
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
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 false end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local wingmenCtrl = TUM.wingmen.getController()
|
local wingmenCtrl = TUM.wingmen.getController()
|
||||||
if not wingmenCtrl then return end
|
if not wingmenCtrl then return false end
|
||||||
|
|
||||||
allowWeaponUse(wingmenCtrl, false, false)
|
allowWeaponUse(wingmenCtrl, false, false)
|
||||||
currentTargetIDorPoint = nil
|
currentTargetIDorPoint = nil
|
||||||
wingmenCtrl:setTask(getOrbitTaskTable(DCSEx.world.getGroupCenter(TUM.wingmen.getGroup())))
|
wingmenCtrl:setTask(getOrbitTaskTable(DCSEx.world.getGroupCenter(TUM.wingmen.getGroup())))
|
||||||
TUM.radio.playForAll("pilotWingmanOrbit", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanOrbit", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
|
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
function TUM.wingmenTasking.commandRejoin(formationDistance, delayRadioAnswer, silent, taskingComplete)
|
function TUM.wingmenTasking.commandRejoin(formationDistance, delayRadioAnswer, silent, taskingComplete)
|
||||||
delayRadioAnswer = delayRadioAnswer or false
|
delayRadioAnswer = delayRadioAnswer or false
|
||||||
silent = silent or false
|
silent = silent or false
|
||||||
taskingComplete = taskingComplete or false
|
taskingComplete = taskingComplete 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 false end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local player = world:getPlayer()
|
local player = world:getPlayer()
|
||||||
if not player then return end
|
if not player then return false end
|
||||||
|
|
||||||
local wingmenCtrl = TUM.wingmen.getController()
|
local wingmenCtrl = TUM.wingmen.getController()
|
||||||
if not wingmenCtrl then return end
|
if not wingmenCtrl then return false end
|
||||||
|
|
||||||
currentTargetIDorPoint = nil
|
currentTargetIDorPoint = nil
|
||||||
allowWeaponUse(wingmenCtrl, false, false)
|
allowWeaponUse(wingmenCtrl, false, false)
|
||||||
@ -293,31 +298,33 @@ do
|
|||||||
if taskingComplete then msgID = "pilotWingmanRejoinTaskComplete" end
|
if taskingComplete then msgID = "pilotWingmanRejoinTaskComplete" end
|
||||||
TUM.radio.playForAll(msgID, { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll(msgID, { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
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
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return false end -- No wingmen in multiplayer
|
||||||
|
|
||||||
local reportString = TUM.wingmenContacts.getContactsAsReportString(groupCategory, true)
|
local reportString = TUM.wingmenContacts.getContactsAsReportString(groupCategory, true)
|
||||||
|
|
||||||
if not reportString then
|
if not reportString then
|
||||||
if noReportIfNoContacts then return false end
|
if noReportIfNoContacts then return false end
|
||||||
TUM.radio.playForAll("pilotWingmanReportContactsNoJoy", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanReportContactsNoJoy", { TUM.wingmen.getFirstWingmanNumber() }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
return true
|
|
||||||
else
|
else
|
||||||
TUM.radio.playForAll("pilotWingmanReportContacts", { TUM.wingmen.getFirstWingmanNumber(), reportString }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanReportContacts", { TUM.wingmen.getFirstWingmanNumber(), reportString }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
return true
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
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
|
if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return false 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 false end
|
||||||
|
|
||||||
local groupUnits = wingmenGroup:getUnits()
|
local groupUnits = wingmenGroup:getUnits()
|
||||||
|
|
||||||
@ -348,6 +355,7 @@ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
TUM.radio.playForAll("pilotWingmanReportStatus", { TUM.wingmen.getFirstWingmanNumber(), statusMsg }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
TUM.radio.playForAll("pilotWingmanReportStatus", { TUM.wingmen.getFirstWingmanNumber(), statusMsg }, TUM.wingmen.getFirstWingmanCallsign(), delayRadioAnswer)
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user