mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-14 13:18:48 +00:00
Ops
This commit is contained in:
@@ -29,6 +29,7 @@
|
|||||||
-- @field #number nflightsAWACS Number of AWACS flights constantly in the air.
|
-- @field #number nflightsAWACS Number of AWACS flights constantly in the air.
|
||||||
-- @field #number nflightsTANKERboom Number of TANKER flights with BOOM constantly in the air.
|
-- @field #number nflightsTANKERboom Number of TANKER flights with BOOM constantly in the air.
|
||||||
-- @field #number nflightsTANKERprobe Number of TANKER flights with PROBE constantly in the air.
|
-- @field #number nflightsTANKERprobe Number of TANKER flights with PROBE constantly in the air.
|
||||||
|
-- @field #number nflightsRescueHelo Number of Rescue helo flights constantly in the air.
|
||||||
-- @field #table pointsCAP Table of CAP points.
|
-- @field #table pointsCAP Table of CAP points.
|
||||||
-- @field #table pointsTANKER Table of Tanker points.
|
-- @field #table pointsTANKER Table of Tanker points.
|
||||||
-- @field #table pointsAWACS Table of AWACS points.
|
-- @field #table pointsAWACS Table of AWACS points.
|
||||||
@@ -141,9 +142,8 @@ function AIRWING:New(warehousename, airwingname)
|
|||||||
self.nflightsAWACS=0
|
self.nflightsAWACS=0
|
||||||
self.nflightsTANKERboom=0
|
self.nflightsTANKERboom=0
|
||||||
self.nflightsTANKERprobe=0
|
self.nflightsTANKERprobe=0
|
||||||
|
|
||||||
self.nflightsRecoveryTanker=0
|
self.nflightsRecoveryTanker=0
|
||||||
self.nflightsRescuehelo=0
|
self.nflightsRescueHelo=0
|
||||||
|
|
||||||
------------------------
|
------------------------
|
||||||
--- Pseudo Functions ---
|
--- Pseudo Functions ---
|
||||||
@@ -529,6 +529,15 @@ function AIRWING:SetNumberAWACS(n)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Set number of Rescue helo flights constantly in the air.
|
||||||
|
-- @param #AIRWING self
|
||||||
|
-- @param #number n Number of flights. Default 1.
|
||||||
|
-- @return #AIRWING self
|
||||||
|
function AIRWING:SetNumberRescuehelo(n)
|
||||||
|
self.nflightsRescueHelo=n or 1
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Create a new generic patrol point.
|
--- Create a new generic patrol point.
|
||||||
-- @param #AIRWING self
|
-- @param #AIRWING self
|
||||||
@@ -655,13 +664,17 @@ function AIRWING:onafterStatus(From, Event, To)
|
|||||||
-- Check AWACS missions.
|
-- Check AWACS missions.
|
||||||
self:CheckAWACS()
|
self:CheckAWACS()
|
||||||
|
|
||||||
|
-- Check Rescue Helo missions.
|
||||||
|
self:CheckRescuhelo()
|
||||||
|
|
||||||
-- Count missions not over yet.
|
-- Count missions not over yet.
|
||||||
local nmissions=self:CountMissionsInQueue()
|
local nmissions=self:CountMissionsInQueue()
|
||||||
|
|
||||||
-- Count ALL payloads in stock
|
-- Count ALL payloads in stock. If any payload is unlimited, this gives 999.
|
||||||
local Npayloads=self:CountPayloadsInStock(AUFTRAG.Type)
|
local Npayloads=self:CountPayloadsInStock(AUFTRAG.Type)
|
||||||
|
|
||||||
-- TODO: count payloads, assets total
|
-- General info:
|
||||||
|
-- TODO: assets total
|
||||||
local text=string.format("Status %s: missions=%d, payloads=%d (%d), squads=%d", fsmstate, nmissions, #self.payloads, Npayloads, #self.squadrons)
|
local text=string.format("Status %s: missions=%d, payloads=%d (%d), squads=%d", fsmstate, nmissions, #self.payloads, Npayloads, #self.squadrons)
|
||||||
self:I(self.lid..text)
|
self:I(self.lid..text)
|
||||||
|
|
||||||
@@ -682,53 +695,55 @@ function AIRWING:onafterStatus(From, Event, To)
|
|||||||
for i,_squadron in pairs(self.squadrons) do
|
for i,_squadron in pairs(self.squadrons) do
|
||||||
local squadron=_squadron --Ops.Squadron#SQUADRON
|
local squadron=_squadron --Ops.Squadron#SQUADRON
|
||||||
|
|
||||||
local callsign=squadron.callsignName and squadron.callsignName or "N/A"
|
local callsign=squadron.callsignName and UTILS.GetCallsignName(squadron.callsignName) or "N/A"
|
||||||
local modex=squadron.modex and squadron.modex or "N/A"
|
local modex=squadron.modex and squadron.modex or "N/A"
|
||||||
local skill=squadron.skill and tostring(squadron.skill) or "N/A"
|
local skill=squadron.skill and tostring(squadron.skill) or "N/A"
|
||||||
|
|
||||||
-- Squadron text
|
-- Squadron text
|
||||||
text=text..string.format("\n* %s %s: Airframe=%s, Callsign=%s, Modex=%d, Skill=%s", squadron.name, squadron:GetState(), squadron.aircrafttype, callsign, modex, skill)
|
text=text..string.format("\n* %s %s: %s*%d, Callsign=%s, Modex=%d, Skill=%s", squadron.name, squadron:GetState(), squadron.aircrafttype, #squadron.assets, callsign, modex, skill)
|
||||||
|
|
||||||
-- Loop over all assets.
|
-- Loop over all assets.
|
||||||
for j,_asset in pairs(squadron.assets) do
|
if self.verbose>1 then
|
||||||
local asset=_asset --#AIRWING.SquadronAsset
|
for j,_asset in pairs(squadron.assets) do
|
||||||
local assignment=asset.assignment or "none"
|
local asset=_asset --#AIRWING.SquadronAsset
|
||||||
local name=asset.templatename
|
local assignment=asset.assignment or "none"
|
||||||
local spawned=tostring(asset.spawned)
|
local name=asset.templatename
|
||||||
local groupname=asset.spawngroupname
|
local spawned=tostring(asset.spawned)
|
||||||
local typename=asset.unittype
|
local groupname=asset.spawngroupname
|
||||||
|
local typename=asset.unittype
|
||||||
local mission=self:GetAssetCurrentMission(asset)
|
|
||||||
local missiontext=""
|
|
||||||
if mission then
|
|
||||||
local distance=asset.flightgroup and UTILS.MetersToNM(mission:GetTargetDistance(asset.flightgroup.group:GetCoordinate())) or 0
|
|
||||||
missiontext=string.format(" [%s (%s): status=%s, distance=%.1f NM]", mission.type, mission.name, mission.status, distance)
|
|
||||||
end
|
|
||||||
|
|
||||||
text=text..string.format("\n -[%d] %s*%d \"%s\": spawned=%s, mission=%s%s", j, typename, asset.nunits, asset.spawngroupname, spawned, tostring(self:IsAssetOnMission(asset)), missiontext)
|
|
||||||
|
|
||||||
--TODO
|
|
||||||
--local payload=asset.payload and table.concat(asset.payload.missiontypes, ", ") or "None"
|
|
||||||
--text=text.." payload="..payload
|
|
||||||
|
|
||||||
text=text..", flight: "
|
|
||||||
if asset.flightgroup and asset.flightgroup:IsAlive() then
|
|
||||||
local status=asset.flightgroup:GetState()
|
|
||||||
local fuelmin=asset.flightgroup:GetFuelMin()
|
|
||||||
local fuellow=asset.flightgroup:IsFuelLow()
|
|
||||||
local fuelcri=asset.flightgroup:IsFuelCritical()
|
|
||||||
|
|
||||||
text=text..string.format("%s fuel=%d", status, fuelmin)
|
local mission=self:GetAssetCurrentMission(asset)
|
||||||
if fuelcri then
|
local missiontext=""
|
||||||
text=text.." (critical!)"
|
if mission then
|
||||||
elseif fuellow then
|
local distance=asset.flightgroup and UTILS.MetersToNM(mission:GetTargetDistance(asset.flightgroup.group:GetCoordinate())) or 0
|
||||||
text=text.." (low)"
|
missiontext=string.format(" [%s (%s): status=%s, distance=%.1f NM]", mission.type, mission.name, mission.status, distance)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
text=text..string.format("\n -[%d] %s*%d \"%s\": spawned=%s, mission=%s%s", j, typename, asset.nunits, asset.spawngroupname, spawned, tostring(self:IsAssetOnMission(asset)), missiontext)
|
||||||
|
|
||||||
local lifept, lifept0=asset.flightgroup:GetLifePoints()
|
--TODO
|
||||||
text=text..string.format(" life=%d/%d", lifept, lifept0)
|
--local payload=asset.payload and table.concat(asset.payload.missiontypes, ", ") or "None"
|
||||||
else
|
--text=text.." payload="..payload
|
||||||
text=text.."N/A"
|
|
||||||
|
text=text..", flight: "
|
||||||
|
if asset.flightgroup and asset.flightgroup:IsAlive() then
|
||||||
|
local status=asset.flightgroup:GetState()
|
||||||
|
local fuelmin=asset.flightgroup:GetFuelMin()
|
||||||
|
local fuellow=asset.flightgroup:IsFuelLow()
|
||||||
|
local fuelcri=asset.flightgroup:IsFuelCritical()
|
||||||
|
|
||||||
|
text=text..string.format("%s fuel=%d", status, fuelmin)
|
||||||
|
if fuelcri then
|
||||||
|
text=text.." (critical!)"
|
||||||
|
elseif fuellow then
|
||||||
|
text=text.." (low)"
|
||||||
|
end
|
||||||
|
|
||||||
|
local lifept, lifept0=asset.flightgroup:GetLifePoints()
|
||||||
|
text=text..string.format(" life=%d/%d", lifept, lifept0)
|
||||||
|
else
|
||||||
|
text=text.."N/A"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -883,14 +898,14 @@ function AIRWING:CheckAWACS()
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Check how many AWACS missions are assigned and add number of missing missions.
|
--- Check how many Rescue helos are currently in the air.
|
||||||
-- @param #AIRWING self
|
-- @param #AIRWING self
|
||||||
-- @return #AIRWING self
|
-- @return #AIRWING self
|
||||||
function AIRWING:CheckRescuhelo()
|
function AIRWING:CheckRescuhelo()
|
||||||
|
|
||||||
local N=self:CountMissionsInQueue({AUFTRAG.Type.RESCUEHELO})
|
local N=self:CountMissionsInQueue({AUFTRAG.Type.RESCUEHELO})
|
||||||
|
|
||||||
for i=1,self.nflightsRescuehelo-N do
|
for i=1,self.nflightsRescueHelo-N do
|
||||||
|
|
||||||
local mission=AUFTRAG:NewRESCUEHELO(self.airbase)
|
local mission=AUFTRAG:NewRESCUEHELO(self.airbase)
|
||||||
|
|
||||||
@@ -899,7 +914,6 @@ function AIRWING:CheckRescuhelo()
|
|||||||
end
|
end
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Check how many AWACS missions are assigned and add number of missing missions.
|
--- Check how many AWACS missions are assigned and add number of missing missions.
|
||||||
@@ -933,7 +947,6 @@ function AIRWING:GetTankerForFlight(flightgroup)
|
|||||||
|
|
||||||
-- Return tanker asset.
|
-- Return tanker asset.
|
||||||
return tankeropt[1].tanker
|
return tankeropt[1].tanker
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -303,12 +303,14 @@ AUFTRAG.TargetType={
|
|||||||
|
|
||||||
--- AUFTRAG class version.
|
--- AUFTRAG class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
AUFTRAG.version="0.0.9"
|
AUFTRAG.version="0.1.0"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- TODO: Option to assign mission to a specific squadron.
|
||||||
|
-- TODO: Option to assign a specific payload for the mission (requires an AIRWING).
|
||||||
-- TODO: Add mission start conditions.
|
-- TODO: Add mission start conditions.
|
||||||
-- TODO: Add recovery tanker mission for boat ops.
|
-- TODO: Add recovery tanker mission for boat ops.
|
||||||
-- TODO: Add rescue helo mission for boat ops.
|
-- TODO: Add rescue helo mission for boat ops.
|
||||||
@@ -412,15 +414,10 @@ function AUFTRAG:NewRESCUEHELO(Carrier)
|
|||||||
|
|
||||||
mission.engageTarget=mission:_TargetFromObject(Carrier)
|
mission.engageTarget=mission:_TargetFromObject(Carrier)
|
||||||
|
|
||||||
--[[
|
|
||||||
mission.engageTarget=mission:_TargetFromObject(Target)
|
|
||||||
mission.engageWeaponType=ENUMS.WeaponFlag.Auto
|
|
||||||
|
|
||||||
mission.missionTask=ENUMS.MissionTask.NOTHING
|
mission.missionTask=ENUMS.MissionTask.NOTHING
|
||||||
mission.missionFraction=0.4
|
mission.missionFraction=0.5
|
||||||
mission.optionROE=ENUMS.ROE.OpenFire
|
mission.optionROE=ENUMS.ROE.WeaponHold
|
||||||
mission.optionROT=ENUMS.ROT.EvadeFire
|
mission.optionROT=ENUMS.ROT.NoReaction
|
||||||
]]
|
|
||||||
|
|
||||||
mission.DCStask=mission:GetDCSMissionTask()
|
mission.DCStask=mission:GetDCSMissionTask()
|
||||||
|
|
||||||
@@ -1038,10 +1035,10 @@ end
|
|||||||
|
|
||||||
--- Set mission name.
|
--- Set mission name.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
-- @param #string Name Name of the mission.
|
-- @param #string Name Name of the mission. Default is "Auftrag Nr. X", where X is a running number, which is automatically increased.
|
||||||
-- @return #AUFTRAG self
|
-- @return #AUFTRAG self
|
||||||
function AUFTRAG:SetName(Name)
|
function AUFTRAG:SetName(Name)
|
||||||
self.name=Name or string.format("Auftragsnummer %d", self.auftragsnummer)
|
self.name=Name or string.format("Auftrag Nr. %d", self.auftragsnummer)
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -2003,7 +2000,7 @@ end
|
|||||||
|
|
||||||
--- Get coordinate of target.
|
--- Get coordinate of target.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
-- @return Core.Point#COORDINATE The target coordinate or nil.
|
-- @return Core.Point#COORDINATE The target coordinate or *nil*.
|
||||||
function AUFTRAG:GetTargetCoordinate()
|
function AUFTRAG:GetTargetCoordinate()
|
||||||
|
|
||||||
if self.engageTarget then
|
if self.engageTarget then
|
||||||
@@ -2025,7 +2022,7 @@ end
|
|||||||
|
|
||||||
--- Get coordinate of target.
|
--- Get coordinate of target.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
-- @return #string
|
-- @return #string Name of the target or "N/A".
|
||||||
function AUFTRAG:GetTargetName()
|
function AUFTRAG:GetTargetName()
|
||||||
|
|
||||||
if self.engageTarget then
|
if self.engageTarget then
|
||||||
@@ -2044,14 +2041,14 @@ function AUFTRAG:GetTargetName()
|
|||||||
return self.transportPickup:ToStringLLDMS()
|
return self.transportPickup:ToStringLLDMS()
|
||||||
end
|
end
|
||||||
|
|
||||||
return nil
|
return "N/A"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Get distance to target.
|
--- Get distance to target.
|
||||||
-- @param #AUFTRAG self
|
-- @param #AUFTRAG self
|
||||||
-- @param Core.Point#COORDINATE FromCoord The coordinate from which the distance is measured.
|
-- @param Core.Point#COORDINATE FromCoord The coordinate from which the distance is measured.
|
||||||
-- @return #number Distance in meters.
|
-- @return #number Distance in meters or 0.
|
||||||
function AUFTRAG:GetTargetDistance(FromCoord)
|
function AUFTRAG:GetTargetDistance(FromCoord)
|
||||||
local TargetCoord=self:GetTargetCoordinate()
|
local TargetCoord=self:GetTargetCoordinate()
|
||||||
if TargetCoord and FromCoord then
|
if TargetCoord and FromCoord then
|
||||||
@@ -2321,10 +2318,11 @@ function AUFTRAG:GetDCSMissionTask()
|
|||||||
|
|
||||||
local param={}
|
local param={}
|
||||||
param.unitname=self:GetTargetName()
|
param.unitname=self:GetTargetName()
|
||||||
param.offsetX=20
|
param.offsetX=200
|
||||||
param.offsetY=20
|
param.offsetZ=240
|
||||||
param.offsetZ=20
|
--param.offsetY=20
|
||||||
param.altitude=70
|
param.altitude=70
|
||||||
|
param.dtFollow=1.0
|
||||||
|
|
||||||
DCStask.params=param
|
DCStask.params=param
|
||||||
|
|
||||||
|
|||||||
@@ -366,7 +366,7 @@ FLIGHTGROUP.ROT={
|
|||||||
|
|
||||||
--- FLIGHTGROUP class version.
|
--- FLIGHTGROUP class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
FLIGHTGROUP.version="0.3.8"
|
FLIGHTGROUP.version="0.3.9"
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- TODO list
|
-- TODO list
|
||||||
@@ -1538,31 +1538,36 @@ function FLIGHTGROUP:onafterFlightStatus(From, Event, To)
|
|||||||
-- Distance travelled
|
-- Distance travelled
|
||||||
---
|
---
|
||||||
|
|
||||||
local time=timer.getAbsTime()
|
if self.verbose>1 then
|
||||||
|
|
||||||
local position=self:GetCoordinate()
|
local time=timer.getAbsTime()
|
||||||
local ds=self.position:Get3DDistance(position)
|
|
||||||
local dt=time-self.traveltime
|
|
||||||
local v=ds/dt
|
|
||||||
|
|
||||||
self.traveldist=self.traveldist+ds
|
|
||||||
self.traveltime=time
|
|
||||||
self.position=position
|
|
||||||
|
|
||||||
local fuelmass=math.huge
|
local position=self:GetCoordinate()
|
||||||
for _,_element in pairs(self.elements) do
|
local ds=self.position:Get3DDistance(position)
|
||||||
local element=_element --#FLIGHTGROUP.Element
|
local dt=time-self.traveltime
|
||||||
|
local v=ds/dt
|
||||||
|
|
||||||
local fuel=element.unit:GetFuel() or 0
|
self.traveldist=self.traveldist+ds
|
||||||
local fmass=element.fuelmass*fuel
|
self.traveltime=time
|
||||||
|
self.position=position
|
||||||
if fmass<fuelmass then
|
|
||||||
fuelmass=fmass
|
local fuelmass=math.huge
|
||||||
|
for _,_element in pairs(self.elements) do
|
||||||
|
local element=_element --#FLIGHTGROUP.Element
|
||||||
|
|
||||||
|
local fuel=element.unit:GetFuel() or 0
|
||||||
|
local fmass=element.fuelmass*fuel
|
||||||
|
|
||||||
|
if fmass<fuelmass then
|
||||||
|
fuelmass=fmass
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
-- Log outut.
|
||||||
|
self:I(self.lid..string.format("FF Distance travelled = %.1f km v=%.1f knots fuel=%d kg", self.traveldist/1000, UTILS.MpsToKnots(v), fuelmass))
|
||||||
env.info(string.format("FF Distance travelled = %.1f km v=%.1f knots fuel=%d kg", self.traveldist/1000, UTILS.MpsToKnots(v), fuelmass))
|
|
||||||
|
end
|
||||||
|
|
||||||
---
|
---
|
||||||
-- Tasks
|
-- Tasks
|
||||||
@@ -3393,12 +3398,14 @@ function FLIGHTGROUP:onafterTaskExecute(From, Event, To, Task)
|
|||||||
if Task.dcstask.id=="Formation" then
|
if Task.dcstask.id=="Formation" then
|
||||||
|
|
||||||
-- Set of group(s) to follow Mother.
|
-- Set of group(s) to follow Mother.
|
||||||
local followset=SET_GROUP:New():AddGroup(self.group)
|
local followSet=SET_GROUP:New():AddGroup(self.group)
|
||||||
|
|
||||||
local param=Task.dcstask.params
|
local param=Task.dcstask.params
|
||||||
|
|
||||||
|
local followUnit=UNIT:FindByName(param.unitname)
|
||||||
|
|
||||||
-- Define AI Formation object.
|
-- Define AI Formation object.
|
||||||
Task.formation=AI_FORMATION:New(param.carrier, followset, "Formation", "Follow X at given parameters.")
|
Task.formation=AI_FORMATION:New(followUnit, followSet, "Formation", "Follow X at given parameters.")
|
||||||
|
|
||||||
-- Formation parameters.
|
-- Formation parameters.
|
||||||
Task.formation:FormationCenterWing(-param.offsetX, 50, math.abs(param.altitude), 50, param.offsetZ, 50)
|
Task.formation:FormationCenterWing(-param.offsetX, 50, math.abs(param.altitude), 50, param.offsetZ, 50)
|
||||||
@@ -3644,7 +3651,7 @@ function FLIGHTGROUP:onbeforeMissionStart(From, Event, To, Mission)
|
|||||||
self:StartUncontrolled(delay)
|
self:StartUncontrolled(delay)
|
||||||
else
|
else
|
||||||
env.info("FF hallo!")
|
env.info("FF hallo!")
|
||||||
self:StartUncontrolled(1)
|
self:StartUncontrolled(5)
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
@@ -5746,9 +5753,9 @@ function FLIGHTGROUP:SetOptionROE(roe)
|
|||||||
if self:IsAlive() then
|
if self:IsAlive() then
|
||||||
self.group:OptionROE(roe)
|
self.group:OptionROE(roe)
|
||||||
self.optionROEcurrent=roe
|
self.optionROEcurrent=roe
|
||||||
self:I(self.lid..string.format("Setting current ROE=%d (0=WeaponFree, 1=OpenFireWeaponFree, 2=OpenFire, 3=ReturnFire, 4=WeaponHold)", self.optionROEcurrent))
|
self:T2(self.lid..string.format("Setting current ROE=%d (0=WeaponFree, 1=OpenFireWeaponFree, 2=OpenFire, 3=ReturnFire, 4=WeaponHold)", self.optionROEcurrent))
|
||||||
else
|
else
|
||||||
-- WARNING
|
-- TODO WARNING
|
||||||
end
|
end
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@@ -5771,9 +5778,9 @@ function FLIGHTGROUP:SetOptionROT(rot)
|
|||||||
if self:IsAlive() then
|
if self:IsAlive() then
|
||||||
self.group:OptionROT(rot)
|
self.group:OptionROT(rot)
|
||||||
self.optionROTcurrent=rot
|
self.optionROTcurrent=rot
|
||||||
self:I(self.lid..string.format("Setting current ROT=%d (0=NoReaction, 1=Passive, 2=Evade, 3=ByPass, 4=AllowAbort)", self.optionROTcurrent))
|
self:T2(self.lid..string.format("Setting current ROT=%d (0=NoReaction, 1=Passive, 2=Evade, 3=ByPass, 4=AllowAbort)", self.optionROTcurrent))
|
||||||
else
|
else
|
||||||
-- WARNING
|
-- TODO WARNING
|
||||||
end
|
end
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@@ -5781,7 +5788,7 @@ end
|
|||||||
--- Set TACAN parameters. AA TACANs are aleays on "Y" band.
|
--- Set TACAN parameters. AA TACANs are aleays on "Y" band.
|
||||||
-- @param #FLIGHTGROUP self
|
-- @param #FLIGHTGROUP self
|
||||||
-- @param #number Channel TACAN channel.
|
-- @param #number Channel TACAN channel.
|
||||||
-- @param #string Morse Morse code. Default "XX".
|
-- @param #string Morse Morse code. Default "XXX".
|
||||||
-- @return #FLIGHTGROUP self
|
-- @return #FLIGHTGROUP self
|
||||||
function FLIGHTGROUP:SetTACAN(Channel, Morse)
|
function FLIGHTGROUP:SetTACAN(Channel, Morse)
|
||||||
|
|
||||||
|
|||||||
@@ -198,10 +198,10 @@ end
|
|||||||
--- Set livery painted on all squadron aircraft.
|
--- Set livery painted on all squadron aircraft.
|
||||||
-- Note that the livery name in general is different from the name shown in the mission editor.
|
-- Note that the livery name in general is different from the name shown in the mission editor.
|
||||||
--
|
--
|
||||||
-- Valid names are the names of the **livery directories**. Check out the folder in your DCS installation:
|
-- Valid names are the names of the **livery directories**. Check out the folder in your DCS installation for:
|
||||||
--
|
--
|
||||||
-- * For full modules: `DCS World OpenBeta\CoreMods\aircraft\<Aircraft Type>\Liveries\<Aircraft Type>\<Livery Name>`
|
-- * Full modules: `DCS World OpenBeta\CoreMods\aircraft\<Aircraft Type>\Liveries\<Aircraft Type>\<Livery Name>`
|
||||||
-- * For AI units: `DCS World OpenBeta\Bazar\Liveries\<Aircraft Type>\<Livery Name>`
|
-- * AI units: `DCS World OpenBeta\Bazar\Liveries\<Aircraft Type>\<Livery Name>`
|
||||||
--
|
--
|
||||||
-- The folder name `<Livery Name>` is the string you want.
|
-- The folder name `<Livery Name>` is the string you want.
|
||||||
--
|
--
|
||||||
@@ -252,6 +252,7 @@ function SQUADRON:AddMissonCapability(MissionTypes, Performance)
|
|||||||
table.insert(self.missiontypes, capability)
|
table.insert(self.missiontypes, capability)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Debug info.
|
||||||
self:I(self.missiontypes)
|
self:I(self.missiontypes)
|
||||||
|
|
||||||
return self
|
return self
|
||||||
|
|||||||
@@ -1098,5 +1098,36 @@ function UTILS.GetModulationName(Modulation)
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Get the callsign name from its enumerator value
|
||||||
|
-- @param #number Callsign The enumerator callsign.
|
||||||
|
-- @return #string The callsign name.
|
||||||
|
function UTILS.GetCallsignName(Callsign)
|
||||||
|
|
||||||
|
for name, value in pairs(CALLSIGN.Aircraft) do
|
||||||
|
if value==Callsign then
|
||||||
|
return name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for name, value in pairs(CALLSIGN.AWACS) do
|
||||||
|
if value==Callsign then
|
||||||
|
return name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for name, value in pairs(CALLSIGN.JTAC) do
|
||||||
|
if value==Callsign then
|
||||||
|
return name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for name, value in pairs(CALLSIGN.Tanker) do
|
||||||
|
if value==Callsign then
|
||||||
|
return name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return "Unknown Calsing"
|
||||||
|
end
|
||||||
|
|
||||||
-- Just a test to see commits in new environment for Wingthor
|
-- Just a test to see commits in new environment for Wingthor
|
||||||
Reference in New Issue
Block a user