mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
Merge remote-tracking branch 'refs/remotes/origin/master' into Detection
This commit is contained in:
commit
8d12cc2a4d
@ -218,7 +218,7 @@ function AIBALANCER:_ClientAliveMonitorScheduler()
|
||||
self.PatrolZone.PatrolFloorAltitude,
|
||||
self.PatrolZone.PatrolCeilingAltitude,
|
||||
self.PatrolZone.PatrolMinSpeed,
|
||||
self.PatrolPatrolMaxSpeed
|
||||
self.PatrolZone.PatrolMaxSpeed
|
||||
)
|
||||
|
||||
if self.PatrolZone.PatrolManageFuel == true then
|
||||
|
||||
@ -161,10 +161,9 @@ function PATROLZONE:NewPatrolRoute()
|
||||
--- Define Speed and Altitude.
|
||||
local ToPatrolZoneAltitude = math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude )
|
||||
local ToPatrolZoneSpeed = self.PatrolMaxSpeed
|
||||
self:T2( ToPatrolZoneSpeed )
|
||||
|
||||
--- Obtain a 3D @{Point} from the 2D point + altitude.
|
||||
self:T2( ToPatrolZoneVec2.x )
|
||||
self:T2( ToPatrolZoneVec2.y )
|
||||
local ToPatrolZonePointVec3 = POINT_VEC3:New( ToPatrolZoneVec2.x, ToPatrolZoneAltitude, ToPatrolZoneVec2.y )
|
||||
|
||||
--- Create a route point of type air.
|
||||
@ -189,6 +188,7 @@ function PATROLZONE:NewPatrolRoute()
|
||||
--- Define Speed and Altitude.
|
||||
local ToTargetAltitude = math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude )
|
||||
local ToTargetSpeed = math.random( self.PatrolMinSpeed, self.PatrolMaxSpeed )
|
||||
self:T2( { self.PatrolMinSpeed, self.PatrolMaxSpeed, ToTargetSpeed } )
|
||||
|
||||
--- Obtain a 3D @{Point} from the 2D point + altitude.
|
||||
local ToTargetPointVec3 = POINT_VEC3:New( ToTargetVec2.x, ToTargetAltitude, ToTargetVec2.y )
|
||||
|
||||
@ -123,6 +123,7 @@ end
|
||||
-- @param #boolean SpeedLocked true means the speed is locked.
|
||||
-- @return #table The route point.
|
||||
function POINT_VEC3:RoutePointAir( AltType, Type, Action, Speed, SpeedLocked )
|
||||
self:F2( { AltType, Type, Action, Speed, SpeedLocked } )
|
||||
|
||||
local RoutePoint = {}
|
||||
RoutePoint.x = self.PointVec3.x
|
||||
@ -133,16 +134,8 @@ function POINT_VEC3:RoutePointAir( AltType, Type, Action, Speed, SpeedLocked )
|
||||
RoutePoint.type = Type
|
||||
RoutePoint.action = Action
|
||||
|
||||
RoutePoint.speed = Speed
|
||||
RoutePoint.speed = Speed / 3.6
|
||||
RoutePoint.speed_locked = true
|
||||
|
||||
RoutePoint.properties = {
|
||||
["vnav"] = 1,
|
||||
["scale"] = 0,
|
||||
["angle"] = 0,
|
||||
["vangle"] = 0,
|
||||
["steer"] = 2,
|
||||
}
|
||||
|
||||
-- ["task"] =
|
||||
-- {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
env.info( '*** MOOSE STATIC INCLUDE START *** ' )
|
||||
env.info( 'Moose Generation Timestamp: 20160622_0930' )
|
||||
env.info( 'Moose Generation Timestamp: 20160622_1015' )
|
||||
local base = _G
|
||||
|
||||
Include = {}
|
||||
@ -9086,6 +9086,314 @@ function STATIC:GetDCSUnit()
|
||||
|
||||
return nil
|
||||
end
|
||||
--- This module contains the AIRBASE classes.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- 1) @{Airbase#AIRBASE} class, extends @{Base#BASE}
|
||||
-- =================================================
|
||||
-- The @{AIRBASE} class is a wrapper class to handle the DCS Airbase objects:
|
||||
--
|
||||
-- * Support all DCS Airbase APIs.
|
||||
-- * Enhance with Airbase specific APIs not in the DCS Airbase API set.
|
||||
--
|
||||
--
|
||||
-- 1.1) AIRBASE reference methods
|
||||
-- ------------------------------
|
||||
-- For each DCS Airbase object alive within a running mission, a AIRBASE wrapper object (instance) will be created within the _@{DATABASE} object.
|
||||
-- This is done at the beginning of the mission (when the mission starts).
|
||||
--
|
||||
-- The AIRBASE class **does not contain a :New()** method, rather it provides **:Find()** methods to retrieve the object reference
|
||||
-- using the DCS Airbase or the DCS AirbaseName.
|
||||
--
|
||||
-- Another thing to know is that AIRBASE objects do not "contain" the DCS Airbase object.
|
||||
-- The AIRBASE methods will reference the DCS Airbase object by name when it is needed during API execution.
|
||||
-- If the DCS Airbase object does not exist or is nil, the AIRBASE methods will return nil and log an exception in the DCS.log file.
|
||||
--
|
||||
-- The AIRBASE class provides the following functions to retrieve quickly the relevant AIRBASE instance:
|
||||
--
|
||||
-- * @{#AIRBASE.Find}(): Find a AIRBASE instance from the _DATABASE object using a DCS Airbase object.
|
||||
-- * @{#AIRBASE.FindByName}(): Find a AIRBASE instance from the _DATABASE object using a DCS Airbase name.
|
||||
--
|
||||
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these AIRBASE OBJECT REFERENCES! (make the AIRBASE object references nil).
|
||||
--
|
||||
-- 1.2) DCS AIRBASE APIs
|
||||
-- ---------------------
|
||||
-- The DCS Airbase APIs are used extensively within MOOSE. The AIRBASE class has for each DCS Airbase API a corresponding method.
|
||||
-- To be able to distinguish easily in your code the difference between a AIRBASE API call and a DCS Airbase API call,
|
||||
-- the first letter of the method is also capitalized. So, by example, the DCS Airbase method @{DCSAirbase#Airbase.getName}()
|
||||
-- is implemented in the AIRBASE class as @{#AIRBASE.GetName}().
|
||||
--
|
||||
-- More functions will be added
|
||||
-- ----------------------------
|
||||
-- During the MOOSE development, more functions will be added.
|
||||
--
|
||||
-- @module Airbase
|
||||
-- @author FlightControl
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--- The AIRBASE class
|
||||
-- @type AIRBASE
|
||||
-- @extends Base#BASE
|
||||
AIRBASE = {
|
||||
ClassName="AIRBASE",
|
||||
CategoryName = {
|
||||
[Airbase.Category.AIRDROME] = "Airdrome",
|
||||
[Airbase.Category.HELIPAD] = "Helipad",
|
||||
[Airbase.Category.SHIP] = "Ship",
|
||||
},
|
||||
}
|
||||
|
||||
-- Registration.
|
||||
|
||||
--- Create a new AIRBASE from DCSAirbase.
|
||||
-- @param #AIRBASE self
|
||||
-- @param DCSAirbase#Airbase DCSAirbase
|
||||
-- @param Database#DATABASE Database
|
||||
-- @return Airbase#AIRBASE
|
||||
function AIRBASE:Register( AirbaseName )
|
||||
|
||||
local self = BASE:Inherit( self, BASE:New() )
|
||||
self:F2( AirbaseName )
|
||||
self.AirbaseName = AirbaseName
|
||||
return self
|
||||
end
|
||||
|
||||
-- Reference methods.
|
||||
|
||||
--- Finds a AIRBASE from the _DATABASE using a DCSAirbase object.
|
||||
-- @param #AIRBASE self
|
||||
-- @param DCSAirbase#Airbase DCSAirbase An existing DCS Airbase object reference.
|
||||
-- @return Airbase#AIRBASE self
|
||||
function AIRBASE:Find( DCSAirbase )
|
||||
|
||||
local AirbaseName = DCSAirbase:getName()
|
||||
local AirbaseFound = _DATABASE:FindAirbase( AirbaseName )
|
||||
return AirbaseFound
|
||||
end
|
||||
|
||||
--- Find a AIRBASE in the _DATABASE using the name of an existing DCS Airbase.
|
||||
-- @param #AIRBASE self
|
||||
-- @param #string AirbaseName The Airbase Name.
|
||||
-- @return Airbase#AIRBASE self
|
||||
function AIRBASE:FindByName( AirbaseName )
|
||||
|
||||
local AirbaseFound = _DATABASE:FindAirbase( AirbaseName )
|
||||
return AirbaseFound
|
||||
end
|
||||
|
||||
function AIRBASE:GetDCSAirbase()
|
||||
local DCSAirbase = Airbase.getByName( self.AirbaseName )
|
||||
|
||||
if DCSAirbase then
|
||||
return DCSAirbase
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns coalition of the Airbase.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSCoalitionObject#coalition.side The side of the coalition.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetCoalition()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCoalition = DCSAirbase:getCoalition()
|
||||
self:T3( AirbaseCoalition )
|
||||
return AirbaseCoalition
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns country of the Airbase.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCScountry#country.id The country identifier.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetCountry()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCountry = DCSAirbase:getCountry()
|
||||
self:T3( AirbaseCountry )
|
||||
return AirbaseCountry
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns DCS Airbase object name.
|
||||
-- The function provides access to non-activated units too.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The name of the DCS Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetName()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseName = self.AirbaseName
|
||||
return AirbaseName
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns if the airbase is alive.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #boolean true if Airbase is alive.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:IsAlive()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseIsAlive = DCSAirbase:isExist()
|
||||
return AirbaseIsAlive
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
--- Returns the unit's unique identifier.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSAirbase#Airbase.ID Airbase ID
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetID()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseID = DCSAirbase:getID()
|
||||
return AirbaseID
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns the Airbase's callsign - the localized string.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The Callsign of the Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetCallSign()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCallSign = DCSAirbase:getCallsign()
|
||||
return AirbaseCallSign
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- Returns unit descriptor. Descriptor type depends on unit category.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSAirbase#Airbase.Desc The Airbase descriptor.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetDesc()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseDesc = DCSAirbase:getDesc()
|
||||
return AirbaseDesc
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns the type name of the DCS Airbase.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The type name of the DCS Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetTypeName()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseTypeName = DCSAirbase:getTypeName()
|
||||
self:T3( AirbaseTypeName )
|
||||
return AirbaseTypeName
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns the @{DCSTypes#Vec2} vector indicating the point in 2D of the DCS Airbase within the mission.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSTypes#Vec2 The 2D point vector of the DCS Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetPointVec2()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbasePointVec3 = DCSAirbase:getPosition().p
|
||||
|
||||
local AirbasePointVec2 = {}
|
||||
AirbasePointVec2.x = AirbasePointVec3.x
|
||||
AirbasePointVec2.y = AirbasePointVec3.z
|
||||
|
||||
self:T3( AirbasePointVec2 )
|
||||
return AirbasePointVec2
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns the DCS Airbase category as defined within the DCS Airbase Descriptor.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSAirbase#Airbase.Category The DCS Airbase Category
|
||||
function AIRBASE:GetCategory()
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCategory = self:GetDesc().category
|
||||
return AirbaseCategory
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns the DCS Airbase category name as defined within the DCS Airbase Descriptor.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The DCS Airbase Category Name
|
||||
function AIRBASE:GetCategoryName()
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCategoryName = self.CategoryName[ self:GetDesc().category ]
|
||||
return AirbaseCategoryName
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- This module contains the DATABASE class, managing the database of mission objects.
|
||||
--
|
||||
-- ====
|
||||
@ -11862,6 +12170,7 @@ end
|
||||
-- @param #boolean SpeedLocked true means the speed is locked.
|
||||
-- @return #table The route point.
|
||||
function POINT_VEC3:RoutePointAir( AltType, Type, Action, Speed, SpeedLocked )
|
||||
self:F2( { AltType, Type, Action, Speed, SpeedLocked } )
|
||||
|
||||
local RoutePoint = {}
|
||||
RoutePoint.x = self.PointVec3.x
|
||||
@ -11872,16 +12181,8 @@ function POINT_VEC3:RoutePointAir( AltType, Type, Action, Speed, SpeedLocked )
|
||||
RoutePoint.type = Type
|
||||
RoutePoint.action = Action
|
||||
|
||||
RoutePoint.speed = Speed
|
||||
RoutePoint.speed = Speed / 3.6
|
||||
RoutePoint.speed_locked = true
|
||||
|
||||
RoutePoint.properties = {
|
||||
["vnav"] = 1,
|
||||
["scale"] = 0,
|
||||
["angle"] = 0,
|
||||
["vangle"] = 0,
|
||||
["steer"] = 2,
|
||||
}
|
||||
|
||||
-- ["task"] =
|
||||
-- {
|
||||
@ -20828,7 +21129,271 @@ function MISSILETRAINER:_TrackMissiles()
|
||||
|
||||
return true
|
||||
end
|
||||
--- This module contains the AIBALANCER class.
|
||||
--- This module contains the PATROLZONE class.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- 1) @{Patrol#PATROLZONE} class, extends @{Base#BASE}
|
||||
-- ===================================================
|
||||
-- The @{Patrol#PATROLZONE} class implements the core functions to patrol a @{Zone}.
|
||||
--
|
||||
-- 1.1) PATROLZONE constructor:
|
||||
-- ----------------------------
|
||||
-- @{PatrolZone#PATROLZONE.New}(): Creates a new PATROLZONE object.
|
||||
--
|
||||
-- 1.2) Modify the PATROLZONE parameters:
|
||||
-- --------------------------------------
|
||||
-- The following methods are available to modify the parameters of a PATROLZONE object:
|
||||
--
|
||||
-- * @{PatrolZone#PATROLZONE.SetGroup}(): Set the AI Patrol Group.
|
||||
-- * @{PatrolZone#PATROLZONE.SetSpeed}(): Set the patrol speed of the AI, for the next patrol.
|
||||
-- * @{PatrolZone#PATROLZONE.SetAltitude}(): Set altitude of the AI, for the next patrol.
|
||||
--
|
||||
-- 1.3) Manage the out of fuel in the PATROLZONE:
|
||||
-- ----------------------------------------------
|
||||
-- When the PatrolGroup is out of fuel, it is required that a new PatrolGroup is started, before the old PatrolGroup can return to the home base.
|
||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||
-- When the fuel treshold is reached, the PatrolGroup will continue for a given time its patrol task in orbit, while a new PatrolGroup is targetted to the PATROLZONE.
|
||||
-- Once the time is finished, the old PatrolGroup will return to the base.
|
||||
-- Use the method @{PatrolZone#PATROLZONE.ManageFuel}() to have this proces in place.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- @module PatrolZone
|
||||
-- @author FlightControl
|
||||
|
||||
|
||||
--- PATROLZONE class
|
||||
-- @type PATROLZONE
|
||||
-- @field Group#GROUP PatrolGroup The @{Group} patrolling.
|
||||
-- @field Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||
-- @field DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||
-- @field DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||
-- @field DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Group} in km/h.
|
||||
-- @field DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Group} in km/h.
|
||||
-- @extends Base#BASE
|
||||
PATROLZONE = {
|
||||
ClassName = "PATROLZONE",
|
||||
}
|
||||
|
||||
--- Creates a new PATROLZONE object, taking a @{Group} object as a parameter. The GROUP needs to be alive.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||
-- @param DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||
-- @param DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||
-- @param DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Group} in km/h.
|
||||
-- @param DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Group} in km/h.
|
||||
-- @return #PATROLZONE self
|
||||
-- @usage
|
||||
-- -- Define a new PATROLZONE Object. This PatrolArea will patrol a group within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
||||
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
||||
-- PatrolGroup = GROUP:FindByName( "Patrol Group" )
|
||||
-- PatrolArea = PATROLZONE:New( PatrolGroup, PatrolZone, 3000, 6000, 600, 900 )
|
||||
function PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, BASE:New() )
|
||||
|
||||
self.PatrolZone = PatrolZone
|
||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||
self.PatrolMinSpeed = PatrolMinSpeed
|
||||
self.PatrolMaxSpeed = PatrolMaxSpeed
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set the @{Group} to act as the Patroller.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param Group#GROUP PatrolGroup The @{Group} patrolling.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:SetGroup( PatrolGroup )
|
||||
|
||||
self.PatrolGroup = PatrolGroup
|
||||
self.PatrolGroupTemplateName = PatrolGroup:GetName()
|
||||
self:NewPatrolRoute()
|
||||
|
||||
if not self.PatrolOutOfFuelMonitor then
|
||||
self.PatrolOutOfFuelMonitor = SCHEDULER:New( nil, _MonitorOutOfFuelScheduled, { self }, 1, 120, 0 )
|
||||
self.SpawnPatrolGroup = SPAWN:New( self.PatrolGroupTemplateName )
|
||||
end
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Group} in km/h.
|
||||
-- @param DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Group} in km/h.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
||||
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
||||
|
||||
self.PatrolMinSpeed = PatrolMinSpeed
|
||||
self.PatrolMaxSpeed = PatrolMaxSpeed
|
||||
end
|
||||
|
||||
--- Sets the floor and ceiling altitude of the patrol.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||
-- @param DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
||||
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
||||
|
||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- @param Group#GROUP PatrolGroup
|
||||
function _NewPatrolRoute( PatrolGroup )
|
||||
|
||||
PatrolGroup:T( "NewPatrolRoute" )
|
||||
local PatrolZone = PatrolGroup:GetState( PatrolGroup, "PatrolZone" ) -- PatrolZone#PATROLZONE
|
||||
PatrolZone:NewPatrolRoute()
|
||||
end
|
||||
|
||||
--- Defines a new patrol route using the @{PatrolZone} parameters and settings.
|
||||
-- @param #PATROLZONE self
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:NewPatrolRoute()
|
||||
|
||||
self:F2()
|
||||
|
||||
local PatrolRoute = {}
|
||||
|
||||
if self.PatrolGroup:IsAlive() then
|
||||
--- Determine if the PatrolGroup is within the PatrolZone.
|
||||
-- If not, make a waypoint within the to that the PatrolGroup will fly at maximum speed to that point.
|
||||
|
||||
-- --- Calculate the current route point.
|
||||
-- local CurrentVec2 = self.PatrolGroup:GetPointVec2()
|
||||
-- local CurrentAltitude = self.PatrolGroup:GetUnit(1):GetAltitude()
|
||||
-- local CurrentPointVec3 = POINT_VEC3:New( CurrentVec2.x, CurrentAltitude, CurrentVec2.y )
|
||||
-- local CurrentRoutePoint = CurrentPointVec3:RoutePointAir(
|
||||
-- POINT_VEC3.RoutePointAltType.BARO,
|
||||
-- POINT_VEC3.RoutePointType.TurningPoint,
|
||||
-- POINT_VEC3.RoutePointAction.TurningPoint,
|
||||
-- ToPatrolZoneSpeed,
|
||||
-- true
|
||||
-- )
|
||||
--
|
||||
-- PatrolRoute[#PatrolRoute+1] = CurrentRoutePoint
|
||||
|
||||
self:T2( PatrolRoute )
|
||||
|
||||
if self.PatrolGroup:IsNotInZone( self.PatrolZone ) then
|
||||
--- Find a random 2D point in PatrolZone.
|
||||
local ToPatrolZoneVec2 = self.PatrolZone:GetRandomVec2()
|
||||
self:T2( ToPatrolZoneVec2 )
|
||||
|
||||
--- Define Speed and Altitude.
|
||||
local ToPatrolZoneAltitude = math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude )
|
||||
local ToPatrolZoneSpeed = self.PatrolMaxSpeed
|
||||
self:T2( ToPatrolZoneSpeed )
|
||||
|
||||
--- Obtain a 3D @{Point} from the 2D point + altitude.
|
||||
local ToPatrolZonePointVec3 = POINT_VEC3:New( ToPatrolZoneVec2.x, ToPatrolZoneAltitude, ToPatrolZoneVec2.y )
|
||||
|
||||
--- Create a route point of type air.
|
||||
local ToPatrolZoneRoutePoint = ToPatrolZonePointVec3:RoutePointAir(
|
||||
POINT_VEC3.RoutePointAltType.BARO,
|
||||
POINT_VEC3.RoutePointType.TurningPoint,
|
||||
POINT_VEC3.RoutePointAction.TurningPoint,
|
||||
ToPatrolZoneSpeed,
|
||||
true
|
||||
)
|
||||
|
||||
PatrolRoute[#PatrolRoute+1] = ToPatrolZoneRoutePoint
|
||||
|
||||
end
|
||||
|
||||
--- Define a random point in the @{Zone}. The AI will fly to that point within the zone.
|
||||
|
||||
--- Find a random 2D point in PatrolZone.
|
||||
local ToTargetVec2 = self.PatrolZone:GetRandomVec2()
|
||||
self:T2( ToTargetVec2 )
|
||||
|
||||
--- Define Speed and Altitude.
|
||||
local ToTargetAltitude = math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude )
|
||||
local ToTargetSpeed = math.random( self.PatrolMinSpeed, self.PatrolMaxSpeed )
|
||||
self:T2( { self.PatrolMinSpeed, self.PatrolMaxSpeed, ToTargetSpeed } )
|
||||
|
||||
--- Obtain a 3D @{Point} from the 2D point + altitude.
|
||||
local ToTargetPointVec3 = POINT_VEC3:New( ToTargetVec2.x, ToTargetAltitude, ToTargetVec2.y )
|
||||
|
||||
--- Create a route point of type air.
|
||||
local ToTargetRoutePoint = ToTargetPointVec3:RoutePointAir(
|
||||
POINT_VEC3.RoutePointAltType.BARO,
|
||||
POINT_VEC3.RoutePointType.TurningPoint,
|
||||
POINT_VEC3.RoutePointAction.TurningPoint,
|
||||
ToTargetSpeed,
|
||||
true
|
||||
)
|
||||
|
||||
--ToTargetPointVec3:SmokeRed()
|
||||
|
||||
PatrolRoute[#PatrolRoute+1] = ToTargetRoutePoint
|
||||
|
||||
--- Now we're going to do something special, we're going to call a function from a waypoint action at the PatrolGroup...
|
||||
self.PatrolGroup:WayPointInitialize( PatrolRoute )
|
||||
|
||||
--- Do a trick, link the NewPatrolRoute function of the PATROLGROUP object to the PatrolGroup in a temporary variable ...
|
||||
self.PatrolGroup:SetState( self.PatrolGroup, "PatrolZone", self )
|
||||
self.PatrolGroup:WayPointFunction( #PatrolRoute, 1, "_NewPatrolRoute" )
|
||||
|
||||
--- NOW ROUTE THE GROUP!
|
||||
self.PatrolGroup:WayPointExecute( 1, 2 )
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--- When the PatrolGroup is out of fuel, it is required that a new PatrolGroup is started, before the old PatrolGroup can return to the home base.
|
||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||
-- When the fuel treshold is reached, the PatrolGroup will continue for a given time its patrol task in orbit, while a new PatrolGroup is targetted to the PATROLZONE.
|
||||
-- Once the time is finished, the old PatrolGroup will return to the base.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the PatrolGroup is considered to get out of fuel.
|
||||
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel PatrolGroup will orbit before returning to the base.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
||||
|
||||
self.PatrolManageFuel = true
|
||||
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
||||
self.PatrolOutOfFuelOrbitTime = PatrolOutOfFuelOrbitTime
|
||||
|
||||
if self.PatrolGroup then
|
||||
self.PatrolOutOfFuelMonitor = SCHEDULER:New( self, self._MonitorOutOfFuelScheduled, {}, 1, 120, 0 )
|
||||
self.SpawnPatrolGroup = SPAWN:New( self.PatrolGroupTemplateName )
|
||||
end
|
||||
return self
|
||||
end
|
||||
|
||||
--- @param #PATROLZONE self
|
||||
function _MonitorOutOfFuelScheduled( self )
|
||||
self:F2( "_MonitorOutOfFuelScheduled" )
|
||||
|
||||
if self.PatrolGroup and self.PatrolGroup:IsAlive() then
|
||||
|
||||
local Fuel = self.PatrolGroup:GetUnit(1):GetFuel()
|
||||
if Fuel < self.PatrolFuelTresholdPercentage then
|
||||
local OldPatrolGroup = self.PatrolGroup
|
||||
local PatrolGroupTemplate = self.PatrolGroup:GetTemplate()
|
||||
|
||||
local OrbitTask = OldPatrolGroup:TaskOrbitCircle( math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude ), self.PatrolMinSpeed )
|
||||
local TimedOrbitTask = OldPatrolGroup:TaskControlled( OrbitTask, OldPatrolGroup:TaskCondition(nil,nil,nil,nil,self.PatrolOutOfFuelOrbitTime,nil ) )
|
||||
OldPatrolGroup:SetTask( TimedOrbitTask, 10 )
|
||||
|
||||
local NewPatrolGroup = self.SpawnPatrolGroup:Spawn()
|
||||
self.PatrolGroup = NewPatrolGroup
|
||||
self:NewPatrolRoute()
|
||||
end
|
||||
else
|
||||
self.PatrolOutOfFuelMonitor:Stop()
|
||||
end
|
||||
end--- This module contains the AIBALANCER class.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
@ -21048,7 +21613,7 @@ function AIBALANCER:_ClientAliveMonitorScheduler()
|
||||
self.PatrolZone.PatrolFloorAltitude,
|
||||
self.PatrolZone.PatrolCeilingAltitude,
|
||||
self.PatrolZone.PatrolMinSpeed,
|
||||
self.PatrolPatrolMaxSpeed
|
||||
self.PatrolZone.PatrolMaxSpeed
|
||||
)
|
||||
|
||||
if self.PatrolZone.PatrolManageFuel == true then
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
env.info( '*** MOOSE STATIC INCLUDE START *** ' )
|
||||
env.info( 'Moose Generation Timestamp: 20160622_0930' )
|
||||
env.info( 'Moose Generation Timestamp: 20160622_1015' )
|
||||
local base = _G
|
||||
|
||||
Include = {}
|
||||
@ -9086,6 +9086,314 @@ function STATIC:GetDCSUnit()
|
||||
|
||||
return nil
|
||||
end
|
||||
--- This module contains the AIRBASE classes.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- 1) @{Airbase#AIRBASE} class, extends @{Base#BASE}
|
||||
-- =================================================
|
||||
-- The @{AIRBASE} class is a wrapper class to handle the DCS Airbase objects:
|
||||
--
|
||||
-- * Support all DCS Airbase APIs.
|
||||
-- * Enhance with Airbase specific APIs not in the DCS Airbase API set.
|
||||
--
|
||||
--
|
||||
-- 1.1) AIRBASE reference methods
|
||||
-- ------------------------------
|
||||
-- For each DCS Airbase object alive within a running mission, a AIRBASE wrapper object (instance) will be created within the _@{DATABASE} object.
|
||||
-- This is done at the beginning of the mission (when the mission starts).
|
||||
--
|
||||
-- The AIRBASE class **does not contain a :New()** method, rather it provides **:Find()** methods to retrieve the object reference
|
||||
-- using the DCS Airbase or the DCS AirbaseName.
|
||||
--
|
||||
-- Another thing to know is that AIRBASE objects do not "contain" the DCS Airbase object.
|
||||
-- The AIRBASE methods will reference the DCS Airbase object by name when it is needed during API execution.
|
||||
-- If the DCS Airbase object does not exist or is nil, the AIRBASE methods will return nil and log an exception in the DCS.log file.
|
||||
--
|
||||
-- The AIRBASE class provides the following functions to retrieve quickly the relevant AIRBASE instance:
|
||||
--
|
||||
-- * @{#AIRBASE.Find}(): Find a AIRBASE instance from the _DATABASE object using a DCS Airbase object.
|
||||
-- * @{#AIRBASE.FindByName}(): Find a AIRBASE instance from the _DATABASE object using a DCS Airbase name.
|
||||
--
|
||||
-- IMPORTANT: ONE SHOULD NEVER SANATIZE these AIRBASE OBJECT REFERENCES! (make the AIRBASE object references nil).
|
||||
--
|
||||
-- 1.2) DCS AIRBASE APIs
|
||||
-- ---------------------
|
||||
-- The DCS Airbase APIs are used extensively within MOOSE. The AIRBASE class has for each DCS Airbase API a corresponding method.
|
||||
-- To be able to distinguish easily in your code the difference between a AIRBASE API call and a DCS Airbase API call,
|
||||
-- the first letter of the method is also capitalized. So, by example, the DCS Airbase method @{DCSAirbase#Airbase.getName}()
|
||||
-- is implemented in the AIRBASE class as @{#AIRBASE.GetName}().
|
||||
--
|
||||
-- More functions will be added
|
||||
-- ----------------------------
|
||||
-- During the MOOSE development, more functions will be added.
|
||||
--
|
||||
-- @module Airbase
|
||||
-- @author FlightControl
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--- The AIRBASE class
|
||||
-- @type AIRBASE
|
||||
-- @extends Base#BASE
|
||||
AIRBASE = {
|
||||
ClassName="AIRBASE",
|
||||
CategoryName = {
|
||||
[Airbase.Category.AIRDROME] = "Airdrome",
|
||||
[Airbase.Category.HELIPAD] = "Helipad",
|
||||
[Airbase.Category.SHIP] = "Ship",
|
||||
},
|
||||
}
|
||||
|
||||
-- Registration.
|
||||
|
||||
--- Create a new AIRBASE from DCSAirbase.
|
||||
-- @param #AIRBASE self
|
||||
-- @param DCSAirbase#Airbase DCSAirbase
|
||||
-- @param Database#DATABASE Database
|
||||
-- @return Airbase#AIRBASE
|
||||
function AIRBASE:Register( AirbaseName )
|
||||
|
||||
local self = BASE:Inherit( self, BASE:New() )
|
||||
self:F2( AirbaseName )
|
||||
self.AirbaseName = AirbaseName
|
||||
return self
|
||||
end
|
||||
|
||||
-- Reference methods.
|
||||
|
||||
--- Finds a AIRBASE from the _DATABASE using a DCSAirbase object.
|
||||
-- @param #AIRBASE self
|
||||
-- @param DCSAirbase#Airbase DCSAirbase An existing DCS Airbase object reference.
|
||||
-- @return Airbase#AIRBASE self
|
||||
function AIRBASE:Find( DCSAirbase )
|
||||
|
||||
local AirbaseName = DCSAirbase:getName()
|
||||
local AirbaseFound = _DATABASE:FindAirbase( AirbaseName )
|
||||
return AirbaseFound
|
||||
end
|
||||
|
||||
--- Find a AIRBASE in the _DATABASE using the name of an existing DCS Airbase.
|
||||
-- @param #AIRBASE self
|
||||
-- @param #string AirbaseName The Airbase Name.
|
||||
-- @return Airbase#AIRBASE self
|
||||
function AIRBASE:FindByName( AirbaseName )
|
||||
|
||||
local AirbaseFound = _DATABASE:FindAirbase( AirbaseName )
|
||||
return AirbaseFound
|
||||
end
|
||||
|
||||
function AIRBASE:GetDCSAirbase()
|
||||
local DCSAirbase = Airbase.getByName( self.AirbaseName )
|
||||
|
||||
if DCSAirbase then
|
||||
return DCSAirbase
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns coalition of the Airbase.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSCoalitionObject#coalition.side The side of the coalition.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetCoalition()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCoalition = DCSAirbase:getCoalition()
|
||||
self:T3( AirbaseCoalition )
|
||||
return AirbaseCoalition
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns country of the Airbase.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCScountry#country.id The country identifier.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetCountry()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCountry = DCSAirbase:getCountry()
|
||||
self:T3( AirbaseCountry )
|
||||
return AirbaseCountry
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns DCS Airbase object name.
|
||||
-- The function provides access to non-activated units too.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The name of the DCS Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetName()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseName = self.AirbaseName
|
||||
return AirbaseName
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns if the airbase is alive.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #boolean true if Airbase is alive.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:IsAlive()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseIsAlive = DCSAirbase:isExist()
|
||||
return AirbaseIsAlive
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
--- Returns the unit's unique identifier.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSAirbase#Airbase.ID Airbase ID
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetID()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseID = DCSAirbase:getID()
|
||||
return AirbaseID
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns the Airbase's callsign - the localized string.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The Callsign of the Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetCallSign()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCallSign = DCSAirbase:getCallsign()
|
||||
return AirbaseCallSign
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- Returns unit descriptor. Descriptor type depends on unit category.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSAirbase#Airbase.Desc The Airbase descriptor.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetDesc()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseDesc = DCSAirbase:getDesc()
|
||||
return AirbaseDesc
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns the type name of the DCS Airbase.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The type name of the DCS Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetTypeName()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseTypeName = DCSAirbase:getTypeName()
|
||||
self:T3( AirbaseTypeName )
|
||||
return AirbaseTypeName
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns the @{DCSTypes#Vec2} vector indicating the point in 2D of the DCS Airbase within the mission.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSTypes#Vec2 The 2D point vector of the DCS Airbase.
|
||||
-- @return #nil The DCS Airbase is not existing or alive.
|
||||
function AIRBASE:GetPointVec2()
|
||||
self:F2( self.AirbaseName )
|
||||
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbasePointVec3 = DCSAirbase:getPosition().p
|
||||
|
||||
local AirbasePointVec2 = {}
|
||||
AirbasePointVec2.x = AirbasePointVec3.x
|
||||
AirbasePointVec2.y = AirbasePointVec3.z
|
||||
|
||||
self:T3( AirbasePointVec2 )
|
||||
return AirbasePointVec2
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--- Returns the DCS Airbase category as defined within the DCS Airbase Descriptor.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return DCSAirbase#Airbase.Category The DCS Airbase Category
|
||||
function AIRBASE:GetCategory()
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCategory = self:GetDesc().category
|
||||
return AirbaseCategory
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- Returns the DCS Airbase category name as defined within the DCS Airbase Descriptor.
|
||||
-- @param Airbase#AIRBASE self
|
||||
-- @return #string The DCS Airbase Category Name
|
||||
function AIRBASE:GetCategoryName()
|
||||
local DCSAirbase = self:GetDCSAirbase()
|
||||
|
||||
if DCSAirbase then
|
||||
local AirbaseCategoryName = self.CategoryName[ self:GetDesc().category ]
|
||||
return AirbaseCategoryName
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
--- This module contains the DATABASE class, managing the database of mission objects.
|
||||
--
|
||||
-- ====
|
||||
@ -11862,6 +12170,7 @@ end
|
||||
-- @param #boolean SpeedLocked true means the speed is locked.
|
||||
-- @return #table The route point.
|
||||
function POINT_VEC3:RoutePointAir( AltType, Type, Action, Speed, SpeedLocked )
|
||||
self:F2( { AltType, Type, Action, Speed, SpeedLocked } )
|
||||
|
||||
local RoutePoint = {}
|
||||
RoutePoint.x = self.PointVec3.x
|
||||
@ -11872,16 +12181,8 @@ function POINT_VEC3:RoutePointAir( AltType, Type, Action, Speed, SpeedLocked )
|
||||
RoutePoint.type = Type
|
||||
RoutePoint.action = Action
|
||||
|
||||
RoutePoint.speed = Speed
|
||||
RoutePoint.speed = Speed / 3.6
|
||||
RoutePoint.speed_locked = true
|
||||
|
||||
RoutePoint.properties = {
|
||||
["vnav"] = 1,
|
||||
["scale"] = 0,
|
||||
["angle"] = 0,
|
||||
["vangle"] = 0,
|
||||
["steer"] = 2,
|
||||
}
|
||||
|
||||
-- ["task"] =
|
||||
-- {
|
||||
@ -20828,7 +21129,271 @@ function MISSILETRAINER:_TrackMissiles()
|
||||
|
||||
return true
|
||||
end
|
||||
--- This module contains the AIBALANCER class.
|
||||
--- This module contains the PATROLZONE class.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- 1) @{Patrol#PATROLZONE} class, extends @{Base#BASE}
|
||||
-- ===================================================
|
||||
-- The @{Patrol#PATROLZONE} class implements the core functions to patrol a @{Zone}.
|
||||
--
|
||||
-- 1.1) PATROLZONE constructor:
|
||||
-- ----------------------------
|
||||
-- @{PatrolZone#PATROLZONE.New}(): Creates a new PATROLZONE object.
|
||||
--
|
||||
-- 1.2) Modify the PATROLZONE parameters:
|
||||
-- --------------------------------------
|
||||
-- The following methods are available to modify the parameters of a PATROLZONE object:
|
||||
--
|
||||
-- * @{PatrolZone#PATROLZONE.SetGroup}(): Set the AI Patrol Group.
|
||||
-- * @{PatrolZone#PATROLZONE.SetSpeed}(): Set the patrol speed of the AI, for the next patrol.
|
||||
-- * @{PatrolZone#PATROLZONE.SetAltitude}(): Set altitude of the AI, for the next patrol.
|
||||
--
|
||||
-- 1.3) Manage the out of fuel in the PATROLZONE:
|
||||
-- ----------------------------------------------
|
||||
-- When the PatrolGroup is out of fuel, it is required that a new PatrolGroup is started, before the old PatrolGroup can return to the home base.
|
||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||
-- When the fuel treshold is reached, the PatrolGroup will continue for a given time its patrol task in orbit, while a new PatrolGroup is targetted to the PATROLZONE.
|
||||
-- Once the time is finished, the old PatrolGroup will return to the base.
|
||||
-- Use the method @{PatrolZone#PATROLZONE.ManageFuel}() to have this proces in place.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
-- @module PatrolZone
|
||||
-- @author FlightControl
|
||||
|
||||
|
||||
--- PATROLZONE class
|
||||
-- @type PATROLZONE
|
||||
-- @field Group#GROUP PatrolGroup The @{Group} patrolling.
|
||||
-- @field Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||
-- @field DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||
-- @field DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||
-- @field DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Group} in km/h.
|
||||
-- @field DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Group} in km/h.
|
||||
-- @extends Base#BASE
|
||||
PATROLZONE = {
|
||||
ClassName = "PATROLZONE",
|
||||
}
|
||||
|
||||
--- Creates a new PATROLZONE object, taking a @{Group} object as a parameter. The GROUP needs to be alive.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param Zone#ZONE_BASE PatrolZone The @{Zone} where the patrol needs to be executed.
|
||||
-- @param DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||
-- @param DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||
-- @param DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Group} in km/h.
|
||||
-- @param DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Group} in km/h.
|
||||
-- @return #PATROLZONE self
|
||||
-- @usage
|
||||
-- -- Define a new PATROLZONE Object. This PatrolArea will patrol a group within PatrolZone between 3000 and 6000 meters, with a variying speed between 600 and 900 km/h.
|
||||
-- PatrolZone = ZONE:New( 'PatrolZone' )
|
||||
-- PatrolGroup = GROUP:FindByName( "Patrol Group" )
|
||||
-- PatrolArea = PATROLZONE:New( PatrolGroup, PatrolZone, 3000, 6000, 600, 900 )
|
||||
function PATROLZONE:New( PatrolZone, PatrolFloorAltitude, PatrolCeilingAltitude, PatrolMinSpeed, PatrolMaxSpeed )
|
||||
|
||||
-- Inherits from BASE
|
||||
local self = BASE:Inherit( self, BASE:New() )
|
||||
|
||||
self.PatrolZone = PatrolZone
|
||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||
self.PatrolMinSpeed = PatrolMinSpeed
|
||||
self.PatrolMaxSpeed = PatrolMaxSpeed
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Set the @{Group} to act as the Patroller.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param Group#GROUP PatrolGroup The @{Group} patrolling.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:SetGroup( PatrolGroup )
|
||||
|
||||
self.PatrolGroup = PatrolGroup
|
||||
self.PatrolGroupTemplateName = PatrolGroup:GetName()
|
||||
self:NewPatrolRoute()
|
||||
|
||||
if not self.PatrolOutOfFuelMonitor then
|
||||
self.PatrolOutOfFuelMonitor = SCHEDULER:New( nil, _MonitorOutOfFuelScheduled, { self }, 1, 120, 0 )
|
||||
self.SpawnPatrolGroup = SPAWN:New( self.PatrolGroupTemplateName )
|
||||
end
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
--- Sets (modifies) the minimum and maximum speed of the patrol.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param DCSTypes#Speed PatrolMinSpeed The minimum speed of the @{Group} in km/h.
|
||||
-- @param DCSTypes#Speed PatrolMaxSpeed The maximum speed of the @{Group} in km/h.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:SetSpeed( PatrolMinSpeed, PatrolMaxSpeed )
|
||||
self:F2( { PatrolMinSpeed, PatrolMaxSpeed } )
|
||||
|
||||
self.PatrolMinSpeed = PatrolMinSpeed
|
||||
self.PatrolMaxSpeed = PatrolMaxSpeed
|
||||
end
|
||||
|
||||
--- Sets the floor and ceiling altitude of the patrol.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param DCSTypes#Altitude PatrolFloorAltitude The lowest altitude in meters where to execute the patrol.
|
||||
-- @param DCSTypes#Altitude PatrolCeilingAltitude The highest altitude in meters where to execute the patrol.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:SetAltitude( PatrolFloorAltitude, PatrolCeilingAltitude )
|
||||
self:F2( { PatrolFloorAltitude, PatrolCeilingAltitude } )
|
||||
|
||||
self.PatrolFloorAltitude = PatrolFloorAltitude
|
||||
self.PatrolCeilingAltitude = PatrolCeilingAltitude
|
||||
end
|
||||
|
||||
|
||||
|
||||
--- @param Group#GROUP PatrolGroup
|
||||
function _NewPatrolRoute( PatrolGroup )
|
||||
|
||||
PatrolGroup:T( "NewPatrolRoute" )
|
||||
local PatrolZone = PatrolGroup:GetState( PatrolGroup, "PatrolZone" ) -- PatrolZone#PATROLZONE
|
||||
PatrolZone:NewPatrolRoute()
|
||||
end
|
||||
|
||||
--- Defines a new patrol route using the @{PatrolZone} parameters and settings.
|
||||
-- @param #PATROLZONE self
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:NewPatrolRoute()
|
||||
|
||||
self:F2()
|
||||
|
||||
local PatrolRoute = {}
|
||||
|
||||
if self.PatrolGroup:IsAlive() then
|
||||
--- Determine if the PatrolGroup is within the PatrolZone.
|
||||
-- If not, make a waypoint within the to that the PatrolGroup will fly at maximum speed to that point.
|
||||
|
||||
-- --- Calculate the current route point.
|
||||
-- local CurrentVec2 = self.PatrolGroup:GetPointVec2()
|
||||
-- local CurrentAltitude = self.PatrolGroup:GetUnit(1):GetAltitude()
|
||||
-- local CurrentPointVec3 = POINT_VEC3:New( CurrentVec2.x, CurrentAltitude, CurrentVec2.y )
|
||||
-- local CurrentRoutePoint = CurrentPointVec3:RoutePointAir(
|
||||
-- POINT_VEC3.RoutePointAltType.BARO,
|
||||
-- POINT_VEC3.RoutePointType.TurningPoint,
|
||||
-- POINT_VEC3.RoutePointAction.TurningPoint,
|
||||
-- ToPatrolZoneSpeed,
|
||||
-- true
|
||||
-- )
|
||||
--
|
||||
-- PatrolRoute[#PatrolRoute+1] = CurrentRoutePoint
|
||||
|
||||
self:T2( PatrolRoute )
|
||||
|
||||
if self.PatrolGroup:IsNotInZone( self.PatrolZone ) then
|
||||
--- Find a random 2D point in PatrolZone.
|
||||
local ToPatrolZoneVec2 = self.PatrolZone:GetRandomVec2()
|
||||
self:T2( ToPatrolZoneVec2 )
|
||||
|
||||
--- Define Speed and Altitude.
|
||||
local ToPatrolZoneAltitude = math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude )
|
||||
local ToPatrolZoneSpeed = self.PatrolMaxSpeed
|
||||
self:T2( ToPatrolZoneSpeed )
|
||||
|
||||
--- Obtain a 3D @{Point} from the 2D point + altitude.
|
||||
local ToPatrolZonePointVec3 = POINT_VEC3:New( ToPatrolZoneVec2.x, ToPatrolZoneAltitude, ToPatrolZoneVec2.y )
|
||||
|
||||
--- Create a route point of type air.
|
||||
local ToPatrolZoneRoutePoint = ToPatrolZonePointVec3:RoutePointAir(
|
||||
POINT_VEC3.RoutePointAltType.BARO,
|
||||
POINT_VEC3.RoutePointType.TurningPoint,
|
||||
POINT_VEC3.RoutePointAction.TurningPoint,
|
||||
ToPatrolZoneSpeed,
|
||||
true
|
||||
)
|
||||
|
||||
PatrolRoute[#PatrolRoute+1] = ToPatrolZoneRoutePoint
|
||||
|
||||
end
|
||||
|
||||
--- Define a random point in the @{Zone}. The AI will fly to that point within the zone.
|
||||
|
||||
--- Find a random 2D point in PatrolZone.
|
||||
local ToTargetVec2 = self.PatrolZone:GetRandomVec2()
|
||||
self:T2( ToTargetVec2 )
|
||||
|
||||
--- Define Speed and Altitude.
|
||||
local ToTargetAltitude = math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude )
|
||||
local ToTargetSpeed = math.random( self.PatrolMinSpeed, self.PatrolMaxSpeed )
|
||||
self:T2( { self.PatrolMinSpeed, self.PatrolMaxSpeed, ToTargetSpeed } )
|
||||
|
||||
--- Obtain a 3D @{Point} from the 2D point + altitude.
|
||||
local ToTargetPointVec3 = POINT_VEC3:New( ToTargetVec2.x, ToTargetAltitude, ToTargetVec2.y )
|
||||
|
||||
--- Create a route point of type air.
|
||||
local ToTargetRoutePoint = ToTargetPointVec3:RoutePointAir(
|
||||
POINT_VEC3.RoutePointAltType.BARO,
|
||||
POINT_VEC3.RoutePointType.TurningPoint,
|
||||
POINT_VEC3.RoutePointAction.TurningPoint,
|
||||
ToTargetSpeed,
|
||||
true
|
||||
)
|
||||
|
||||
--ToTargetPointVec3:SmokeRed()
|
||||
|
||||
PatrolRoute[#PatrolRoute+1] = ToTargetRoutePoint
|
||||
|
||||
--- Now we're going to do something special, we're going to call a function from a waypoint action at the PatrolGroup...
|
||||
self.PatrolGroup:WayPointInitialize( PatrolRoute )
|
||||
|
||||
--- Do a trick, link the NewPatrolRoute function of the PATROLGROUP object to the PatrolGroup in a temporary variable ...
|
||||
self.PatrolGroup:SetState( self.PatrolGroup, "PatrolZone", self )
|
||||
self.PatrolGroup:WayPointFunction( #PatrolRoute, 1, "_NewPatrolRoute" )
|
||||
|
||||
--- NOW ROUTE THE GROUP!
|
||||
self.PatrolGroup:WayPointExecute( 1, 2 )
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--- When the PatrolGroup is out of fuel, it is required that a new PatrolGroup is started, before the old PatrolGroup can return to the home base.
|
||||
-- Therefore, with a parameter and a calculation of the distance to the home base, the fuel treshold is calculated.
|
||||
-- When the fuel treshold is reached, the PatrolGroup will continue for a given time its patrol task in orbit, while a new PatrolGroup is targetted to the PATROLZONE.
|
||||
-- Once the time is finished, the old PatrolGroup will return to the base.
|
||||
-- @param #PATROLZONE self
|
||||
-- @param #number PatrolFuelTresholdPercentage The treshold in percentage (between 0 and 1) when the PatrolGroup is considered to get out of fuel.
|
||||
-- @param #number PatrolOutOfFuelOrbitTime The amount of seconds the out of fuel PatrolGroup will orbit before returning to the base.
|
||||
-- @return #PATROLZONE self
|
||||
function PATROLZONE:ManageFuel( PatrolFuelTresholdPercentage, PatrolOutOfFuelOrbitTime )
|
||||
|
||||
self.PatrolManageFuel = true
|
||||
self.PatrolFuelTresholdPercentage = PatrolFuelTresholdPercentage
|
||||
self.PatrolOutOfFuelOrbitTime = PatrolOutOfFuelOrbitTime
|
||||
|
||||
if self.PatrolGroup then
|
||||
self.PatrolOutOfFuelMonitor = SCHEDULER:New( self, self._MonitorOutOfFuelScheduled, {}, 1, 120, 0 )
|
||||
self.SpawnPatrolGroup = SPAWN:New( self.PatrolGroupTemplateName )
|
||||
end
|
||||
return self
|
||||
end
|
||||
|
||||
--- @param #PATROLZONE self
|
||||
function _MonitorOutOfFuelScheduled( self )
|
||||
self:F2( "_MonitorOutOfFuelScheduled" )
|
||||
|
||||
if self.PatrolGroup and self.PatrolGroup:IsAlive() then
|
||||
|
||||
local Fuel = self.PatrolGroup:GetUnit(1):GetFuel()
|
||||
if Fuel < self.PatrolFuelTresholdPercentage then
|
||||
local OldPatrolGroup = self.PatrolGroup
|
||||
local PatrolGroupTemplate = self.PatrolGroup:GetTemplate()
|
||||
|
||||
local OrbitTask = OldPatrolGroup:TaskOrbitCircle( math.random( self.PatrolFloorAltitude, self.PatrolCeilingAltitude ), self.PatrolMinSpeed )
|
||||
local TimedOrbitTask = OldPatrolGroup:TaskControlled( OrbitTask, OldPatrolGroup:TaskCondition(nil,nil,nil,nil,self.PatrolOutOfFuelOrbitTime,nil ) )
|
||||
OldPatrolGroup:SetTask( TimedOrbitTask, 10 )
|
||||
|
||||
local NewPatrolGroup = self.SpawnPatrolGroup:Spawn()
|
||||
self.PatrolGroup = NewPatrolGroup
|
||||
self:NewPatrolRoute()
|
||||
end
|
||||
else
|
||||
self.PatrolOutOfFuelMonitor:Stop()
|
||||
end
|
||||
end--- This module contains the AIBALANCER class.
|
||||
--
|
||||
-- ===
|
||||
--
|
||||
@ -21048,7 +21613,7 @@ function AIBALANCER:_ClientAliveMonitorScheduler()
|
||||
self.PatrolZone.PatrolFloorAltitude,
|
||||
self.PatrolZone.PatrolCeilingAltitude,
|
||||
self.PatrolZone.PatrolMinSpeed,
|
||||
self.PatrolPatrolMaxSpeed
|
||||
self.PatrolZone.PatrolMaxSpeed
|
||||
)
|
||||
|
||||
if self.PatrolZone.PatrolManageFuel == true then
|
||||
|
||||
@ -48,6 +48,7 @@ COPY /b Moose.lua + %1\Unit.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Zone.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Client.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Static.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Airbase.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Database.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Set.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Point.lua Moose.lua
|
||||
@ -73,6 +74,7 @@ COPY /b Moose.lua + %1\Movement.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Sead.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Escort.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\MissileTrainer.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\PatrolZone.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\AIBalancer.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\AirbasePolice.lua Moose.lua
|
||||
COPY /b Moose.lua + %1\Detection.lua Moose.lua
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,209 +0,0 @@
|
||||
-- View scripts
|
||||
-- Copyright (C) 2004, Eagle Dynamics.
|
||||
DisableCombatViews = false -- F5 & Ctrl-F5
|
||||
ExternalObjectsLockDistance = 10000.0
|
||||
ShowTargetInfo = false
|
||||
CameraTerrainRestriction = true
|
||||
hAngleRearDefault = 180
|
||||
vAngleRearDefault = -8.0
|
||||
vAngleRearMin = -90 -- -8.0
|
||||
vAngleRearMax = 90.0
|
||||
|
||||
dbg_shell = "weapons.shells.PKT_7_62_T" -- 23mm shell
|
||||
-- dbg_shell = "weapons.shells.2A64_152" -- 152mm shell
|
||||
dbg_shell_v0 = -1 -- Muzzle speed m/s (-1 - speed from shall database)
|
||||
dbg_shell_fire_rate = 60
|
||||
--reformatted per-unit data to be mod system friendly
|
||||
--this file is no longer should be edited for adding new flyable aircraft , DCS automatically check core database (i.e. where you define your aircraft in aircraft table just define ViewSettings and SnapViews tables)
|
||||
|
||||
function default_fighter_player(t)
|
||||
local res = {
|
||||
CameraViewAngleLimits = {20.000000,140.000000},
|
||||
CameraAngleRestriction = {false ,90.000000,0.500000},
|
||||
EyePoint = {0.05 ,0.000000 ,0.000000},
|
||||
limits_6DOF = {x = {-0.050000,0.4500000},y ={-0.300000,0.100000},z = {-0.220000,0.220000},roll = 90.000000},
|
||||
Allow360rotation = false,
|
||||
CameraAngleLimits = {200,-80.000000,110.000000},
|
||||
ShoulderSize = 0.2, -- move body when azimuth value more then 90 degrees
|
||||
}
|
||||
if t then
|
||||
for i,o in pairs(t) do
|
||||
res[i] = o
|
||||
end
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
function fulcrum()
|
||||
return {
|
||||
Cockpit = {
|
||||
default_fighter_player({CockpitLocalPoint = {4.71,1.28,0.000000}})
|
||||
},
|
||||
Chase = {
|
||||
LocalPoint = {1.220000,3.750000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-15.080000,6.350000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
end
|
||||
|
||||
ViewSettings = {}
|
||||
ViewSettings["A-10A"] = {
|
||||
Cockpit = {
|
||||
[1] = default_fighter_player({CockpitLocalPoint = {4.300000,1.282000,0.000000},
|
||||
EyePoint = {0.000000,0.000000,0.000000},
|
||||
limits_6DOF = {x = {-0.050000,0.600000},
|
||||
y = {-0.300000,0.100000},
|
||||
z = {-0.250000,0.250000},
|
||||
roll = 90.000000}}),
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {0.600000,3.682000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-27.000000,12.000000,0.000000},
|
||||
AnglesDefault = {0.000000,-12.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["A-10C"] = {
|
||||
Cockpit = {
|
||||
[1] = default_fighter_player({CockpitLocalPoint = {4.300000,1.282000,0.000000},
|
||||
EyePoint = {0.000000,0.000000,0.000000},
|
||||
limits_6DOF = {x = {-0.050000,0.600000},
|
||||
y = {-0.300000,0.100000},
|
||||
z = {-0.250000,0.250000},
|
||||
roll = 90.000000}}),
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {0.600000,3.682000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-27.000000,12.000000,0.000000},
|
||||
AnglesDefault = {0.000000,-12.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["F-15C"] = {
|
||||
Cockpit = {
|
||||
[1] = default_fighter_player({CockpitLocalPoint = {6.210000,1.204000,0.000000}})-- player slot 1
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {2.510000,3.604000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-13.790000,6.204000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["Ka-50"] = {
|
||||
Cockpit = {
|
||||
[1] = {-- player slot 1
|
||||
CockpitLocalPoint = {3.188000,0.390000,0.000000},
|
||||
CameraViewAngleLimits = {20.000000,120.000000},
|
||||
CameraAngleRestriction = {false,60.000000,0.400000},
|
||||
CameraAngleLimits = {140.000000,-65.000000,90.000000},
|
||||
EyePoint = {0.090000,0.000000,0.000000},
|
||||
limits_6DOF = {x = {-0.020000,0.350000},y ={-0.150000,0.165000},z = {-0.170000,0.170000},roll = 90.000000},
|
||||
},
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {-0.512000,2.790000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-16.812000,5.390000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["MiG-29A"] = fulcrum()
|
||||
ViewSettings["MiG-29G"] = fulcrum()
|
||||
ViewSettings["MiG-29S"] = fulcrum()
|
||||
|
||||
ViewSettings["P-51D"] = {
|
||||
Cockpit = {
|
||||
[1] = {-- player slot 1
|
||||
CockpitLocalPoint = {-1.500000,0.618000,0.000000},
|
||||
CameraViewAngleLimits = {20.000000,120.000000},
|
||||
CameraAngleRestriction = {false,90.000000,0.500000},
|
||||
CameraAngleLimits = {200,-80.000000,90.000000},
|
||||
EyePoint = {0.025000,0.100000,0.000000},
|
||||
ShoulderSize = 0.15,
|
||||
Allow360rotation = false,
|
||||
limits_6DOF = {x = {-0.050000,0.450000},y ={-0.200000,0.200000},z = {-0.220000,0.220000},roll = 90.000000},
|
||||
},
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {0.200000,-0.652000,-0.650000},
|
||||
AnglesDefault = {0.000000,0.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-21.500000,5.618000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["Su-25"] = {
|
||||
Cockpit = {
|
||||
[1] = default_fighter_player({CockpitLocalPoint = {3.352000,0.506000,0.000000}}),-- player slot 1
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {-0.348000,2.906000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-16.648001,5.506000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["Su-25T"] = {
|
||||
Cockpit = {
|
||||
[1] = default_fighter_player({CockpitLocalPoint = {3.406000,0.466000,0.000000}}),-- player slot 1
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {-0.294000,2.866000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-16.594000,5.466000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["Su-25TM"] = {
|
||||
Cockpit = {
|
||||
[1] = {-- player slot 1
|
||||
CockpitLocalPoint = {4.000000,1.000000,0.000000},
|
||||
CameraViewAngleLimits = {20.000000,140.000000},
|
||||
CameraAngleRestriction = {true,90.000000,0.400000},
|
||||
CameraAngleLimits = {160.000000,-70.000000,90.000000},
|
||||
EyePoint = {0.000000,0.000000,0.000000},
|
||||
limits_6DOF = {x = {-0.200000,0.200000},y ={-0.200000,0.200000},z = {-0.200000,0.200000},roll = 60.000000},
|
||||
},
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {4.000000,2.000000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {4.000000,2.000000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
ViewSettings["Su-27"] = {
|
||||
Cockpit = {
|
||||
[1] = default_fighter_player({CockpitLocalPoint = {7.959000,1.419000,0.000000}})-- player slot 1
|
||||
}, -- Cockpit
|
||||
Chase = {
|
||||
LocalPoint = {4.259000,3.819000,0.000000},
|
||||
AnglesDefault = {180.000000,-8.000000},
|
||||
}, -- Chase
|
||||
Arcade = {
|
||||
LocalPoint = {-12.041000,6.419000,0.000000},
|
||||
AnglesDefault = {0.000000,-8.000000},
|
||||
}, -- Arcade
|
||||
}
|
||||
|
||||
ViewSettings["Su-33"] = ViewSettings["Su-27"]
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,128 +0,0 @@
|
||||
-- View scripts
|
||||
-- Copyright (C) 2004, Eagle Dynamics.
|
||||
|
||||
CockpitMouse = true --false
|
||||
CockpitMouseSpeedSlow = 1.0
|
||||
CockpitMouseSpeedNormal = 10.0
|
||||
CockpitMouseSpeedFast = 20.0
|
||||
CockpitKeyboardAccelerationSlow = 5.0
|
||||
CockpitKeyboardAccelerationNormal = 30.0
|
||||
CockpitKeyboardAccelerationFast = 80.0
|
||||
CockpitKeyboardZoomAcceleration = 300.0
|
||||
DisableSnapViewsSaving = false
|
||||
UseDefaultSnapViews = true
|
||||
CockpitPanStepHor = 45.0
|
||||
CockpitPanStepVert = 30.0
|
||||
CockpitNyMove = true
|
||||
|
||||
CockpitHAngleAccelerateTimeMax = 0.15
|
||||
CockpitVAngleAccelerateTimeMax = 0.15
|
||||
CockpitZoomAccelerateTimeMax = 0.2
|
||||
|
||||
function NaturalHeadMoving(tang, roll, omz)
|
||||
local r = roll
|
||||
if r > 90.0 then
|
||||
r = 180.0 - r
|
||||
elseif roll < -90.0 then
|
||||
r = -180.0 - r
|
||||
end
|
||||
local hAngle = -0.25 * r
|
||||
local vAngle = math.min(math.max(0.0, 0.4 * tang + 45.0 * omz), 90.0)
|
||||
return hAngle, vAngle
|
||||
end
|
||||
|
||||
ExternalMouse = true
|
||||
ExternalMouseSpeedSlow = 1.0
|
||||
ExternalMouseSpeedNormal = 5.0
|
||||
ExternalMouseSpeedFast = 20.0
|
||||
ExternalViewAngleMin = 3.0
|
||||
ExternalViewAngleMax = 170.0
|
||||
ExternalViewAngleDefault = 60.0
|
||||
ExternalKeyboardZoomAcceleration = 30.0
|
||||
ExternalKeyboardZoomAccelerateTimeMax = 1.0
|
||||
ExplosionExpoTime = 4.0
|
||||
ExternalKeyboardAccelerationSlow = 1.0
|
||||
ExternalKeyboardAccelerationNormal = 10.0
|
||||
ExternalKeyboardAccelerationFast = 30.0
|
||||
ExternalHAngleAccelerateTimeMax = 3.0
|
||||
ExternalVAngleAccelerateTimeMax = 3.0
|
||||
ExternalDistAccelerateTimeMax = 3.0
|
||||
ExternalHAngleLocalAccelerateTimeMax = 3.0
|
||||
ExternalVAngleLocalAccelerateTimeMax = 3.0
|
||||
ExternalAngleNormalDiscreteStep = 15.0/ExternalKeyboardAccelerationNormal -- When 'S' is pressed only
|
||||
ChaseCameraNyMove = true
|
||||
FreeCameraAngleIncrement = 3.0
|
||||
FreeCameraDistanceIncrement = 200.0
|
||||
FreeCameraLeftRightIncrement = 2.0
|
||||
FreeCameraAltitudeIncrement = 2.0
|
||||
FreeCameraScalarSpeedAcceleration = 0.1
|
||||
xMinMap = -300000
|
||||
xMaxMap = 500000
|
||||
yMinMap = -400000
|
||||
yMaxMap = 200000
|
||||
dxMap = 150000
|
||||
dyMap = 100000
|
||||
|
||||
head_roll_shaking = true
|
||||
head_roll_shaking_max = 30.0
|
||||
head_roll_shaking_compensation_gain = 0.3
|
||||
|
||||
-- CameraJiggle() and CameraFloat() functions make camera position
|
||||
-- dependent on FPS so be careful in using the Shift-J command with tracks, please.
|
||||
-- uncomment to use custom jiggle functions
|
||||
--[[
|
||||
function CameraJiggle(t,rnd1,rnd2,rnd3)
|
||||
local rotX, rotY, rotZ
|
||||
rotX = 0.05 * rnd1 * math.sin(37.0 * (t - 0.0))
|
||||
rotY = 0.05 * rnd2 * math.sin(41.0 * (t - 1.0))
|
||||
rotZ = 0.05 * rnd3 * math.sin(53.0 * (t - 2.0))
|
||||
return rotX, rotY, rotZ
|
||||
end
|
||||
|
||||
function CameraFloat(t)
|
||||
local dX, dY, dZ
|
||||
dX = 0.61 * math.sin(0.7 * t) + 0.047 * math.sin(1.6 * t);
|
||||
dY = 0.43 * math.sin(0.6 * t) + 0.067 * math.sin(1.7 * t);
|
||||
dZ = 0.53 * math.sin(1.0 * t) + 0.083 * math.sin(1.9 * t);
|
||||
return dX, dY, dZ
|
||||
end
|
||||
--]]
|
||||
--Debug keys
|
||||
|
||||
DEBUG_TEXT = 1
|
||||
DEBUG_GEOMETRY = 2
|
||||
|
||||
debug_keys = {
|
||||
[DEBUG_TEXT] = 1,
|
||||
[DEBUG_GEOMETRY] = 1
|
||||
}
|
||||
|
||||
function onDebugCommand(command)
|
||||
if command == 10000 then
|
||||
if debug_keys[DEBUG_TEXT] ~= 0 or debug_keys[DEBUG_GEOMETRY] ~= 0 then
|
||||
debug_keys[DEBUG_GEOMETRY] = 0
|
||||
debug_keys[DEBUG_TEXT] = 0
|
||||
else
|
||||
debug_keys[DEBUG_GEOMETRY] = 1
|
||||
debug_keys[DEBUG_TEXT] = 1
|
||||
end
|
||||
elseif command == 10001 then
|
||||
if debug_keys[DEBUG_TEXT] ~= 0 then
|
||||
debug_keys[DEBUG_TEXT] = 0
|
||||
else
|
||||
debug_keys[DEBUG_TEXT] = 1
|
||||
end
|
||||
elseif command == 10002 then
|
||||
if debug_keys[DEBUG_GEOMETRY] ~= 0 then
|
||||
debug_keys[DEBUG_GEOMETRY] = 0
|
||||
else
|
||||
debug_keys[DEBUG_GEOMETRY] = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- gain values for TrackIR , to unify responce on diffrent types of aircraft
|
||||
TrackIR_gain_x = -0.6
|
||||
TrackIR_gain_y = 0.3
|
||||
TrackIR_gain_z = -0.25
|
||||
TrackIR_gain_roll = -90
|
||||
@ -1,880 +0,0 @@
|
||||
SAT_SYS_GLONASS = 0
|
||||
SAT_SYS_GPS = 1
|
||||
|
||||
almanac = {}
|
||||
--GPS
|
||||
almanac[0] = {}
|
||||
almanac[0]["System"] = SAT_SYS_GPS
|
||||
almanac[0]["Number"] = 1
|
||||
almanac[0]["Orbital"] = "F"
|
||||
almanac[0]["Eccentricity"] = 6.294000e-003
|
||||
almanac[0]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[0]["Orbital_Inclination"] = 9.885676e-001
|
||||
almanac[0]["Rate_of_Right_Ascen"] = -7.862702e-009
|
||||
almanac[0]["SQRT_A"] = 5.153700e+003
|
||||
almanac[0]["Right_Ascen_at_Week"] = 8.096750e-001
|
||||
almanac[0]["Argument_of_Perigee"] = -1.777773e+000
|
||||
almanac[0]["Mean_Anom"] = -5.315745e-001
|
||||
almanac[0]["week"] = 1390
|
||||
|
||||
almanac[1] = {}
|
||||
almanac[1]["System"] = SAT_SYS_GPS
|
||||
almanac[1]["Number"] = 2
|
||||
almanac[1]["Orbital"] = "C"
|
||||
almanac[1]["Eccentricity"] = 8.794000e-003
|
||||
almanac[1]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[1]["Orbital_Inclination"] = 9.487811e-001
|
||||
almanac[1]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[1]["SQRT_A"] = 5.153700e+003
|
||||
almanac[1]["Right_Ascen_at_Week"] = -1.329172e+000
|
||||
almanac[1]["Argument_of_Perigee"] = 2.138637e+000
|
||||
almanac[1]["Mean_Anom"] = 7.311702e-001
|
||||
almanac[1]["week"] = 1390
|
||||
|
||||
almanac[2] = {}
|
||||
almanac[2]["System"] = SAT_SYS_GPS
|
||||
almanac[2]["Number"] = 3
|
||||
almanac[2]["Orbital"] = "F"
|
||||
almanac[2]["Eccentricity"] = 8.424000e-003
|
||||
almanac[2]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[2]["Orbital_Inclination"] = 9.262804e-001
|
||||
almanac[2]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[2]["SQRT_A"] = 5.153600e+003
|
||||
almanac[2]["Right_Ascen_at_Week"] = -2.341514e+000
|
||||
almanac[2]["Argument_of_Perigee"] = 6.749357e-001
|
||||
almanac[2]["Mean_Anom"] = -2.296153e-001
|
||||
almanac[2]["week"] = 1389
|
||||
|
||||
almanac[3] = {}
|
||||
almanac[3]["System"] = SAT_SYS_GPS
|
||||
almanac[3]["Number"] = 4
|
||||
almanac[3]["Orbital"] = "D"
|
||||
almanac[3]["Eccentricity"] = 7.413000e-003
|
||||
almanac[3]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[3]["Orbital_Inclination"] = 9.482889e-001
|
||||
almanac[3]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[3]["SQRT_A"] = 5.153600e+003
|
||||
almanac[3]["Right_Ascen_at_Week"] = -1.309589e+000
|
||||
almanac[3]["Argument_of_Perigee"] = 1.623504e-001
|
||||
almanac[3]["Mean_Anom"] = -3.022943e+000
|
||||
almanac[3]["week"] = 1390
|
||||
|
||||
almanac[4] = {}
|
||||
almanac[4]["System"] = SAT_SYS_GPS
|
||||
almanac[4]["Number"] = 5
|
||||
almanac[4]["Orbital"] = "B"
|
||||
almanac[4]["Eccentricity"] = 7.432000e-003
|
||||
almanac[4]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[4]["Orbital_Inclination"] = 9.387437e-001
|
||||
almanac[4]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[4]["SQRT_A"] = 5.153700e+003
|
||||
almanac[4]["Right_Ascen_at_Week"] = 2.779487e+000
|
||||
almanac[4]["Argument_of_Perigee"] = 1.099033e+000
|
||||
almanac[4]["Mean_Anom"] = 2.970984e+000
|
||||
almanac[4]["week"] = 1390
|
||||
|
||||
almanac[5] = {}
|
||||
almanac[5]["System"] = SAT_SYS_GPS
|
||||
almanac[5]["Number"] = 6
|
||||
almanac[5]["Orbital"] = "C"
|
||||
almanac[5]["Eccentricity"] = 6.020000e-003
|
||||
almanac[5]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[5]["Orbital_Inclination"] = 9.337591e-001
|
||||
almanac[5]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[5]["SQRT_A"] = 5.153600e+003
|
||||
almanac[5]["Right_Ascen_at_Week"] = -2.407627e+000
|
||||
almanac[5]["Argument_of_Perigee"] = -1.788263e+000
|
||||
almanac[5]["Mean_Anom"] = -2.149877e+000
|
||||
almanac[5]["week"] = 1390
|
||||
|
||||
almanac[6] = {}
|
||||
almanac[6]["System"] = SAT_SYS_GPS
|
||||
almanac[6]["Number"] = 7
|
||||
almanac[6]["Orbital"] = "C"
|
||||
almanac[6]["Eccentricity"] = 1.052400e-002
|
||||
almanac[6]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[6]["Orbital_Inclination"] = 9.353229e-001
|
||||
almanac[6]["Rate_of_Right_Ascen"] = -8.080868e-009
|
||||
almanac[6]["SQRT_A"] = 5.153700e+003
|
||||
almanac[6]["Right_Ascen_at_Week"] = -2.433580e+000
|
||||
almanac[6]["Argument_of_Perigee"] = -1.767301e+000
|
||||
almanac[6]["Mean_Anom"] = -3.141503e+000
|
||||
almanac[6]["week"] = 1390
|
||||
|
||||
almanac[7] = {}
|
||||
almanac[7]["System"] = SAT_SYS_GPS
|
||||
almanac[7]["Number"] = 8
|
||||
almanac[7]["Orbital"] = "A"
|
||||
almanac[7]["Eccentricity"] = 9.822000e-003
|
||||
almanac[7]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[7]["Orbital_Inclination"] = 9.741390e-001
|
||||
almanac[7]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[7]["SQRT_A"] = 5.153600e+003
|
||||
almanac[7]["Right_Ascen_at_Week"] = 1.857849e+000
|
||||
almanac[7]["Argument_of_Perigee"] = 2.674034e+000
|
||||
almanac[7]["Mean_Anom"] = -2.009745e+000
|
||||
almanac[7]["week"] = 1390
|
||||
|
||||
almanac[8] = {}
|
||||
almanac[8]["System"] = SAT_SYS_GPS
|
||||
almanac[8]["Number"] = 9
|
||||
almanac[8]["Orbital"] = "A"
|
||||
almanac[8]["Eccentricity"] = 1.839300e-002
|
||||
almanac[8]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[8]["Orbital_Inclination"] = 9.617541e-001
|
||||
almanac[8]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[8]["SQRT_A"] = 5.153600e+003
|
||||
almanac[8]["Right_Ascen_at_Week"] = 1.777005e+000
|
||||
almanac[8]["Argument_of_Perigee"] = 1.274962e+000
|
||||
almanac[8]["Mean_Anom"] = -2.349578e+000
|
||||
almanac[8]["week"] = 1390
|
||||
|
||||
almanac[9] = {}
|
||||
almanac[9]["System"] = SAT_SYS_GPS
|
||||
almanac[9]["Number"] = 10
|
||||
almanac[9]["Orbital"] = "E"
|
||||
almanac[9]["Eccentricity"] = 7.061000e-003
|
||||
almanac[9]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[9]["Orbital_Inclination"] = 9.728876e-001
|
||||
almanac[9]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[9]["SQRT_A"] = 5.153600e+003
|
||||
almanac[9]["Right_Ascen_at_Week"] = -2.563014e-001
|
||||
almanac[9]["Argument_of_Perigee"] = 4.377980e-001
|
||||
almanac[9]["Mean_Anom"] = 1.210716e+000
|
||||
almanac[9]["week"] = 1390
|
||||
|
||||
almanac[10] = {}
|
||||
almanac[10]["System"] = SAT_SYS_GPS
|
||||
almanac[10]["Number"] = 11
|
||||
almanac[10]["Orbital"] = "D"
|
||||
almanac[10]["Eccentricity"] = 5.744000e-003
|
||||
almanac[10]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[10]["Orbital_Inclination"] = 8.959309e-001
|
||||
almanac[10]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[10]["SQRT_A"] = 5.153600e+003
|
||||
almanac[10]["Right_Ascen_at_Week"] = -1.478816e+000
|
||||
almanac[10]["Argument_of_Perigee"] = 3.750011e-001
|
||||
almanac[10]["Mean_Anom"] = -1.522048e+000
|
||||
almanac[10]["week"] = 1390
|
||||
|
||||
almanac[11] = {}
|
||||
almanac[11]["System"] = SAT_SYS_GPS
|
||||
almanac[11]["Number"] = 13
|
||||
almanac[11]["Orbital"] = "F"
|
||||
almanac[11]["Eccentricity"] = 3.088000e-003
|
||||
almanac[11]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[11]["Orbital_Inclination"] = 9.927564e-001
|
||||
almanac[11]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[11]["SQRT_A"] = 5.153700e+003
|
||||
almanac[11]["Right_Ascen_at_Week"] = 7.956600e-001
|
||||
almanac[11]["Argument_of_Perigee"] = 1.279395e+000
|
||||
almanac[11]["Mean_Anom"] = 1.004349e+000
|
||||
almanac[11]["week"] = 1390
|
||||
|
||||
almanac[12] = {}
|
||||
almanac[12]["System"] = SAT_SYS_GPS
|
||||
almanac[12]["Number"] = 14
|
||||
almanac[12]["Orbital"] = "F"
|
||||
almanac[12]["Eccentricity"] = 2.591000e-003
|
||||
almanac[12]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[12]["Orbital_Inclination"] = 9.868729e-001
|
||||
almanac[12]["Rate_of_Right_Ascen"] = -7.885391e-009
|
||||
almanac[12]["SQRT_A"] = 5.153600e+003
|
||||
almanac[12]["Right_Ascen_at_Week"] = 7.819592e-001
|
||||
almanac[12]["Argument_of_Perigee"] = -2.158621e+000
|
||||
almanac[12]["Mean_Anom"] = 5.412611e-001
|
||||
almanac[12]["week"] = 1390
|
||||
|
||||
almanac[13] = {}
|
||||
almanac[13]["System"] = SAT_SYS_GPS
|
||||
almanac[13]["Number"] = 15
|
||||
almanac[13]["Orbital"] = "D"
|
||||
almanac[13]["Eccentricity"] = 9.828000e-003
|
||||
almanac[13]["Time_of_Applicability"] = 3.194880e+005
|
||||
almanac[13]["Orbital_Inclination"] = 9.554204e-001
|
||||
almanac[13]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[13]["SQRT_A"] = 5.153600e+003
|
||||
almanac[13]["Right_Ascen_at_Week"] = -1.123869e+000
|
||||
almanac[13]["Argument_of_Perigee"] = 2.690266e+000
|
||||
almanac[13]["Mean_Anom"] = 2.220476e+000
|
||||
almanac[13]["week"] = 1389
|
||||
|
||||
almanac[14] = {}
|
||||
almanac[14]["System"] = SAT_SYS_GPS
|
||||
almanac[14]["Number"] = 16
|
||||
almanac[14]["Orbital"] = "B"
|
||||
almanac[14]["Eccentricity"] = 3.494000e-003
|
||||
almanac[14]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[14]["Orbital_Inclination"] = 9.629340e-001
|
||||
almanac[14]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[14]["SQRT_A"] = 5.153700e+003
|
||||
almanac[14]["Right_Ascen_at_Week"] = 2.873124e+000
|
||||
almanac[14]["Argument_of_Perigee"] = -7.819243e-001
|
||||
almanac[14]["Mean_Anom"] = 2.623629e+000
|
||||
almanac[14]["week"] = 1390
|
||||
|
||||
almanac[15] = {}
|
||||
almanac[15]["System"] = SAT_SYS_GPS
|
||||
almanac[15]["Number"] = 17
|
||||
almanac[15]["Orbital"] = "C"
|
||||
almanac[15]["Eccentricity"] = 2.141000e-003
|
||||
almanac[15]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[15]["Orbital_Inclination"] = 9.601170e-001
|
||||
almanac[15]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[15]["SQRT_A"] = 5.153700e+003
|
||||
almanac[15]["Right_Ascen_at_Week"] = -2.371499e+000
|
||||
almanac[15]["Argument_of_Perigee"] = 3.087694e+000
|
||||
almanac[15]["Mean_Anom"] = 1.611217e+000
|
||||
almanac[15]["week"] = 1390
|
||||
|
||||
almanac[16] = {}
|
||||
almanac[16]["System"] = SAT_SYS_GPS
|
||||
almanac[16]["Number"] = 18
|
||||
almanac[16]["Orbital"] = "E"
|
||||
almanac[16]["Eccentricity"] = 7.636000e-003
|
||||
almanac[16]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[16]["Orbital_Inclination"] = 9.569597e-001
|
||||
almanac[16]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[16]["SQRT_A"] = 5.153700e+003
|
||||
almanac[16]["Right_Ascen_at_Week"] = -2.359858e-001
|
||||
almanac[16]["Argument_of_Perigee"] = -2.649216e+000
|
||||
almanac[16]["Mean_Anom"] = 2.675029e+000
|
||||
almanac[16]["week"] = 1390
|
||||
|
||||
almanac[17] = {}
|
||||
almanac[17]["System"] = SAT_SYS_GPS
|
||||
almanac[17]["Number"] = 19
|
||||
almanac[17]["Orbital"] = "C"
|
||||
almanac[17]["Eccentricity"] = 3.602000e-003
|
||||
almanac[17]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[17]["Orbital_Inclination"] = 9.580209e-001
|
||||
almanac[17]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[17]["SQRT_A"] = 5.153600e+003
|
||||
almanac[17]["Right_Ascen_at_Week"] = -2.312385e+000
|
||||
almanac[17]["Argument_of_Perigee"] = -1.161079e+000
|
||||
almanac[17]["Mean_Anom"] = 1.310619e+000
|
||||
almanac[17]["week"] = 1390
|
||||
|
||||
almanac[18] = {}
|
||||
almanac[18]["System"] = SAT_SYS_GPS
|
||||
almanac[18]["Number"] = 20
|
||||
almanac[18]["Orbital"] = "E"
|
||||
almanac[18]["Eccentricity"] = 2.796000e-003
|
||||
almanac[18]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[18]["Orbital_Inclination"] = 9.564693e-001
|
||||
almanac[18]["Rate_of_Right_Ascen"] = -7.908080e-009
|
||||
almanac[18]["SQRT_A"] = 5.153600e+003
|
||||
almanac[18]["Right_Ascen_at_Week"] = -2.889565e-001
|
||||
almanac[18]["Argument_of_Perigee"] = 1.379612e+000
|
||||
almanac[18]["Mean_Anom"] = 2.461750e+000
|
||||
almanac[18]["week"] = 1390
|
||||
|
||||
almanac[19] = {}
|
||||
almanac[19]["System"] = SAT_SYS_GPS
|
||||
almanac[19]["Number"] = 21
|
||||
almanac[19]["Orbital"] = "D"
|
||||
almanac[19]["Eccentricity"] = 1.162900e-002
|
||||
almanac[19]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[19]["Orbital_Inclination"] = 9.418592e-001
|
||||
almanac[19]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[19]["SQRT_A"] = 5.153600e+003
|
||||
almanac[19]["Right_Ascen_at_Week"] = -1.289972e+000
|
||||
almanac[19]["Argument_of_Perigee"] = -2.923686e+000
|
||||
almanac[19]["Mean_Anom"] = -2.349194e+000
|
||||
almanac[19]["week"] = 1390
|
||||
|
||||
almanac[20] = {}
|
||||
almanac[20]["System"] = SAT_SYS_GPS
|
||||
almanac[20]["Number"] = 22
|
||||
almanac[20]["Orbital"] = "E"
|
||||
almanac[20]["Eccentricity"] = 4.893000e-003
|
||||
almanac[20]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[20]["Orbital_Inclination"] = 9.545093e-001
|
||||
almanac[20]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[20]["SQRT_A"] = 5.153600e+003
|
||||
almanac[20]["Right_Ascen_at_Week"] = -2.280969e-001
|
||||
almanac[20]["Argument_of_Perigee"] = -1.674502e+000
|
||||
almanac[20]["Mean_Anom"] = 1.106852e+000
|
||||
almanac[20]["week"] = 1390
|
||||
|
||||
almanac[21] = {}
|
||||
almanac[21]["System"] = SAT_SYS_GPS
|
||||
almanac[21]["Number"] = 23
|
||||
almanac[21]["Orbital"] = "F"
|
||||
almanac[21]["Eccentricity"] = 4.822000e-003
|
||||
almanac[21]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[21]["Orbital_Inclination"] = 9.691247e-001
|
||||
almanac[21]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[21]["SQRT_A"] = 5.153700e+003
|
||||
almanac[21]["Right_Ascen_at_Week"] = 7.667399e-001
|
||||
almanac[21]["Argument_of_Perigee"] = 2.497634e+000
|
||||
almanac[21]["Mean_Anom"] = 3.184700e-001
|
||||
almanac[21]["week"] = 1390
|
||||
|
||||
almanac[22] = {}
|
||||
almanac[22]["System"] = SAT_SYS_GPS
|
||||
almanac[22]["Number"] = 24
|
||||
almanac[22]["Orbital"] = "D"
|
||||
almanac[22]["Eccentricity"] = 9.277000e-003
|
||||
almanac[22]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[22]["Orbital_Inclination"] = 9.585183e-001
|
||||
almanac[22]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[22]["SQRT_A"] = 5.153900e+003
|
||||
almanac[22]["Right_Ascen_at_Week"] = -1.274840e+000
|
||||
almanac[22]["Argument_of_Perigee"] = -8.815651e-001
|
||||
almanac[22]["Mean_Anom"] = -1.695551e+000
|
||||
almanac[22]["week"] = 1390
|
||||
|
||||
almanac[23] = {}
|
||||
almanac[23]["System"] = SAT_SYS_GPS
|
||||
almanac[23]["Number"] = 25
|
||||
almanac[23]["Orbital"] = "A"
|
||||
almanac[23]["Eccentricity"] = 1.257400e-002
|
||||
almanac[23]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[23]["Orbital_Inclination"] = 9.551027e-001
|
||||
almanac[23]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[23]["SQRT_A"] = 5.153600e+003
|
||||
almanac[23]["Right_Ascen_at_Week"] = 1.721853e+000
|
||||
almanac[23]["Argument_of_Perigee"] = -1.329870e+000
|
||||
almanac[23]["Mean_Anom"] = -1.769623e+000
|
||||
almanac[23]["week"] = 1390
|
||||
|
||||
almanac[24] = {}
|
||||
almanac[24]["System"] = SAT_SYS_GPS
|
||||
almanac[24]["Number"] = 26
|
||||
almanac[24]["Orbital"] = "F"
|
||||
almanac[24]["Eccentricity"] = 1.745700e-002
|
||||
almanac[24]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[24]["Orbital_Inclination"] = 9.908749e-001
|
||||
almanac[24]["Rate_of_Right_Ascen"] = -7.840012e-009
|
||||
almanac[24]["SQRT_A"] = 5.153700e+003
|
||||
almanac[24]["Right_Ascen_at_Week"] = 7.961836e-001
|
||||
almanac[24]["Argument_of_Perigee"] = 8.161502e-001
|
||||
almanac[24]["Mean_Anom"] = -5.841961e-001
|
||||
almanac[24]["week"] = 1390
|
||||
|
||||
almanac[25] = {}
|
||||
almanac[25]["System"] = SAT_SYS_GPS
|
||||
almanac[25]["Number"] = 27
|
||||
almanac[25]["Orbital"] = "A"
|
||||
almanac[25]["Eccentricity"] = 1.991000e-002
|
||||
almanac[25]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[25]["Orbital_Inclination"] = 9.596563e-001
|
||||
almanac[25]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[25]["SQRT_A"] = 5.153600e+003
|
||||
almanac[25]["Right_Ascen_at_Week"] = 1.754124e+000
|
||||
almanac[25]["Argument_of_Perigee"] = -1.900854e+000
|
||||
almanac[25]["Mean_Anom"] = 3.046487e+000
|
||||
almanac[25]["week"] = 1390
|
||||
|
||||
almanac[26] = {}
|
||||
almanac[26]["System"] = SAT_SYS_GPS
|
||||
almanac[26]["Number"] = 28
|
||||
almanac[26]["Orbital"] = "B"
|
||||
almanac[26]["Eccentricity"] = 1.162800e-002
|
||||
almanac[26]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[26]["Orbital_Inclination"] = 9.610106e-001
|
||||
almanac[26]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[26]["SQRT_A"] = 5.153600e+003
|
||||
almanac[26]["Right_Ascen_at_Week"] = 2.882583e+000
|
||||
almanac[26]["Argument_of_Perigee"] = -2.242868e+000
|
||||
almanac[26]["Mean_Anom"] = 1.860642e+000
|
||||
almanac[26]["week"] = 1390
|
||||
|
||||
almanac[27] = {}
|
||||
almanac[27]["System"] = SAT_SYS_GPS
|
||||
almanac[27]["Number"] = 29
|
||||
almanac[27]["Orbital"] = "F"
|
||||
almanac[27]["Eccentricity"] = 9.462000e-003
|
||||
almanac[27]["Time_of_Applicability"] = 1.474560e+005
|
||||
almanac[27]["Orbital_Inclination"] = 9.874838e-001
|
||||
almanac[27]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[27]["SQRT_A"] = 5.153700e+003
|
||||
almanac[27]["Right_Ascen_at_Week"] = 7.647503e-001
|
||||
almanac[27]["Argument_of_Perigee"] = -8.614589e-001
|
||||
almanac[27]["Mean_Anom"] = -4.488983e-001
|
||||
almanac[27]["week"] = 1390
|
||||
|
||||
almanac[28] = {}
|
||||
almanac[28]["System"] = SAT_SYS_GPS
|
||||
almanac[28]["Number"] = 30
|
||||
almanac[28]["Orbital"] = "B"
|
||||
almanac[28]["Eccentricity"] = 9.296000e-003
|
||||
almanac[28]["Time_of_Applicability"] = 5.898240e+005
|
||||
almanac[28]["Orbital_Inclination"] = 9.452992e-001
|
||||
almanac[28]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[28]["SQRT_A"] = 5.153600e+003
|
||||
almanac[28]["Right_Ascen_at_Week"] = 2.826698e+000
|
||||
almanac[28]["Argument_of_Perigee"] = 1.306413e+000
|
||||
almanac[28]["Mean_Anom"] = 2.148725e+000
|
||||
almanac[28]["week"] = 1390
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--GLONASS
|
||||
--1 îðáèòàëüíàÿ ïëîñêîñòü, íîìåðà 1-8
|
||||
almanac[29] = {}
|
||||
almanac[29]["System"] = SAT_SYS_GLONASS
|
||||
almanac[29]["Number"] = 1
|
||||
almanac[29]["Orbital"] = 1
|
||||
almanac[29]["GLONASS_Data"] = {}
|
||||
almanac[29]["GLONASS_Data"]["NKU_Number"] = 796
|
||||
almanac[29]["GLONASS_Data"]["Cosmos_Number"] = 2411
|
||||
almanac[29]["Eccentricity"] = 1.184000e-003
|
||||
almanac[29]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[29]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[29]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[29]["SQRT_A"] = 5.050500e+003
|
||||
almanac[29]["Right_Ascen_at_Week"] = 5.979807e+000
|
||||
almanac[29]["Argument_of_Perigee"] = 2.622634e+000
|
||||
almanac[29]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[29]["week"] = 1390
|
||||
almanac[29]["Commit_date"] = "06.02.2005"
|
||||
almanac[29]["Life_dates"] = {}
|
||||
|
||||
almanac[30] = {}
|
||||
almanac[30]["System"] = SAT_SYS_GLONASS
|
||||
almanac[30]["Number"] = 2
|
||||
almanac[30]["Orbital"] = 1
|
||||
almanac[30]["GLONASS_Data"] = {}
|
||||
almanac[30]["GLONASS_Data"]["NKU_Number"] = 794
|
||||
almanac[30]["GLONASS_Data"]["Cosmos_Number"] = 2401
|
||||
almanac[30]["Eccentricity"] = 4.486000e-003
|
||||
almanac[30]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[30]["Orbital_Inclination"] = 1.128459e+000
|
||||
almanac[30]["Rate_of_Right_Ascen"] = -6.759654e-009
|
||||
almanac[30]["SQRT_A"] = 5.050500e+003
|
||||
almanac[30]["Right_Ascen_at_Week"] = 5.997871e+000
|
||||
almanac[30]["Argument_of_Perigee"] = 1.709531e+000
|
||||
almanac[30]["Mean_Anom"] = -5.367633e+000
|
||||
almanac[30]["week"] = 1390
|
||||
almanac[30]["Commit_date"] = "02.02.2004"
|
||||
almanac[30]["Life_dates"] = {}
|
||||
|
||||
almanac[31] = {}
|
||||
almanac[31]["System"] = SAT_SYS_GLONASS
|
||||
almanac[31]["Number"] = 3
|
||||
almanac[31]["Orbital"] = 1
|
||||
almanac[31]["GLONASS_Data"] = {}
|
||||
almanac[31]["GLONASS_Data"]["NKU_Number"] = 789
|
||||
almanac[31]["GLONASS_Data"]["Cosmos_Number"] = 2381
|
||||
almanac[31]["Eccentricity"] = 2.459000e-003
|
||||
almanac[31]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[31]["Orbital_Inclination"] = 1.122958e+000
|
||||
almanac[31]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[31]["SQRT_A"] = 5.050500e+003
|
||||
almanac[31]["Right_Ascen_at_Week"] = 5.960713e+000
|
||||
almanac[31]["Argument_of_Perigee"] = -2.683407e+000
|
||||
almanac[31]["Mean_Anom"] = -1.791788e+000
|
||||
almanac[31]["week"] = 1390
|
||||
almanac[31]["Commit_date"] = "04.01.2002"
|
||||
almanac[31]["Life_dates"] = {}
|
||||
|
||||
almanac[32] = {}
|
||||
almanac[32]["System"] = SAT_SYS_GLONASS
|
||||
almanac[32]["Number"] = 4
|
||||
almanac[32]["Orbital"] = 1
|
||||
almanac[32]["GLONASS_Data"] = {}
|
||||
almanac[32]["GLONASS_Data"]["NKU_Number"] = 795
|
||||
almanac[29]["GLONASS_Data"]["Cosmos_Number"] = 2403
|
||||
almanac[32]["Eccentricity"] = 4.054000e-003
|
||||
almanac[32]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[32]["Orbital_Inclination"] = 1.128543e+000
|
||||
almanac[32]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[32]["SQRT_A"] = 5.050500e+003
|
||||
almanac[32]["Right_Ascen_at_Week"] = 5.998081e+000
|
||||
almanac[32]["Argument_of_Perigee"] = 1.497160e+000
|
||||
almanac[32]["Mean_Anom"] = -4.293681e-001
|
||||
almanac[32]["week"] = 1390
|
||||
almanac[32]["Commit_date"] = "29.01.2004"
|
||||
almanac[32]["Life_dates"] = {}
|
||||
|
||||
almanac[33] = {}
|
||||
almanac[33]["System"] = SAT_SYS_GLONASS
|
||||
almanac[33]["Number"] = 5
|
||||
almanac[33]["Orbital"] = 1
|
||||
almanac[33]["GLONASS_Data"] = {}
|
||||
almanac[33]["GLONASS_Data"]["NKU_Number"] = 711
|
||||
almanac[33]["GLONASS_Data"]["Cosmos_Number"] = 2382
|
||||
almanac[33]["Eccentricity"] = 7.040000e-004
|
||||
almanac[33]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[33]["Orbital_Inclination"] = 1.122886e+000
|
||||
almanac[33]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[33]["SQRT_A"] = 5.050600e+003
|
||||
almanac[33]["Right_Ascen_at_Week"] = 5.960713e+000
|
||||
almanac[33]["Argument_of_Perigee"] = 2.740933e+000
|
||||
almanac[33]["Mean_Anom"] = -2.523604e+000
|
||||
almanac[33]["week"] = 1390
|
||||
almanac[33]["Commit_date"] = "13.02.2003"
|
||||
almanac[33]["Life_dates"] = {}
|
||||
|
||||
almanac[34] = {}
|
||||
almanac[34]["System"] = SAT_SYS_GLONASS
|
||||
almanac[34]["Number"] = 6
|
||||
almanac[34]["Orbital"] = 1
|
||||
almanac[34]["GLONASS_Data"] = {}
|
||||
almanac[34]["GLONASS_Data"]["NKU_Number"] = 701
|
||||
almanac[34]["GLONASS_Data"]["Cosmos_Number"] = 2404
|
||||
almanac[34]["Eccentricity"] = 4.766000e-003
|
||||
almanac[34]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[34]["Orbital_Inclination"] = 1.128276e+000
|
||||
almanac[34]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[34]["SQRT_A"] = 5.050500e+003
|
||||
almanac[34]["Right_Ascen_at_Week"] = 5.997906e+000
|
||||
almanac[34]["Argument_of_Perigee"] = 1.802417e+000
|
||||
almanac[34]["Mean_Anom"] = -2.426512e+000
|
||||
almanac[34]["week"] = 1390
|
||||
almanac[34]["Commit_date"] = "08.12.2004"
|
||||
almanac[34]["Life_dates"] = {}
|
||||
|
||||
almanac[35] = {}
|
||||
almanac[35]["System"] = SAT_SYS_GLONASS
|
||||
almanac[35]["Number"] = 7
|
||||
almanac[35]["Orbital"] = 1
|
||||
almanac[35]["GLONASS_Data"] = {}
|
||||
almanac[35]["GLONASS_Data"]["NKU_Number"] = 712
|
||||
almanac[35]["GLONASS_Data"]["Cosmos_Number"] = 2413
|
||||
almanac[35]["Eccentricity"] = 7.570000e-004
|
||||
almanac[35]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[35]["Orbital_Inclination"] = 1.126344e+000
|
||||
almanac[35]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[35]["SQRT_A"] = 5.050500e+003
|
||||
almanac[35]["Right_Ascen_at_Week"] = 5.979388e+000
|
||||
almanac[35]["Argument_of_Perigee"] = 2.566068e+000
|
||||
almanac[35]["Mean_Anom"] = -3.921228e+000
|
||||
almanac[35]["week"] = 1390
|
||||
almanac[35]["Commit_date"] = "07.10.2005"
|
||||
almanac[35]["Life_dates"] = {}
|
||||
|
||||
almanac[36] = {}
|
||||
almanac[36]["System"] = SAT_SYS_GLONASS
|
||||
almanac[36]["GLONASS_Data"] = {}
|
||||
almanac[36]["Number"] = 8
|
||||
almanac[36]["Orbital"] = 1
|
||||
almanac[36]["GLONASS_Data"] = {}
|
||||
almanac[36]["GLONASS_Data"]["NKU_Number"] = 797
|
||||
almanac[36]["GLONASS_Data"]["Cosmos_Number"] = 2412
|
||||
almanac[36]["Eccentricity"] = 4.060000e-004
|
||||
almanac[36]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[36]["Orbital_Inclination"] = 1.126564e+000
|
||||
almanac[36]["Rate_of_Right_Ascen"] = -6.785834e-009
|
||||
almanac[36]["SQRT_A"] = 5.050600e+003
|
||||
almanac[36]["Right_Ascen_at_Week"] = 5.980069e+000
|
||||
almanac[36]["Argument_of_Perigee"] = 2.673633e+000
|
||||
almanac[36]["Mean_Anom"] = -4.812026e+000
|
||||
almanac[36]["week"] = 1390
|
||||
almanac[36]["Commit_date"] = "06.02.2005"
|
||||
almanac[36]["Life_dates"] = {}
|
||||
|
||||
--3 îðáèòàëüíàÿ ïëîñêîñòü, íîìåðà 17-24
|
||||
almanac[37] = {}
|
||||
almanac[37]["System"] = SAT_SYS_GLONASS
|
||||
almanac[37]["Number"] = 17
|
||||
almanac[37]["Orbital"] = 3
|
||||
almanac[37]["GLONASS_Data"] = {}
|
||||
almanac[37]["GLONASS_Data"]["NKU_Number"] = 787
|
||||
almanac[37]["GLONASS_Data"]["Cosmos_Number"] = 2375
|
||||
almanac[37]["Eccentricity"] = 5.670000e-004
|
||||
almanac[37]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[37]["Orbital_Inclination"] = 1.126524e+000
|
||||
almanac[37]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[37]["SQRT_A"] = 5.050500e+003
|
||||
almanac[37]["Right_Ascen_at_Week"] = 3.895554e+000
|
||||
almanac[37]["Argument_of_Perigee"] = 6.085085e-001
|
||||
almanac[37]["Mean_Anom"] = -2.977407e+000
|
||||
almanac[37]["week"] = 1390
|
||||
almanac[37]["Commit_date"] = "04.11.2000"
|
||||
almanac[37]["Life_dates"] = {}
|
||||
|
||||
|
||||
almanac[38] = {}
|
||||
almanac[38]["System"] = SAT_SYS_GLONASS
|
||||
almanac[38]["Number"] = 18
|
||||
almanac[38]["Orbital"] = 3
|
||||
almanac[38]["GLONASS_Data"] = {}
|
||||
almanac[38]["GLONASS_Data"]["NKU_Number"] = 783
|
||||
almanac[38]["GLONASS_Data"]["Cosmos_Number"] = 2374
|
||||
almanac[38]["Eccentricity"] = 4.520000e-003
|
||||
almanac[38]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[38]["Orbital_Inclination"] = 1.126239e+000
|
||||
almanac[38]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[38]["SQRT_A"] = 5.050600e+003
|
||||
almanac[38]["Right_Ascen_at_Week"] = 3.894071e+000
|
||||
almanac[38]["Argument_of_Perigee"] = -2.509589e+000
|
||||
almanac[38]["Mean_Anom"] = -1.020057e+000
|
||||
almanac[38]["week"] = 1390
|
||||
almanac[38]["Commit_date"] = "05.01.2001"
|
||||
almanac[38]["Life_dates"] = {}
|
||||
|
||||
almanac[39] = {}
|
||||
almanac[39]["System"] = SAT_SYS_GLONASS
|
||||
almanac[39]["Number"] = 19
|
||||
almanac[39]["Orbital"] = 3
|
||||
almanac[39]["GLONASS_Data"] = {}
|
||||
almanac[39]["GLONASS_Data"]["NKU_Number"] = 798
|
||||
almanac[39]["GLONASS_Data"]["Cosmos_Number"] = 2417
|
||||
almanac[39]["Eccentricity"] = 2.023000e-003
|
||||
almanac[39]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[39]["Orbital_Inclination"] = 1.132205e+000
|
||||
almanac[39]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[39]["SQRT_A"] = 5.050500e+003
|
||||
almanac[39]["Right_Ascen_at_Week"] = 3.884018e+000
|
||||
almanac[39]["Argument_of_Perigee"] = 2.718313e+000
|
||||
almanac[39]["Mean_Anom"] = -3.933620e-001
|
||||
almanac[39]["week"] = 1390
|
||||
almanac[39]["Commit_date"] = "22.01.2006"
|
||||
almanac[39]["Life_dates"] = {}
|
||||
|
||||
almanac[40] = {}
|
||||
almanac[40]["System"] = SAT_SYS_GLONASS
|
||||
almanac[40]["Number"] = 20
|
||||
almanac[40]["Orbital"] = 3
|
||||
almanac[40]["GLONASS_Data"] = {}
|
||||
almanac[40]["GLONASS_Data"]["NKU_Number"] = 793
|
||||
almanac[40]["GLONASS_Data"]["Cosmos_Number"] = 2396
|
||||
almanac[40]["Eccentricity"] = 1.822000e-003
|
||||
almanac[40]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[40]["Orbital_Inclination"] = 1.129789e+000
|
||||
almanac[40]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[40]["SQRT_A"] = 5.050500e+003
|
||||
almanac[40]["Right_Ascen_at_Week"] = 3.896863e+000
|
||||
almanac[40]["Argument_of_Perigee"] = 2.723776e+000
|
||||
almanac[40]["Mean_Anom"] = -1.193647e+000
|
||||
almanac[40]["week"] = 1390
|
||||
almanac[40]["Commit_date"] = "31.01.2003"
|
||||
almanac[40]["Life_dates"] = {}
|
||||
|
||||
almanac[41] = {}
|
||||
almanac[41]["System"] = SAT_SYS_GLONASS
|
||||
almanac[41]["Number"] = 21
|
||||
almanac[41]["Orbital"] = 3
|
||||
almanac[41]["GLONASS_Data"] = {}
|
||||
almanac[41]["GLONASS_Data"]["NKU_Number"] = 792
|
||||
almanac[41]["GLONASS_Data"]["Cosmos_Number"] = 2395
|
||||
almanac[41]["Eccentricity"] = 5.290000e-004
|
||||
almanac[41]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[41]["Orbital_Inclination"] = 1.129957e+000
|
||||
almanac[41]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[41]["SQRT_A"] = 5.050500e+003
|
||||
almanac[41]["Right_Ascen_at_Week"] = 3.897806e+000
|
||||
almanac[41]["Argument_of_Perigee"] = -9.519367e-001
|
||||
almanac[41]["Mean_Anom"] = -4.578920e+000
|
||||
almanac[41]["week"] = 1390
|
||||
almanac[41]["Commit_date"] = "31.01.2003"
|
||||
almanac[41]["Life_dates"] = {}
|
||||
|
||||
almanac[42] = {}
|
||||
almanac[42]["System"] = SAT_SYS_GLONASS
|
||||
almanac[42]["Number"] = 22
|
||||
almanac[42]["Orbital"] = 3
|
||||
almanac[42]["GLONASS_Data"] = {}
|
||||
almanac[42]["GLONASS_Data"]["NKU_Number"] = 791
|
||||
almanac[42]["GLONASS_Data"]["Cosmos_Number"] = 2394
|
||||
almanac[42]["Eccentricity"] = 9.200000e-005
|
||||
almanac[42]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[42]["Orbital_Inclination"] = 1.129742e+000
|
||||
almanac[42]["Rate_of_Right_Ascen"] = -6.740456e-009
|
||||
almanac[42]["SQRT_A"] = 5.050500e+003
|
||||
almanac[42]["Right_Ascen_at_Week"] = 3.897404e+000
|
||||
almanac[42]["Argument_of_Perigee"] = 2.518211e+000
|
||||
almanac[42]["Mean_Anom"] = -2.530167e+000
|
||||
almanac[42]["week"] = 1390
|
||||
almanac[42]["Commit_date"] = "21.01.2003"
|
||||
almanac[42]["Life_dates"] = {}
|
||||
|
||||
almanac[43] = {}
|
||||
almanac[43]["System"] = SAT_SYS_GLONASS
|
||||
almanac[43]["Number"] = 23
|
||||
almanac[43]["Orbital"] = 3
|
||||
almanac[43]["GLONASS_Data"] = {}
|
||||
almanac[43]["GLONASS_Data"]["NKU_Number"] = 714
|
||||
almanac[43]["GLONASS_Data"]["Cosmos_Number"] = 2419
|
||||
almanac[43]["Eccentricity"] = 8.730000e-004
|
||||
almanac[43]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[43]["Orbital_Inclination"] = 1.132105e+000
|
||||
almanac[43]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[43]["SQRT_A"] = 5.050500e+003
|
||||
almanac[43]["Right_Ascen_at_Week"] = 3.883808e+000
|
||||
almanac[43]["Argument_of_Perigee"] = -3.039139e-001
|
||||
almanac[43]["Mean_Anom"] = -5.228304e-001
|
||||
almanac[43]["week"] = 1390
|
||||
almanac[43]["Commit_date"] = "31.08.2006"
|
||||
almanac[43]["Life_dates"] = {}
|
||||
|
||||
almanac[44] = {}
|
||||
almanac[44]["System"] = SAT_SYS_GLONASS
|
||||
almanac[44]["Number"] = 24
|
||||
almanac[44]["Orbital"] = 3
|
||||
almanac[44]["GLONASS_Data"] = {}
|
||||
almanac[44]["GLONASS_Data"]["NKU_Number"] = 713
|
||||
almanac[44]["GLONASS_Data"]["Cosmos_Number"] = 2418
|
||||
almanac[44]["Eccentricity"] = 2.044000e-003
|
||||
almanac[44]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[44]["Orbital_Inclination"] = 1.132430e+000
|
||||
almanac[44]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[44]["SQRT_A"] = 5.050500e+003
|
||||
almanac[44]["Right_Ascen_at_Week"] = 3.883983e+000
|
||||
almanac[44]["Argument_of_Perigee"] = -3.722784e-001
|
||||
almanac[44]["Mean_Anom"] = -1.240457e+000
|
||||
almanac[44]["week"] = 1390
|
||||
almanac[44]["Commit_date"] = "31.08.2006"
|
||||
almanac[44]["Life_dates"] = {}
|
||||
|
||||
--2 îðáèòàëüíàÿ ïëîñêîñòü, íîìåðà 9-16
|
||||
almanac[45] = {}
|
||||
almanac[45]["System"] = SAT_SYS_GLONASS
|
||||
almanac[45]["Number"] = 9
|
||||
almanac[45]["Orbital"] = 2
|
||||
almanac[45]["GLONASS_Data"] = {}
|
||||
almanac[45]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[45]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[45]["Eccentricity"] = 1.184000e-003
|
||||
almanac[45]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[45]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[45]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[45]["SQRT_A"] = 5.050500e+003
|
||||
almanac[45]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[45]["Argument_of_Perigee"] = 2.88430067
|
||||
almanac[45]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[45]["week"] = 1390
|
||||
almanac[45]["Commit_date"] = "N/A"
|
||||
almanac[45]["Life_dates"] = {}
|
||||
|
||||
almanac[46] = {}
|
||||
almanac[46]["System"] = SAT_SYS_GLONASS
|
||||
almanac[46]["Number"] = 10
|
||||
almanac[46]["Orbital"] = 2
|
||||
almanac[46]["GLONASS_Data"] = {}
|
||||
almanac[46]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[46]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[46]["Eccentricity"] = 1.184000e-003
|
||||
almanac[46]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[46]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[46]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[46]["SQRT_A"] = 5.050500e+003
|
||||
almanac[46]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[46]["Argument_of_Perigee"] = 3.66930067
|
||||
almanac[46]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[46]["week"] = 1390
|
||||
almanac[46]["Commit_date"] = "N/A"
|
||||
almanac[46]["Life_dates"] = {}
|
||||
|
||||
almanac[47] = {}
|
||||
almanac[47]["System"] = SAT_SYS_GLONASS
|
||||
almanac[47]["Number"] = 11
|
||||
almanac[47]["Orbital"] = 2
|
||||
almanac[47]["GLONASS_Data"] = {}
|
||||
almanac[47]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[47]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[47]["Eccentricity"] = 1.184000e-003
|
||||
almanac[47]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[47]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[47]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[47]["SQRT_A"] = 5.050500e+003
|
||||
almanac[47]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[47]["Argument_of_Perigee"] = 4.45430067
|
||||
almanac[47]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[47]["week"] = 1390
|
||||
almanac[47]["Commit_date"] = "N/A"
|
||||
almanac[47]["Life_dates"] = {}
|
||||
|
||||
almanac[48] = {}
|
||||
almanac[48]["System"] = SAT_SYS_GLONASS
|
||||
almanac[48]["Number"] = 12
|
||||
almanac[48]["Orbital"] = 2
|
||||
almanac[48]["GLONASS_Data"] = {}
|
||||
almanac[48]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[48]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[48]["Eccentricity"] = 1.184000e-003
|
||||
almanac[48]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[48]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[48]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[48]["SQRT_A"] = 5.050500e+003
|
||||
almanac[48]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[48]["Argument_of_Perigee"] = 5.23930067
|
||||
almanac[48]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[48]["week"] = 1390
|
||||
almanac[48]["Commit_date"] = "N/A"
|
||||
almanac[48]["Life_dates"] = {}
|
||||
|
||||
almanac[49] = {}
|
||||
almanac[49]["System"] = SAT_SYS_GLONASS
|
||||
almanac[49]["Number"] = 13
|
||||
almanac[49]["Orbital"] = 2
|
||||
almanac[49]["GLONASS_Data"] = {}
|
||||
almanac[49]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[49]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[49]["Eccentricity"] = 1.184000e-003
|
||||
almanac[49]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[49]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[49]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[49]["SQRT_A"] = 5.050500e+003
|
||||
almanac[49]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[49]["Argument_of_Perigee"] = 6.02430067
|
||||
almanac[49]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[49]["week"] = 1390
|
||||
almanac[49]["Commit_date"] = "N/A"
|
||||
almanac[49]["Life_dates"] = {}
|
||||
|
||||
almanac[50] = {}
|
||||
almanac[50]["System"] = SAT_SYS_GLONASS
|
||||
almanac[50]["Number"] = 14
|
||||
almanac[50]["Orbital"] = 2
|
||||
almanac[50]["GLONASS_Data"] = {}
|
||||
almanac[50]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[50]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[50]["Eccentricity"] = 1.184000e-003
|
||||
almanac[50]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[50]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[50]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[50]["SQRT_A"] = 5.050500e+003
|
||||
almanac[50]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[50]["Argument_of_Perigee"] = 0.52930067
|
||||
almanac[50]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[50]["week"] = 1390
|
||||
almanac[50]["Commit_date"] = "N/A"
|
||||
almanac[50]["Life_dates"] = {}
|
||||
|
||||
almanac[51] = {}
|
||||
almanac[51]["System"] = SAT_SYS_GLONASS
|
||||
almanac[51]["Number"] = 15
|
||||
almanac[51]["Orbital"] = 2
|
||||
almanac[51]["GLONASS_Data"] = {}
|
||||
almanac[51]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[51]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[51]["Eccentricity"] = 1.184000e-003
|
||||
almanac[51]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[51]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[51]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[51]["SQRT_A"] = 5.050500e+003
|
||||
almanac[51]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[51]["Argument_of_Perigee"] = 1.31430067
|
||||
almanac[51]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[51]["week"] = 1390
|
||||
almanac[51]["Commit_date"] = "N/A"
|
||||
almanac[51]["Life_dates"] = {}
|
||||
|
||||
almanac[52] = {}
|
||||
almanac[52]["System"] = SAT_SYS_GLONASS
|
||||
almanac[52]["Number"] = 16
|
||||
almanac[52]["Orbital"] = 2
|
||||
almanac[52]["GLONASS_Data"] = {}
|
||||
almanac[52]["GLONASS_Data"]["NKU_Number"] = "N/A"
|
||||
almanac[52]["GLONASS_Data"]["Cosmos_Number"] = "N/A"
|
||||
almanac[52]["Eccentricity"] = 1.184000e-003
|
||||
almanac[52]["Time_of_Applicability"] = 0.000000e+000
|
||||
almanac[52]["Orbital_Inclination"] = 1.126443e+000
|
||||
almanac[52]["Rate_of_Right_Ascen"] = 0.000000e+000
|
||||
almanac[52]["SQRT_A"] = 5.050500e+003
|
||||
almanac[52]["Right_Ascen_at_Week"] = 1.79067e+000
|
||||
almanac[52]["Argument_of_Perigee"] = 2.09930067
|
||||
almanac[52]["Mean_Anom"] = -5.519651e+000
|
||||
almanac[52]["week"] = 1390
|
||||
almanac[52]["Commit_date"] = "N/A"
|
||||
almanac[52]["Life_dates"] = {}
|
||||
|
||||
SA_mode = false
|
||||
AS_mode = false
|
||||
@ -1,27 +0,0 @@
|
||||
birds_avail = true --Birds availability. false - there is no birds
|
||||
birds_maximum_hrad = 200 --Maximum altitude above ground al sea level bird could be met
|
||||
birds_maximum_absolute_height = 8000 --Maximum absolute altitude bird could be met
|
||||
birds_minimum_velocity = 40 --Minimum velocity bird could be met
|
||||
birds_delta_time = 3.55
|
||||
birds_probability = {0.006333333*150,
|
||||
0.004166667*150,
|
||||
0.001966667*150,
|
||||
0.001090909*150,
|
||||
0.000741818*150,
|
||||
0.0006*150,
|
||||
0.000510545*150,
|
||||
0.000447273*150,
|
||||
0.000389455*150,
|
||||
0.000349091*150,
|
||||
0.000310909*150,
|
||||
0.000282545*150,
|
||||
0.000250909*150,
|
||||
0.000220364*150,
|
||||
0.000196364*150,
|
||||
0.000174545*150,
|
||||
0.000152727*150,
|
||||
0.000128727*150,
|
||||
0.000103636*150,
|
||||
7.63636E-05*150,
|
||||
0*150
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
settings=
|
||||
{
|
||||
["dials"]=
|
||||
{
|
||||
["channel"]=-1,
|
||||
},
|
||||
["presets"]=
|
||||
{
|
||||
[1]=124000000,
|
||||
[2]=124000000,
|
||||
[3]=131000000,
|
||||
[4]=139000000,
|
||||
},
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' )
|
||||
env.info( 'Moose Generation Timestamp: 20160616_1305' )
|
||||
|
||||
local base = _G
|
||||
|
||||
Include = {}
|
||||
|
||||
Include.Path = function()
|
||||
local str = debug.getinfo(2, "S").source
|
||||
return str:match("(.*/)"):sub(1,-2):gsub("\\","/")
|
||||
end
|
||||
|
||||
Include.File = function( IncludeFile )
|
||||
if not Include.Files[ IncludeFile ] then
|
||||
Include.Files[IncludeFile] = IncludeFile
|
||||
env.info( "Include:" .. IncludeFile .. " from " .. Include.ProgramPath )
|
||||
local f = assert( base.loadfile( Include.ProgramPath .. IncludeFile .. ".lua" ) )
|
||||
if f == nil then
|
||||
env.info( "Include:" .. IncludeFile .. " from " .. Include.MissionPath )
|
||||
local f = assert( base.loadfile( Include.MissionPath .. IncludeFile .. ".lua" ) )
|
||||
if f == nil then
|
||||
error ("Could not load MOOSE file " .. IncludeFile .. ".lua" )
|
||||
else
|
||||
env.info( "Include:" .. IncludeFile .. " loaded from " .. Include.MissionPath )
|
||||
return f()
|
||||
end
|
||||
else
|
||||
env.info( "Include:" .. IncludeFile .. " loaded from " .. Include.ProgramPath )
|
||||
return f()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Include.ProgramPath = "Scripts/Moose/"
|
||||
Include.MissionPath = Include.Path()
|
||||
|
||||
env.info( "Include.ProgramPath = " .. Include.ProgramPath)
|
||||
env.info( "Include.MissionPath = " .. Include.MissionPath)
|
||||
|
||||
Include.Files = {}
|
||||
|
||||
Include.File( "Moose" )
|
||||
|
||||
BASE:TraceOnOff( true )
|
||||
env.info( '*** MOOSE INCLUDE END *** ' )
|
||||
@ -1,11 +0,0 @@
|
||||
|
||||
local US_PlanesClientSet = SET_CLIENT:New():FilterCountries( "USA" ):FilterCategories( "plane" ):FilterStart()
|
||||
local US_PlanesSpawn = SPAWN:New( "AI US" )
|
||||
local US_AIBalancer = AIBALANCER:New( US_PlanesClientSet, US_PlanesSpawn )
|
||||
|
||||
local RU_PlanesClientSet = SET_CLIENT:New():FilterCountries( "RUSSIA" ):FilterCategories( "plane" ):FilterStart()
|
||||
local RU_PlanesSpawn = SPAWN:New( "AI RU" )
|
||||
local RU_AIBalancer = AIBALANCER:New( RU_PlanesClientSet, RU_PlanesSpawn )
|
||||
|
||||
local RU_AirbasesSet = SET_AIRBASE:New():FilterCoalitions("red"):FilterStart()
|
||||
RU_AIBalancer:ReturnToAirbases( 2000, RU_AirbasesSet )
|
||||
@ -1,57 +0,0 @@
|
||||
dictionary =
|
||||
{
|
||||
["DictKey_UnitName_43"] = "Client 5",
|
||||
["DictKey_GroupName_42"] = "Client Group 5",
|
||||
["DictKey_GroupName_30"] = "AI RU",
|
||||
["DictKey_UnitName_19"] = "Client 3",
|
||||
["DictKey_GroupName_24"] = "AI RU",
|
||||
["DictKey_GroupName_7"] = "Client Group 1",
|
||||
["DictKey_WptName_23"] = "",
|
||||
["DictKey_WptName_41"] = "",
|
||||
["DictKey_WptName_38"] = "",
|
||||
["DictKey_GroupName_33"] = "AI RU",
|
||||
["DictKey_GroupName_21"] = "Client Group 4",
|
||||
["DictKey_UnitName_31"] = "AI RU",
|
||||
["DictKey_WptName_48"] = "",
|
||||
["DictKey_GroupName_39"] = "Client Group 6",
|
||||
["DictKey_WptName_12"] = "",
|
||||
["DictKey_WptName_26"] = "",
|
||||
["DictKey_sortie_4"] = "",
|
||||
["DictKey_UnitName_25"] = "AI RU",
|
||||
["DictKey_WptName_49"] = "",
|
||||
["DictKey_WptName_32"] = "",
|
||||
["DictKey_WptName_50"] = "",
|
||||
["DictKey_ActionText_17"] = "BASE:TraceClass(\"SET_CLIENT\")\
|
||||
BASE:TraceClass(\"CLIENT\")\
|
||||
BASE:TraceClass(\"AIBALANCER\")\
|
||||
BASE:TraceLevel(3)",
|
||||
["DictKey_UnitName_28"] = "AI RU",
|
||||
["DictKey_WptName_52"] = "",
|
||||
["DictKey_GroupName_36"] = "AI RU",
|
||||
["DictKey_GroupName_18"] = "Client Group 3",
|
||||
["DictKey_WptName_47"] = "",
|
||||
["DictKey_UnitName_40"] = "Client 6",
|
||||
["DictKey_UnitName_11"] = "Client 2",
|
||||
["DictKey_WptName_29"] = "",
|
||||
["DictKey_UnitName_15"] = "AI US",
|
||||
["DictKey_WptName_9"] = "",
|
||||
["DictKey_GroupName_10"] = "Client Group 2",
|
||||
["DictKey_WptName_20"] = "",
|
||||
["DictKey_UnitName_37"] = "AI RU",
|
||||
["DictKey_UnitName_34"] = "AI RU",
|
||||
["DictKey_descriptionBlueTask_3"] = "",
|
||||
["DictKey_descriptionText_1"] = "",
|
||||
["DictKey_GroupName_45"] = "Client Group 7",
|
||||
["DictKey_WptName_35"] = "",
|
||||
["DictKey_UnitName_22"] = "Client 4",
|
||||
["DictKey_GroupName_14"] = "AI US",
|
||||
["DictKey_WptName_16"] = "",
|
||||
["DictKey_WptName_44"] = "",
|
||||
["DictKey_WptName_13"] = "",
|
||||
["DictKey_UnitName_46"] = "Client 7",
|
||||
["DictKey_WptName_51"] = "",
|
||||
["DictKey_WptName_53"] = "",
|
||||
["DictKey_descriptionRedTask_2"] = "",
|
||||
["DictKey_GroupName_27"] = "AI RU",
|
||||
["DictKey_UnitName_8"] = "Client 1",
|
||||
} -- end of dictionary
|
||||
@ -1,5 +0,0 @@
|
||||
mapResource =
|
||||
{
|
||||
["ResKey_Action_5"] = "Moose.lua",
|
||||
["ResKey_Action_6"] = "Moose_Test_AIBALANCER.lua",
|
||||
} -- end of mapResource
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,212 +0,0 @@
|
||||
options =
|
||||
{
|
||||
["difficulty"] =
|
||||
{
|
||||
["fuel"] = false,
|
||||
["labels"] = false,
|
||||
["easyRadar"] = false,
|
||||
["easyCommunication"] = true,
|
||||
["miniHUD"] = false,
|
||||
["setGlobal"] = true,
|
||||
["birds"] = 0,
|
||||
["optionsView"] = "optview_all",
|
||||
["permitCrash"] = true,
|
||||
["immortal"] = false,
|
||||
["avionicsLanguage"] = "native",
|
||||
["cockpitVisualRM"] = true,
|
||||
["padlock"] = true,
|
||||
["reports"] = true,
|
||||
["hideStick"] = false,
|
||||
["radio"] = true,
|
||||
["map"] = true,
|
||||
["externalViews"] = true,
|
||||
["spectatorExternalViews"] = true,
|
||||
["cockpitLanguage"] = "english",
|
||||
["tips"] = true,
|
||||
["userSnapView"] = true,
|
||||
["units"] = "metric",
|
||||
["impostors"] = "medium",
|
||||
["iconsTheme"] = "nato",
|
||||
["easyFlight"] = false,
|
||||
["weapons"] = false,
|
||||
["cockpitStatusBarAllowed"] = false,
|
||||
["geffect"] = "realistic",
|
||||
}, -- end of ["difficulty"]
|
||||
["playerName"] = "Killer",
|
||||
["graphics"] =
|
||||
{
|
||||
["OculusRift"] = false,
|
||||
["color"] = "32",
|
||||
["preloadRadius"] = 73885,
|
||||
["heatBlr"] = 2,
|
||||
["scenes"] = "high",
|
||||
["water"] = 2,
|
||||
["visibRange"] = "High",
|
||||
["treesVisibility"] = 25000,
|
||||
["aspect"] = 1.7777777777778,
|
||||
["lights"] = 2,
|
||||
["HDR"] = 1,
|
||||
["MSAA"] = 6,
|
||||
["civTraffic"] = "high",
|
||||
["clutterMaxDistance"] = 1500,
|
||||
["terrainTextures"] = "max",
|
||||
["multiMonitorSetup"] = "1camera",
|
||||
["shadowTree"] = true,
|
||||
["fullScreen"] = false,
|
||||
["disableAero"] = false,
|
||||
["DOF"] = 0,
|
||||
["clouds"] = 1,
|
||||
["flatTerrainShadows"] = 1,
|
||||
["cockpitShadows"] = true,
|
||||
["height"] = 900,
|
||||
["width"] = 1600,
|
||||
["shadows"] = 5,
|
||||
["textures"] = 2,
|
||||
["sync"] = true,
|
||||
["LensEffects"] = 3,
|
||||
["anisotropy"] = 4,
|
||||
["TranspSSAA"] = false,
|
||||
["haze"] = 1,
|
||||
["effects"] = 3,
|
||||
}, -- end of ["graphics"]
|
||||
["plugins"] =
|
||||
{
|
||||
["CA"] =
|
||||
{
|
||||
["kompass_options"] = 1,
|
||||
["ground_target_info"] = true,
|
||||
["ground_aim_helper"] = true,
|
||||
["ground_platform_shake"] = true,
|
||||
["ground_automatic"] = true,
|
||||
}, -- end of ["CA"]
|
||||
["M-2000C"] =
|
||||
{
|
||||
["TDC_"] = false,
|
||||
["CPLocalList"] = "default",
|
||||
}, -- end of ["M-2000C"]
|
||||
["A-10C"] =
|
||||
{
|
||||
["CPLocalList"] = "default",
|
||||
}, -- end of ["A-10C"]
|
||||
["FC3"] =
|
||||
{
|
||||
["CPLocalList_F-15C"] = "default",
|
||||
["CPLocalList_MiG-29S"] = "default",
|
||||
["CPLocalList_MiG-29A"] = "default",
|
||||
["CPLocalList_Su-25"] = "default",
|
||||
["CPLocalList_A-10A"] = "default",
|
||||
["CPLocalList_Su-27"] = "chinese",
|
||||
["CPLocalList_MiG-29G"] = "default",
|
||||
["CPLocalList_Su-33"] = "default",
|
||||
}, -- end of ["FC3"]
|
||||
["Hawk"] =
|
||||
{
|
||||
["CPLocalList"] = "high",
|
||||
}, -- end of ["Hawk"]
|
||||
["P-51D"] =
|
||||
{
|
||||
["assistance"] = 100,
|
||||
["CPLocalList"] = "default",
|
||||
["autoRudder"] = false,
|
||||
}, -- end of ["P-51D"]
|
||||
["TF-51D"] =
|
||||
{
|
||||
["assistance"] = 100,
|
||||
["CPLocalList"] = "default",
|
||||
["autoRudder"] = false,
|
||||
}, -- end of ["TF-51D"]
|
||||
["MiG-21Bis"] =
|
||||
{
|
||||
["Engine"] = false,
|
||||
["Shake"] = 100,
|
||||
["CustomCockpit"] = false,
|
||||
["Reticle"] = false,
|
||||
["Freeze"] = false,
|
||||
}, -- end of ["MiG-21Bis"]
|
||||
["F-86F"] =
|
||||
{
|
||||
["landSeatAdjustF86"] = true,
|
||||
["CPLocalList"] = "default",
|
||||
["NoseWheelSteeringSimpleBehaviourF86"] = true,
|
||||
["gunCamera"] = 0,
|
||||
}, -- end of ["F-86F"]
|
||||
["Su-25T"] =
|
||||
{
|
||||
["CPLocalList"] = "default",
|
||||
}, -- end of ["Su-25T"]
|
||||
["Mi-8MTV2"] =
|
||||
{
|
||||
["altMi8TrimmingMethod"] = false,
|
||||
["Mi8AutopilotAdjustment"] = false,
|
||||
["Mi8RudderTrimmer"] = false,
|
||||
["controlHelperMi8"] = false,
|
||||
["CPLocalList"] = "default",
|
||||
["weapTooltipsMi8"] = true,
|
||||
["Mi8FOV"] = 120,
|
||||
}, -- end of ["Mi-8MTV2"]
|
||||
["MiG-15bis"] =
|
||||
{
|
||||
["autoLeanToAimMiG15"] = true,
|
||||
["CPLocalList"] = "chinese",
|
||||
["gunCamera"] = 0,
|
||||
["aiHelper"] = false,
|
||||
}, -- end of ["MiG-15bis"]
|
||||
["FW-190D9"] =
|
||||
{
|
||||
["assistance"] = 100,
|
||||
["CPLocalList"] = "default",
|
||||
["autoRudder"] = false,
|
||||
}, -- end of ["FW-190D9"]
|
||||
["UH-1H"] =
|
||||
{
|
||||
["UHRudderTrimmer"] = false,
|
||||
["autoPilot"] = true,
|
||||
["altUHTrimmingMethod"] = false,
|
||||
["CPLocalList"] = "default",
|
||||
["weapTooltips"] = true,
|
||||
["UHTrackIRAiming"] = true,
|
||||
}, -- end of ["UH-1H"]
|
||||
["Ka-50"] =
|
||||
{
|
||||
["altTrimmingMethod"] = false,
|
||||
["Ka50RudderTrimmer"] = false,
|
||||
["CPLocalList"] = "english",
|
||||
}, -- end of ["Ka-50"]
|
||||
}, -- end of ["plugins"]
|
||||
["views"] =
|
||||
{
|
||||
["cockpit"] =
|
||||
{
|
||||
["mirrors"] = false,
|
||||
["reflections"] = false,
|
||||
["avionics"] = 3,
|
||||
["russianHud"] = false,
|
||||
}, -- end of ["cockpit"]
|
||||
}, -- end of ["views"]
|
||||
["sound"] =
|
||||
{
|
||||
["hear_in_helmet"] = true,
|
||||
["headphones"] = -15,
|
||||
["cockpit"] = 0,
|
||||
["GBreathEffect"] = true,
|
||||
["gui"] = 0,
|
||||
["volume"] = 0,
|
||||
["radioSpeech"] = true,
|
||||
["music"] = -100,
|
||||
["subtitles"] = true,
|
||||
["world"] = 0,
|
||||
}, -- end of ["sound"]
|
||||
["miscellaneous"] =
|
||||
{
|
||||
["headmove"] = true,
|
||||
["f5_nearest_ac"] = true,
|
||||
["f11_free_camera"] = true,
|
||||
["F2_view_effects"] = 2,
|
||||
["f10_awacs"] = true,
|
||||
["Coordinate_Display"] = "Lat Long",
|
||||
["accidental_failures"] = false,
|
||||
["force_feedback_enabled"] = true,
|
||||
["synchronize_controls"] = false,
|
||||
["show_pilot_body"] = true,
|
||||
}, -- end of ["miscellaneous"]
|
||||
} -- end of options
|
||||
@ -1,807 +0,0 @@
|
||||
warehouses =
|
||||
{
|
||||
["airports"] =
|
||||
{
|
||||
[12] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "RED",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [12]
|
||||
[13] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "BLUE",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [13]
|
||||
[14] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [14]
|
||||
[15] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "RED",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [15]
|
||||
[16] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [16]
|
||||
[17] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "RED",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [17]
|
||||
[18] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [18]
|
||||
[19] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [19]
|
||||
[20] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [20]
|
||||
[21] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [21]
|
||||
[22] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [22]
|
||||
[23] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [23]
|
||||
[24] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [24]
|
||||
[25] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [25]
|
||||
[26] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [26]
|
||||
[27] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [27]
|
||||
[28] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [28]
|
||||
[29] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [29]
|
||||
[30] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [30]
|
||||
[31] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [31]
|
||||
[32] =
|
||||
{
|
||||
["gasoline"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["gasoline"]
|
||||
["unlimitedMunitions"] = true,
|
||||
["methanol_mixture"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["methanol_mixture"]
|
||||
["OperatingLevel_Air"] = 10,
|
||||
["diesel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["diesel"]
|
||||
["speed"] = 16.666666,
|
||||
["size"] = 100,
|
||||
["periodicity"] = 30,
|
||||
["suppliers"] =
|
||||
{
|
||||
}, -- end of ["suppliers"]
|
||||
["coalition"] = "NEUTRAL",
|
||||
["jet_fuel"] =
|
||||
{
|
||||
["InitFuel"] = 100,
|
||||
}, -- end of ["jet_fuel"]
|
||||
["OperatingLevel_Eqp"] = 10,
|
||||
["unlimitedFuel"] = true,
|
||||
["aircrafts"] =
|
||||
{
|
||||
}, -- end of ["aircrafts"]
|
||||
["weapons"] =
|
||||
{
|
||||
}, -- end of ["weapons"]
|
||||
["OperatingLevel_Fuel"] = 10,
|
||||
["unlimitedAircrafts"] = true,
|
||||
}, -- end of [32]
|
||||
}, -- end of ["airports"]
|
||||
["warehouses"] =
|
||||
{
|
||||
}, -- end of ["warehouses"]
|
||||
} -- end of warehouses
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user