Fixed the respawn problem and reworked the test mission directory structure

This commit is contained in:
FlightControl 2016-04-05 16:04:36 +02:00
parent d8704b4028
commit 6d06ddb68f
31 changed files with 293 additions and 11863 deletions

View File

@ -2585,7 +2585,7 @@ local _TraceClass = {
--SPAWN = true,
--STAGE = true,
--ZONE = true,
GROUP = true,
--GROUP = true,
--UNIT = true,
--CLIENT = true,
--CARGO = true,
@ -2596,8 +2596,9 @@ local _TraceClass = {
--CLEANUP = true,
--MENU_CLIENT = true,
--MENU_CLIENT_COMMAND = true,
ESCORT = true,
--ESCORT = true,
}
local _TraceClassMethod = {}
--- The BASE Class
-- @type BASE
@ -2853,12 +2854,35 @@ end
-- Log a trace (only shown when trace is on)
-- TODO: Make trace function using variable parameters.
--- Set trace level
-- @param #BASE self
-- @param #number Level
function BASE:TraceLevel( Level )
_TraceLevel = Level
end
--- Set tracing for a class
-- @param #BASE self
-- @param #string Class
function BASE:TraceClass( Class )
_TraceClass[Class] = true
_TraceClassMethod[Class] = {}
end
--- Set tracing for a specific method of class
-- @param #BASE self
-- @param #string Class
-- @param #string Method
function BASE:TraceClassMethod( Class, Method )
_TraceClassMethod[Class].Method[Method] = true
end
--- Trace a function call. Must be at the beginning of the function logic.
-- @param #BASE self
-- @param Arguments A #table or any field.
function BASE:F( Arguments )
if _TraceOn and _TraceClass[self.ClassName] then
if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -2867,13 +2891,15 @@ function BASE:F( Arguments )
if DebugInfoCurrent.name then
Function = DebugInfoCurrent.name
end
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
if _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName].Method[Function] then
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s\(%s\)" , LineCurrent, LineFrom, "F", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s\(%s\)" , LineCurrent, LineFrom, "F", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end
end
@ -2904,7 +2930,7 @@ end
-- @param Arguments A #table or any field.
function BASE:T( Arguments )
if _TraceOn and _TraceClass[self.ClassName] then
if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -2914,12 +2940,14 @@ function BASE:T( Arguments )
Function = DebugInfoCurrent.name
end
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s" , LineCurrent, LineFrom, "T", self.ClassName, self.ClassID, routines.utils.oneLineSerialize( Arguments ) ) )
if _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName].Method[Function] then
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s" , LineCurrent, LineFrom, "T", self.ClassName, self.ClassID, routines.utils.oneLineSerialize( Arguments ) ) )
end
end
end
@ -3193,7 +3221,7 @@ GROUP = {
local GROUPS = {}
--- Create a new GROUP from a DCSGroup
-- @param self
-- @param #GROUP self
-- @param DCSGroup#Group DCSGroup The DCS Group
-- @return #GROUP self
function GROUP:New( DCSGroup )
@ -3215,7 +3243,7 @@ function GROUP:New( DCSGroup )
end
--- Create a new GROUP from an existing group name.
-- @param self
-- @param #GROUP self
-- @param GroupName The name of the DCS Group.
-- @return #GROUP self
function GROUP:NewFromName( GroupName )
@ -3235,7 +3263,7 @@ function GROUP:NewFromName( GroupName )
end
--- Create a new GROUP from an existing DCSUnit in the mission.
-- @param self
-- @param #GROUP self
-- @param DCSUnit The DCSUnit.
-- @return #GROUP self
function GROUP:NewFromDCSUnit( DCSUnit )
@ -3255,8 +3283,8 @@ function GROUP:NewFromDCSUnit( DCSUnit )
end
--- Gets the DCSGroup of the GROUP.
-- @param self
-- @return #Group The DCSGroup.
-- @param #GROUP self
-- @return DCSGroup#Group The DCSGroup.
function GROUP:GetDCSGroup()
self:F( { self.GroupName } )
self.DCSGroup = Group.getByName( self.GroupName )
@ -3264,7 +3292,7 @@ function GROUP:GetDCSGroup()
end
--- Gets the DCS Unit of the GROUP.
-- @param self
-- @param #GROUP self
-- @param #number UnitNumber The unit index to be returned from the GROUP.
-- @return #Unit The DCS Unit.
function GROUP:GetDCSUnit( UnitNumber )
@ -3273,8 +3301,17 @@ function GROUP:GetDCSUnit( UnitNumber )
end
--- Gets the DCSUnits of the GROUP.
-- @param #GROUP self
-- @return #table The DCSUnits.
function GROUP:GetDCSUnits()
self:F( { self.GroupName } )
return self.DCSGroup:getUnits()
end
--- Activates a GROUP.
-- @param self
-- @param #GROUP self
function GROUP:Activate()
self:F( { self.GroupName } )
trigger.action.activateGroup( self:GetDCSGroup() )
@ -3282,7 +3319,7 @@ function GROUP:Activate()
end
--- Gets the ID of the GROUP.
-- @param self
-- @param #GROUP self
-- @return #number The ID of the GROUP.
function GROUP:GetID()
self:F( self.GroupName )
@ -3291,7 +3328,7 @@ function GROUP:GetID()
end
--- Gets the name of the GROUP.
-- @param self
-- @param #GROUP self
-- @return #string The name of the GROUP.
function GROUP:GetName()
self:F( self.GroupName )
@ -3350,7 +3387,7 @@ end
--- Destroy a GROUP
-- Note that this destroy method also raises a destroy event at run-time.
-- So all event listeners will catch the destroy event of this GROUP.
-- @param self
-- @param #GROUP self
function GROUP:Destroy()
self:F( self.GroupName )
@ -3390,7 +3427,7 @@ end
--- Returns if the group is of an air category.
-- If the group is a helicopter or a plane, then this method will return true, otherwise false.
-- @param self
-- @param #GROUP self
-- @return #boolean Air category evaluation result.
function GROUP:IsAir()
self:F()
@ -3403,7 +3440,7 @@ end
--- Returns if the group is alive.
-- When the group exists at run-time, this method will return true, otherwise false.
-- @param self
-- @param #GROUP self
-- @return #boolean Alive result.
function GROUP:IsAlive()
self:F()
@ -3464,7 +3501,7 @@ end
--- Returns if all units of the group are on the ground or landed.
-- If all units of this group are on the ground, this function will return true, otherwise false.
-- @param self
-- @param #GROUP self
-- @return #boolean All units on the ground result.
function GROUP:AllOnGround()
self:F()
@ -3505,7 +3542,7 @@ end
--- Returns the current minimum height of the group.
-- Each unit within the group gets evaluated, and the minimum height (= the unit which is the lowest elevated) is returned.
-- @param self
-- @param #GROUP self
-- @return #number Minimum height found.
function GROUP:GetMinHeight()
self:F()
@ -3514,7 +3551,7 @@ end
--- Returns the current maximum height of the group.
-- Each unit within the group gets evaluated, and the maximum height (= the unit which is the highest elevated) is returned.
-- @param self
-- @param #GROUP self
-- @return #number Maximum height found.
function GROUP:GetMaxHeight()
self:F()
@ -4898,7 +4935,7 @@ end
--- Track DCSRTE DEAD or CRASH events for the internal scoring.
function DATABASE:OnDeadOrCrash( event )
--self:T( { event } )
self:F( { event } )
local TargetUnit = nil
local TargetGroup = nil
@ -4933,7 +4970,7 @@ function DATABASE:OnDeadOrCrash( event )
TargetUnitCategory = DATABASECategory[TargetCategory]
TargetUnitType = TargetType
--self:T( { TargetUnitName, TargetGroupName, TargetPlayerName, TargetCoalition, TargetCategory, TargetType } )
self:T( { TargetUnitName, TargetGroupName, TargetPlayerName, TargetCoalition, TargetCategory, TargetType } )
end
for PlayerName, PlayerData in pairs( self.Players ) do
@ -4996,7 +5033,7 @@ end
--- Follows new players entering Clients within the DCSRTE.
function DATABASE:_FollowPlayers()
self:F( "_FollowPlayers" )
self:F3( "_FollowPlayers" )
local ClientUnit = 0
local CoalitionsData = { AlivePlayersRed = coalition.getPlayers(coalition.side.RED), AlivePlayersBlue = coalition.getPlayers(coalition.side.BLUE) }
@ -5005,7 +5042,7 @@ function DATABASE:_FollowPlayers()
local AlivePlayerUnits = {}
for CoalitionId, CoalitionData in pairs( CoalitionsData ) do
self:T( { "_FollowPlayers", CoalitionData } )
self:T3( { "_FollowPlayers", CoalitionData } )
for UnitId, UnitData in pairs( CoalitionData ) do
self:_AddPlayerFromUnit( UnitData )
end
@ -5113,11 +5150,11 @@ function DATABASE:_AddMissionTaskScore( PlayerUnit, MissionName, Score )
self.Players[PlayerName].Score = self.Players[PlayerName].Score + Score
self.Players[PlayerName].Mission[MissionName].ScoreTask = self.Players[PlayerName].Mission[MissionName].ScoreTask + Score
MESSAGE:New( "Player '" .. PlayerName .. "' has finished another Task in Mission '" .. MissionName .. "'. " ..
Score .. " Score points added.",
"", 20, "/SCORETASK" .. PlayerName ):ToAll()
_Database:ScoreAdd( PlayerName, "TASK_" .. MissionName:gsub( ' ', '_' ), 1, Score, PlayerUnit:getName() )
MESSAGE:New( "Player '" .. PlayerName .. "' has finished another Task in Mission '" .. MissionName .. "'. " ..
Score .. " Score points added.",
"", 20, "/SCORETASK" .. PlayerName ):ToAll()
_Database:ScoreAdd( PlayerName, "TASK_" .. MissionName:gsub( ' ', '_' ), 1, Score, PlayerUnit:getName() )
end
@ -10357,14 +10394,18 @@ Include.File( "Zone" )
-- @type SPAWN
-- @extends Base#BASE
-- @field ClassName
-- @field #string SpawnTemplatePrefix
-- @field #string SpawnAliasPrefix
SPAWN = {
ClassName = "SPAWN",
SpawnTemplatePrefix = nil,
SpawnAliasPrefix = nil,
}
--- Creates the main object to spawn a GROUP defined in the DCS ME.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnTemplatePrefix is the name of the Group in the ME that defines the Template. Each new group will have the name starting with SpawnTemplatePrefix.
-- @return #SPAWN
-- @usage
@ -10405,7 +10446,7 @@ function SPAWN:New( SpawnTemplatePrefix )
end
--- Creates a new SPAWN instance to create new groups based on the defined template and using a new alias for each new group.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnTemplatePrefix is the name of the Group in the ME that defines the Template.
-- @param #string SpawnAliasPrefix is the name that will be given to the Group at runtime.
-- @return #SPAWN
@ -10452,7 +10493,7 @@ end
-- Note that this method is exceptionally important to balance the performance of the mission. Depending on the machine etc, a mission can only process a maximum amount of units.
-- If the time interval must be short, but there should not be more Units or Groups alive than a maximum amount of units, then this function should be used...
-- When a @{#SPAWN.New} is executed and the limit of the amount of units alive is reached, then no new spawn will happen of the group, until some of these units of the spawn object will be destroyed.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnMaxUnitsAlive The maximum amount of units that can be alive at runtime.
-- @param #number SpawnMaxGroups The maximum amount of groups that can be spawned. When the limit is reached, then no more actual spawns will happen of the group.
-- This parameter is useful to define a maximum amount of airplanes, ground troops, helicopters, ships etc within a supply area.
@ -10478,7 +10519,7 @@ end
--- Randomizes the defined route of the SpawnTemplatePrefix group in the ME. This is very useful to define extra variation of the behaviour of groups.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnStartPoint is the waypoint where the randomization begins.
-- Note that the StartPoint = 0 equaling the point where the group is spawned.
-- @param #number SpawnEndPoint is the waypoint where the randomization ends counting backwards.
@ -10511,7 +10552,7 @@ end
-- This function becomes useful when you need to spawn groups with random templates of groups defined within the mission editor,
-- but they will all follow the same Template route and have the same prefix name.
-- In other words, this method randomizes between a defined set of groups the template to be used for each new spawn of a group.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnTemplatePrefixTable A table with the names of the groups defined within the mission editor, from which one will be choosen when a new group will be spawned.
-- @return #SPAWN
-- @usage
@ -10548,7 +10589,7 @@ end
-- This will enable a spawned group to be re-spawned after it lands, until it is destroyed...
-- Note: When the group is respawned, it will re-spawn from the original airbase where it took off.
-- So ensure that the routes for groups that respawn, always return to the original airbase, or players may get confused ...
-- @param self
-- @param #SPAWN self
-- @return #SPAWN self
-- @usage
-- -- RU Su-34 - AI Ship Attack
@ -10598,7 +10639,7 @@ end
--- CleanUp groups when they are still alive, but inactive.
-- When groups are still alive and have become inactive due to damage and are unable to contribute anything, then this group will be removed at defined intervals in seconds.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnCleanUpInterval The interval to check for inactive groups within seconds.
-- @return #SPAWN self
-- @usage Spawn_Helicopter:CleanUp( 20 ) -- CleanUp the spawning of the helicopters every 20 seconds when they become inactive.
@ -10616,7 +10657,7 @@ end
--- Makes the groups visible before start (like a batallion).
-- The method will take the position of the group as the first position in the array.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnAngle The angle in degrees how the groups and each unit of the group will be positioned.
-- @param #number SpawnWidth The amount of Groups that will be positioned on the X axis.
-- @param #number SpawnDeltaX The space between each Group on the X-axis.
@ -10671,7 +10712,7 @@ end
--- Will spawn a group based on the internal index.
-- Note: Uses @{DATABASE} module defined in MOOSE.
-- @param self
-- @param #SPAWN self
-- @return Group#GROUP The group that was spawned. You can use this group for further actions.
function SPAWN:Spawn()
self:F( { self.SpawnTemplatePrefix, self.SpawnIndex } )
@ -10681,7 +10722,7 @@ end
--- Will re-spawn a group based on a given index.
-- Note: Uses @{DATABASE} module defined in MOOSE.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnIndex The index of the group to be spawned.
-- @return Group#GROUP The group that was spawned. You can use this group for further actions.
function SPAWN:ReSpawn( SpawnIndex )
@ -10691,10 +10732,11 @@ function SPAWN:ReSpawn( SpawnIndex )
SpawnIndex = 1
end
--local SpawnGroup = self:GetGroupFromIndex( SpawnIndex ):GetDCSGroup()
--if SpawnGroup then
--DCSGroup:destroy()
--end
local SpawnGroup = self:GetGroupFromIndex( SpawnIndex )
local SpawnDCSGroup = SpawnGroup:GetDCSGroup()
if SpawnDCSGroup then
SpawnGroup:Destroy()
end
return self:SpawnWithIndex( SpawnIndex )
end
@ -10729,7 +10771,7 @@ end
--- Spawns new groups at varying time intervals.
-- This is useful if you want to have continuity within your missions of certain (AI) groups to be present (alive) within your missions.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnTime The time interval defined in seconds between each new spawn of new groups.
-- @param #number SpawnTimeVariation The variation to be applied on the defined time interval between each new spawn.
-- The variation is a number between 0 and 1, representing the %-tage of variation to be applied on the time interval.
@ -10793,7 +10835,7 @@ end
--- Will spawn a group from a hosting unit. This function is mostly advisable to be used if you want to simulate spawning from air units, like helicopters, which are dropping infantry into a defined Landing Zone.
-- Note that each point in the route assigned to the spawning group is reset to the point of the spawn.
-- You can use the returned group to further define the route to be followed.
-- @param self
-- @param #SPAWN self
-- @param Unit#UNIT HostUnit The air or ground unit dropping or unloading the group.
-- @param #number OuterRadius The outer radius in meters where the new group will be spawned.
-- @param #number InnerRadius The inner radius in meters where the new group will NOT be spawned.
@ -10870,7 +10912,7 @@ function SPAWN:SpawnFromUnit( HostUnit, OuterRadius, InnerRadius, SpawnIndex )
end
--- Will spawn a Group within a given @{ZONE}.
-- @param self
-- @param #SPAWN self
-- @param #ZONE Zone The zone where the group is to be spawned.
-- @param #number SpawnIndex (Optional) The index which group to spawn within the given zone.
-- @return Group#GROUP that was spawned.
@ -10944,7 +10986,7 @@ end
--- Will return the SpawnGroupName either with with a specific count number or without any count.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnIndex Is the number of the Group that is to be spawned.
-- @return #string SpawnGroupName
function SPAWN:SpawnGroupName( SpawnIndex )
@ -10967,7 +11009,7 @@ function SPAWN:SpawnGroupName( SpawnIndex )
end
--- Find the first alive group.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnCursor A number holding the index from where to find the first group from.
-- @return Group#GROUP, #number The group found, the new index where the group was found.
-- @return #nil, #nil When no group is found, #nil is returned.
@ -10987,7 +11029,7 @@ end
--- Find the next alive group.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnCursor A number holding the last found previous index.
-- @return Group#GROUP, #number The group found, the new index where the group was found.
-- @return #nil, #nil When no group is found, #nil is returned.
@ -11028,7 +11070,7 @@ end
--- Get the group from an index.
-- Returns the group from the SpawnGroups list.
-- If no index is given, it will return the first group in the list.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnIndex The index of the group to return.
-- @return Group#GROUP
function SPAWN:GetGroupFromIndex( SpawnIndex )
@ -11046,7 +11088,7 @@ end
--- Get the group index from a DCSUnit.
-- The method will search for a #-mark, and will return the index behind the #-mark of the DCSUnit.
-- It will return nil of no prefix was found.
-- @param self
-- @param #SPAWN self
-- @param DCSUnit The DCS unit to be searched.
-- @return #string The prefix
-- @return #nil Nothing found
@ -11070,7 +11112,7 @@ end
--- Return the prefix of a DCSUnit.
-- The method will search for a #-mark, and will return the text before the #-mark.
-- It will return nil of no prefix was found.
-- @param self
-- @param #SPAWN self
-- @param DCSUnit The DCS unit to be searched.
-- @return #string The prefix
-- @return #nil Nothing found
@ -11241,7 +11283,7 @@ function SPAWN:_Prepare( SpawnTemplatePrefix, SpawnIndex )
end
--- Internal function randomizing the routes.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnIndex The index of the group to be spawned.
-- @return #SPAWN
function SPAWN:_RandomizeRoute( SpawnIndex )
@ -11373,7 +11415,7 @@ end
--- Obscolete
-- @todo Need to delete this... _Database does this now ...
function SPAWN:_OnDeadOrCrash( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local EventPrefix = self:_GetPrefixFromDCSUnit( event.initiator )
@ -11393,6 +11435,7 @@ end
-- This is needed to ensure that Re-SPAWNing only is done for landed AIR Groups.
-- @todo Need to test for AIR Groups only...
function SPAWN:_OnTakeOff( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local SpawnGroup = self:_GetGroupFromDCSUnit( event.initiator )
@ -11408,11 +11451,13 @@ end
-- This is needed to ensure that Re-SPAWNing is only done for landed AIR Groups.
-- @todo Need to test for AIR Groups only...
function SPAWN:_OnLand( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local SpawnGroup = self:_GetGroupFromDCSUnit( event.initiator )
local SpawnUnit = event.initiator
if SpawnUnit and SpawnUnit:isExist() and Object.getCategory(SpawnUnit) == Object.Category.UNIT then
local SpawnGroup = self:_GetGroupFromDCSUnit( SpawnUnit )
if SpawnGroup then
self:T( { "Landed event:" .. event.initiator:getName(), event } )
self:T( { "Landed event:" .. SpawnUnit:getName(), event } )
self.Landed = true
self:T( "self.Landed = true" )
if self.Landed and self.RepeatOnLanding then
@ -11427,15 +11472,18 @@ end
--- Will detect AIR Units shutting down their engines ...
-- When the event takes place, and the method @{RepeatOnEngineShutDown} was called, the spawned Group will Re-SPAWN.
-- But only when the Unit was registered to have landed.
-- @param #SPAWN self
-- @see _OnTakeOff
-- @see _OnLand
-- @todo Need to test for AIR Groups only...
function SPAWN:_OnLand( event )
function SPAWN:_OnEngineShutDown( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local SpawnGroup = self:_GetGroupFromDCSUnit( event.initiator )
local SpawnUnit = event.initiator
if SpawnUnit and SpawnUnit:isExist() and Object.getCategory(SpawnUnit) == Object.Category.UNIT then
local SpawnGroup = self:_GetGroupFromDCSUnit( SpawnUnit )
if SpawnGroup then
self:T( { "EngineShutDown event: " .. event.initiator:getName(), event } )
self:T( { "EngineShutDown event: " .. SpawnUnit:getName(), event } )
if self.Landed and self.RepeatOnEngineShutDown then
local SpawnGroupIndex = self:GetSpawnIndexFromGroup( SpawnGroup )
self:T( { "EngineShutDown: ", "ReSpawn:", SpawnGroup:GetName(), SpawnGroupIndex } )
@ -11476,8 +11524,8 @@ function SPAWN:_SpawnCleanUpScheduler()
while SpawnGroup do
if SpawnGroup:AllOnGround() and SpawnGroup:GetMaxVelocity() < 1 then
if not self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] then
self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] = timer.getTime()
if not self.SpanUwnCleanUpTimeStamps[SpawnGroup:GetName()] then
self.SpawnCleapTimeStamps[SpawnGroup:GetName()] = timer.getTime()
else
if self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] + self.SpawnCleanUpInterval < timer.getTime() then
self:T( { "CleanUp Scheduler:", "Cleaning:", SpawnGroup } )

View File

@ -14,7 +14,7 @@ local _TraceClass = {
--SPAWN = true,
--STAGE = true,
--ZONE = true,
GROUP = true,
--GROUP = true,
--UNIT = true,
--CLIENT = true,
--CARGO = true,
@ -25,8 +25,9 @@ local _TraceClass = {
--CLEANUP = true,
--MENU_CLIENT = true,
--MENU_CLIENT_COMMAND = true,
ESCORT = true,
--ESCORT = true,
}
local _TraceClassMethod = {}
--- The BASE Class
-- @type BASE
@ -282,12 +283,35 @@ end
-- Log a trace (only shown when trace is on)
-- TODO: Make trace function using variable parameters.
--- Set trace level
-- @param #BASE self
-- @param #number Level
function BASE:TraceLevel( Level )
_TraceLevel = Level
end
--- Set tracing for a class
-- @param #BASE self
-- @param #string Class
function BASE:TraceClass( Class )
_TraceClass[Class] = true
_TraceClassMethod[Class] = {}
end
--- Set tracing for a specific method of class
-- @param #BASE self
-- @param #string Class
-- @param #string Method
function BASE:TraceClassMethod( Class, Method )
_TraceClassMethod[Class].Method[Method] = true
end
--- Trace a function call. Must be at the beginning of the function logic.
-- @param #BASE self
-- @param Arguments A #table or any field.
function BASE:F( Arguments )
if _TraceOn and _TraceClass[self.ClassName] then
if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -296,13 +320,15 @@ function BASE:F( Arguments )
if DebugInfoCurrent.name then
Function = DebugInfoCurrent.name
end
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
if _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName].Method[Function] then
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s\(%s\)" , LineCurrent, LineFrom, "F", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s\(%s\)" , LineCurrent, LineFrom, "F", self.ClassName, self.ClassID, Function, routines.utils.oneLineSerialize( Arguments ) ) )
end
end
@ -333,7 +359,7 @@ end
-- @param Arguments A #table or any field.
function BASE:T( Arguments )
if _TraceOn and _TraceClass[self.ClassName] then
if _TraceOn and ( _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName] ) then
local DebugInfoCurrent = debug.getinfo( 2, "nl" )
local DebugInfoFrom = debug.getinfo( 3, "l" )
@ -343,12 +369,14 @@ function BASE:T( Arguments )
Function = DebugInfoCurrent.name
end
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s" , LineCurrent, LineFrom, "T", self.ClassName, self.ClassID, routines.utils.oneLineSerialize( Arguments ) ) )
if _TraceClass[self.ClassName] or _TraceClassMethod[self.ClassName].Method[Function] then
local LineCurrent = DebugInfoCurrent.currentline
local LineFrom = 0
if DebugInfoFrom then
LineFrom = DebugInfoFrom.currentline
end
env.info( string.format( "%6d\(%6d\)/%1s:%20s%05d.%s" , LineCurrent, LineFrom, "T", self.ClassName, self.ClassID, routines.utils.oneLineSerialize( Arguments ) ) )
end
end
end

View File

@ -223,7 +223,7 @@ end
--- Track DCSRTE DEAD or CRASH events for the internal scoring.
function DATABASE:OnDeadOrCrash( event )
--self:T( { event } )
self:F( { event } )
local TargetUnit = nil
local TargetGroup = nil
@ -258,7 +258,7 @@ function DATABASE:OnDeadOrCrash( event )
TargetUnitCategory = DATABASECategory[TargetCategory]
TargetUnitType = TargetType
--self:T( { TargetUnitName, TargetGroupName, TargetPlayerName, TargetCoalition, TargetCategory, TargetType } )
self:T( { TargetUnitName, TargetGroupName, TargetPlayerName, TargetCoalition, TargetCategory, TargetType } )
end
for PlayerName, PlayerData in pairs( self.Players ) do
@ -321,7 +321,7 @@ end
--- Follows new players entering Clients within the DCSRTE.
function DATABASE:_FollowPlayers()
self:F( "_FollowPlayers" )
self:F3( "_FollowPlayers" )
local ClientUnit = 0
local CoalitionsData = { AlivePlayersRed = coalition.getPlayers(coalition.side.RED), AlivePlayersBlue = coalition.getPlayers(coalition.side.BLUE) }
@ -330,7 +330,7 @@ function DATABASE:_FollowPlayers()
local AlivePlayerUnits = {}
for CoalitionId, CoalitionData in pairs( CoalitionsData ) do
self:T( { "_FollowPlayers", CoalitionData } )
self:T3( { "_FollowPlayers", CoalitionData } )
for UnitId, UnitData in pairs( CoalitionData ) do
self:_AddPlayerFromUnit( UnitData )
end
@ -438,11 +438,11 @@ function DATABASE:_AddMissionTaskScore( PlayerUnit, MissionName, Score )
self.Players[PlayerName].Score = self.Players[PlayerName].Score + Score
self.Players[PlayerName].Mission[MissionName].ScoreTask = self.Players[PlayerName].Mission[MissionName].ScoreTask + Score
MESSAGE:New( "Player '" .. PlayerName .. "' has finished another Task in Mission '" .. MissionName .. "'. " ..
Score .. " Score points added.",
"", 20, "/SCORETASK" .. PlayerName ):ToAll()
_Database:ScoreAdd( PlayerName, "TASK_" .. MissionName:gsub( ' ', '_' ), 1, Score, PlayerUnit:getName() )
MESSAGE:New( "Player '" .. PlayerName .. "' has finished another Task in Mission '" .. MissionName .. "'. " ..
Score .. " Score points added.",
"", 20, "/SCORETASK" .. PlayerName ):ToAll()
_Database:ScoreAdd( PlayerName, "TASK_" .. MissionName:gsub( ' ', '_' ), 1, Score, PlayerUnit:getName() )
end

View File

@ -30,7 +30,7 @@ GROUP = {
local GROUPS = {}
--- Create a new GROUP from a DCSGroup
-- @param self
-- @param #GROUP self
-- @param DCSGroup#Group DCSGroup The DCS Group
-- @return #GROUP self
function GROUP:New( DCSGroup )
@ -52,7 +52,7 @@ function GROUP:New( DCSGroup )
end
--- Create a new GROUP from an existing group name.
-- @param self
-- @param #GROUP self
-- @param GroupName The name of the DCS Group.
-- @return #GROUP self
function GROUP:NewFromName( GroupName )
@ -72,7 +72,7 @@ function GROUP:NewFromName( GroupName )
end
--- Create a new GROUP from an existing DCSUnit in the mission.
-- @param self
-- @param #GROUP self
-- @param DCSUnit The DCSUnit.
-- @return #GROUP self
function GROUP:NewFromDCSUnit( DCSUnit )
@ -92,8 +92,8 @@ function GROUP:NewFromDCSUnit( DCSUnit )
end
--- Gets the DCSGroup of the GROUP.
-- @param self
-- @return #Group The DCSGroup.
-- @param #GROUP self
-- @return DCSGroup#Group The DCSGroup.
function GROUP:GetDCSGroup()
self:F( { self.GroupName } )
self.DCSGroup = Group.getByName( self.GroupName )
@ -101,7 +101,7 @@ function GROUP:GetDCSGroup()
end
--- Gets the DCS Unit of the GROUP.
-- @param self
-- @param #GROUP self
-- @param #number UnitNumber The unit index to be returned from the GROUP.
-- @return #Unit The DCS Unit.
function GROUP:GetDCSUnit( UnitNumber )
@ -110,8 +110,17 @@ function GROUP:GetDCSUnit( UnitNumber )
end
--- Gets the DCSUnits of the GROUP.
-- @param #GROUP self
-- @return #table The DCSUnits.
function GROUP:GetDCSUnits()
self:F( { self.GroupName } )
return self.DCSGroup:getUnits()
end
--- Activates a GROUP.
-- @param self
-- @param #GROUP self
function GROUP:Activate()
self:F( { self.GroupName } )
trigger.action.activateGroup( self:GetDCSGroup() )
@ -119,7 +128,7 @@ function GROUP:Activate()
end
--- Gets the ID of the GROUP.
-- @param self
-- @param #GROUP self
-- @return #number The ID of the GROUP.
function GROUP:GetID()
self:F( self.GroupName )
@ -128,7 +137,7 @@ function GROUP:GetID()
end
--- Gets the name of the GROUP.
-- @param self
-- @param #GROUP self
-- @return #string The name of the GROUP.
function GROUP:GetName()
self:F( self.GroupName )
@ -187,7 +196,7 @@ end
--- Destroy a GROUP
-- Note that this destroy method also raises a destroy event at run-time.
-- So all event listeners will catch the destroy event of this GROUP.
-- @param self
-- @param #GROUP self
function GROUP:Destroy()
self:F( self.GroupName )
@ -227,7 +236,7 @@ end
--- Returns if the group is of an air category.
-- If the group is a helicopter or a plane, then this method will return true, otherwise false.
-- @param self
-- @param #GROUP self
-- @return #boolean Air category evaluation result.
function GROUP:IsAir()
self:F()
@ -240,7 +249,7 @@ end
--- Returns if the group is alive.
-- When the group exists at run-time, this method will return true, otherwise false.
-- @param self
-- @param #GROUP self
-- @return #boolean Alive result.
function GROUP:IsAlive()
self:F()
@ -301,7 +310,7 @@ end
--- Returns if all units of the group are on the ground or landed.
-- If all units of this group are on the ground, this function will return true, otherwise false.
-- @param self
-- @param #GROUP self
-- @return #boolean All units on the ground result.
function GROUP:AllOnGround()
self:F()
@ -342,7 +351,7 @@ end
--- Returns the current minimum height of the group.
-- Each unit within the group gets evaluated, and the minimum height (= the unit which is the lowest elevated) is returned.
-- @param self
-- @param #GROUP self
-- @return #number Minimum height found.
function GROUP:GetMinHeight()
self:F()
@ -351,7 +360,7 @@ end
--- Returns the current maximum height of the group.
-- Each unit within the group gets evaluated, and the maximum height (= the unit which is the highest elevated) is returned.
-- @param self
-- @param #GROUP self
-- @return #number Maximum height found.
function GROUP:GetMaxHeight()
self:F()

View File

@ -80,14 +80,18 @@ Include.File( "Zone" )
-- @type SPAWN
-- @extends Base#BASE
-- @field ClassName
-- @field #string SpawnTemplatePrefix
-- @field #string SpawnAliasPrefix
SPAWN = {
ClassName = "SPAWN",
SpawnTemplatePrefix = nil,
SpawnAliasPrefix = nil,
}
--- Creates the main object to spawn a GROUP defined in the DCS ME.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnTemplatePrefix is the name of the Group in the ME that defines the Template. Each new group will have the name starting with SpawnTemplatePrefix.
-- @return #SPAWN
-- @usage
@ -128,7 +132,7 @@ function SPAWN:New( SpawnTemplatePrefix )
end
--- Creates a new SPAWN instance to create new groups based on the defined template and using a new alias for each new group.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnTemplatePrefix is the name of the Group in the ME that defines the Template.
-- @param #string SpawnAliasPrefix is the name that will be given to the Group at runtime.
-- @return #SPAWN
@ -175,7 +179,7 @@ end
-- Note that this method is exceptionally important to balance the performance of the mission. Depending on the machine etc, a mission can only process a maximum amount of units.
-- If the time interval must be short, but there should not be more Units or Groups alive than a maximum amount of units, then this function should be used...
-- When a @{#SPAWN.New} is executed and the limit of the amount of units alive is reached, then no new spawn will happen of the group, until some of these units of the spawn object will be destroyed.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnMaxUnitsAlive The maximum amount of units that can be alive at runtime.
-- @param #number SpawnMaxGroups The maximum amount of groups that can be spawned. When the limit is reached, then no more actual spawns will happen of the group.
-- This parameter is useful to define a maximum amount of airplanes, ground troops, helicopters, ships etc within a supply area.
@ -201,7 +205,7 @@ end
--- Randomizes the defined route of the SpawnTemplatePrefix group in the ME. This is very useful to define extra variation of the behaviour of groups.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnStartPoint is the waypoint where the randomization begins.
-- Note that the StartPoint = 0 equaling the point where the group is spawned.
-- @param #number SpawnEndPoint is the waypoint where the randomization ends counting backwards.
@ -234,7 +238,7 @@ end
-- This function becomes useful when you need to spawn groups with random templates of groups defined within the mission editor,
-- but they will all follow the same Template route and have the same prefix name.
-- In other words, this method randomizes between a defined set of groups the template to be used for each new spawn of a group.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnTemplatePrefixTable A table with the names of the groups defined within the mission editor, from which one will be choosen when a new group will be spawned.
-- @return #SPAWN
-- @usage
@ -271,7 +275,7 @@ end
-- This will enable a spawned group to be re-spawned after it lands, until it is destroyed...
-- Note: When the group is respawned, it will re-spawn from the original airbase where it took off.
-- So ensure that the routes for groups that respawn, always return to the original airbase, or players may get confused ...
-- @param self
-- @param #SPAWN self
-- @return #SPAWN self
-- @usage
-- -- RU Su-34 - AI Ship Attack
@ -321,7 +325,7 @@ end
--- CleanUp groups when they are still alive, but inactive.
-- When groups are still alive and have become inactive due to damage and are unable to contribute anything, then this group will be removed at defined intervals in seconds.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnCleanUpInterval The interval to check for inactive groups within seconds.
-- @return #SPAWN self
-- @usage Spawn_Helicopter:CleanUp( 20 ) -- CleanUp the spawning of the helicopters every 20 seconds when they become inactive.
@ -339,7 +343,7 @@ end
--- Makes the groups visible before start (like a batallion).
-- The method will take the position of the group as the first position in the array.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnAngle The angle in degrees how the groups and each unit of the group will be positioned.
-- @param #number SpawnWidth The amount of Groups that will be positioned on the X axis.
-- @param #number SpawnDeltaX The space between each Group on the X-axis.
@ -394,7 +398,7 @@ end
--- Will spawn a group based on the internal index.
-- Note: Uses @{DATABASE} module defined in MOOSE.
-- @param self
-- @param #SPAWN self
-- @return Group#GROUP The group that was spawned. You can use this group for further actions.
function SPAWN:Spawn()
self:F( { self.SpawnTemplatePrefix, self.SpawnIndex } )
@ -404,7 +408,7 @@ end
--- Will re-spawn a group based on a given index.
-- Note: Uses @{DATABASE} module defined in MOOSE.
-- @param self
-- @param #SPAWN self
-- @param #string SpawnIndex The index of the group to be spawned.
-- @return Group#GROUP The group that was spawned. You can use this group for further actions.
function SPAWN:ReSpawn( SpawnIndex )
@ -414,10 +418,11 @@ function SPAWN:ReSpawn( SpawnIndex )
SpawnIndex = 1
end
--local SpawnGroup = self:GetGroupFromIndex( SpawnIndex ):GetDCSGroup()
--if SpawnGroup then
--DCSGroup:destroy()
--end
local SpawnGroup = self:GetGroupFromIndex( SpawnIndex )
local SpawnDCSGroup = SpawnGroup:GetDCSGroup()
if SpawnDCSGroup then
SpawnGroup:Destroy()
end
return self:SpawnWithIndex( SpawnIndex )
end
@ -452,7 +457,7 @@ end
--- Spawns new groups at varying time intervals.
-- This is useful if you want to have continuity within your missions of certain (AI) groups to be present (alive) within your missions.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnTime The time interval defined in seconds between each new spawn of new groups.
-- @param #number SpawnTimeVariation The variation to be applied on the defined time interval between each new spawn.
-- The variation is a number between 0 and 1, representing the %-tage of variation to be applied on the time interval.
@ -516,7 +521,7 @@ end
--- Will spawn a group from a hosting unit. This function is mostly advisable to be used if you want to simulate spawning from air units, like helicopters, which are dropping infantry into a defined Landing Zone.
-- Note that each point in the route assigned to the spawning group is reset to the point of the spawn.
-- You can use the returned group to further define the route to be followed.
-- @param self
-- @param #SPAWN self
-- @param Unit#UNIT HostUnit The air or ground unit dropping or unloading the group.
-- @param #number OuterRadius The outer radius in meters where the new group will be spawned.
-- @param #number InnerRadius The inner radius in meters where the new group will NOT be spawned.
@ -593,7 +598,7 @@ function SPAWN:SpawnFromUnit( HostUnit, OuterRadius, InnerRadius, SpawnIndex )
end
--- Will spawn a Group within a given @{ZONE}.
-- @param self
-- @param #SPAWN self
-- @param #ZONE Zone The zone where the group is to be spawned.
-- @param #number SpawnIndex (Optional) The index which group to spawn within the given zone.
-- @return Group#GROUP that was spawned.
@ -667,7 +672,7 @@ end
--- Will return the SpawnGroupName either with with a specific count number or without any count.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnIndex Is the number of the Group that is to be spawned.
-- @return #string SpawnGroupName
function SPAWN:SpawnGroupName( SpawnIndex )
@ -690,7 +695,7 @@ function SPAWN:SpawnGroupName( SpawnIndex )
end
--- Find the first alive group.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnCursor A number holding the index from where to find the first group from.
-- @return Group#GROUP, #number The group found, the new index where the group was found.
-- @return #nil, #nil When no group is found, #nil is returned.
@ -710,7 +715,7 @@ end
--- Find the next alive group.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnCursor A number holding the last found previous index.
-- @return Group#GROUP, #number The group found, the new index where the group was found.
-- @return #nil, #nil When no group is found, #nil is returned.
@ -751,7 +756,7 @@ end
--- Get the group from an index.
-- Returns the group from the SpawnGroups list.
-- If no index is given, it will return the first group in the list.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnIndex The index of the group to return.
-- @return Group#GROUP
function SPAWN:GetGroupFromIndex( SpawnIndex )
@ -769,7 +774,7 @@ end
--- Get the group index from a DCSUnit.
-- The method will search for a #-mark, and will return the index behind the #-mark of the DCSUnit.
-- It will return nil of no prefix was found.
-- @param self
-- @param #SPAWN self
-- @param DCSUnit The DCS unit to be searched.
-- @return #string The prefix
-- @return #nil Nothing found
@ -793,7 +798,7 @@ end
--- Return the prefix of a DCSUnit.
-- The method will search for a #-mark, and will return the text before the #-mark.
-- It will return nil of no prefix was found.
-- @param self
-- @param #SPAWN self
-- @param DCSUnit The DCS unit to be searched.
-- @return #string The prefix
-- @return #nil Nothing found
@ -964,7 +969,7 @@ function SPAWN:_Prepare( SpawnTemplatePrefix, SpawnIndex )
end
--- Internal function randomizing the routes.
-- @param self
-- @param #SPAWN self
-- @param #number SpawnIndex The index of the group to be spawned.
-- @return #SPAWN
function SPAWN:_RandomizeRoute( SpawnIndex )
@ -1096,7 +1101,7 @@ end
--- Obscolete
-- @todo Need to delete this... _Database does this now ...
function SPAWN:_OnDeadOrCrash( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local EventPrefix = self:_GetPrefixFromDCSUnit( event.initiator )
@ -1116,6 +1121,7 @@ end
-- This is needed to ensure that Re-SPAWNing only is done for landed AIR Groups.
-- @todo Need to test for AIR Groups only...
function SPAWN:_OnTakeOff( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local SpawnGroup = self:_GetGroupFromDCSUnit( event.initiator )
@ -1131,11 +1137,13 @@ end
-- This is needed to ensure that Re-SPAWNing is only done for landed AIR Groups.
-- @todo Need to test for AIR Groups only...
function SPAWN:_OnLand( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local SpawnGroup = self:_GetGroupFromDCSUnit( event.initiator )
local SpawnUnit = event.initiator
if SpawnUnit and SpawnUnit:isExist() and Object.getCategory(SpawnUnit) == Object.Category.UNIT then
local SpawnGroup = self:_GetGroupFromDCSUnit( SpawnUnit )
if SpawnGroup then
self:T( { "Landed event:" .. event.initiator:getName(), event } )
self:T( { "Landed event:" .. SpawnUnit:getName(), event } )
self.Landed = true
self:T( "self.Landed = true" )
if self.Landed and self.RepeatOnLanding then
@ -1150,15 +1158,18 @@ end
--- Will detect AIR Units shutting down their engines ...
-- When the event takes place, and the method @{RepeatOnEngineShutDown} was called, the spawned Group will Re-SPAWN.
-- But only when the Unit was registered to have landed.
-- @param #SPAWN self
-- @see _OnTakeOff
-- @see _OnLand
-- @todo Need to test for AIR Groups only...
function SPAWN:_OnLand( event )
function SPAWN:_OnEngineShutDown( event )
self:F( self.SpawnTemplatePrefix, event )
if event.initiator and event.initiator:getName() then
local SpawnGroup = self:_GetGroupFromDCSUnit( event.initiator )
local SpawnUnit = event.initiator
if SpawnUnit and SpawnUnit:isExist() and Object.getCategory(SpawnUnit) == Object.Category.UNIT then
local SpawnGroup = self:_GetGroupFromDCSUnit( SpawnUnit )
if SpawnGroup then
self:T( { "EngineShutDown event: " .. event.initiator:getName(), event } )
self:T( { "EngineShutDown event: " .. SpawnUnit:getName(), event } )
if self.Landed and self.RepeatOnEngineShutDown then
local SpawnGroupIndex = self:GetSpawnIndexFromGroup( SpawnGroup )
self:T( { "EngineShutDown: ", "ReSpawn:", SpawnGroup:GetName(), SpawnGroupIndex } )
@ -1199,8 +1210,8 @@ function SPAWN:_SpawnCleanUpScheduler()
while SpawnGroup do
if SpawnGroup:AllOnGround() and SpawnGroup:GetMaxVelocity() < 1 then
if not self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] then
self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] = timer.getTime()
if not self.SpanUwnCleanUpTimeStamps[SpawnGroup:GetName()] then
self.SpawnCleapTimeStamps[SpawnGroup:GetName()] = timer.getTime()
else
if self.SpawnCleanUpTimeStamps[SpawnGroup:GetName()] + self.SpawnCleanUpInterval < timer.getTime() then
self:T( { "CleanUp Scheduler:", "Cleaning:", SpawnGroup } )

Binary file not shown.

View File

@ -0,0 +1,49 @@
---
-- MOOSE SPAWN repeat test scenario
-- -------------------------------
-- There are 8 GROUPs Spawned.
-- They fly around Kutaisi and will land.
-- Upon landing:
-- 1. The KA-50 and the C-101EB should respawn itself directly when landed.
-- 2. the MI-8MTV2 and the A-10C should respawn itself when the air unit has parked at the ramp.
-- @module MOOSE_Test_SPAWN_Repeat
-- @author FlightControl
Include.File("Spawn")
BASE:TraceClass("GROUP")
BASE:TraceClass("SPAWN")
BASE:TraceClass("DATABASE")
do
-- Declare SPAWN objects
local Spawn_KA_50 = SPAWN:New("KA-50")
local Spawn_MI_8MTV2 = SPAWN:New("MI-8MTV2")
local Spawn_C_101EB = SPAWN:New("C-101EB")
local Spawn_A_10C = SPAWN:New("A-10C")
-- Choose repeat functionality
-- Repeat on landing
Spawn_KA_50:RepeatOnLanding()
Spawn_C_101EB:RepeatOnLanding()
-- Repeat on enging shutdown (when landed on the airport)
Spawn_MI_8MTV2:RepeatOnEngineShutDown()
Spawn_A_10C:RepeatOnEngineShutDown()
-- Now SPAWN the GROUPs
Spawn_KA_50:Spawn()
Spawn_KA_50:Spawn()
Spawn_C_101EB:Spawn()
Spawn_C_101EB:Spawn()
Spawn_MI_8MTV2:Spawn()
Spawn_MI_8MTV2:Spawn()
Spawn_A_10C:Spawn()
Spawn_A_10C:Spawn()
-- Now run the mission and observe the behaviour.
end

View File

@ -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"]

View File

@ -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

View File

@ -1,53 +0,0 @@
mode = ADF_ADF
receiver_mode = ADF_RECEIVER_TLF
homer_selection_method = ADF_HOMER_SELECTION_AUTO
channel = 1
volume = 0.5
local theatre = theatre or "none"
if theatre == 'Caucasus' then
channels = {
[1] = runway_homer_pair(Airdrome[Krasnodar],nil,localizedAirdromeName(terrainAirdromes[Krasnodar])),
[2] = runway_homer_pair(Airdrome[Maykop] ,nil,localizedAirdromeName(terrainAirdromes[Maykop])),
[3] = runway_homer_pair(Airdrome[Krymsk] ,nil,localizedAirdromeName(terrainAirdromes[Krymsk])),
[4] = runway_homer_pair(Airdrome[Anapa] ,nil,localizedAirdromeName(terrainAirdromes[Anapa])),
[5] = runway_homer_pair(Airdrome[Mozdok] ,nil,localizedAirdromeName(terrainAirdromes[Mozdok])),
[6] = runway_homer_pair(Airdrome[Nalchick] ,nil,localizedAirdromeName(terrainAirdromes[Nalchick])),
[7] = runway_homer_pair(Airdrome[MinVody] ,nil,localizedAirdromeName(terrainAirdromes[MinVody])),
[8] = {
[ADF_HOMER_FAR] = NDB(beacons["NDB_KISLOVODSK"]),
[ADF_HOMER_NEAR] = NDB(beacons["NDB_PEREDOVAIA"])
}
}
elseif theatre == 'Nevada' then
local beacons_by_name = {}
for i,o in pairs(beacons) do
if o.name == '' then
beacons_by_name[o.beaconId] = o
else
beacons_by_name[o.name] = o
end
end
local nevada_pair = function (id_1,id_2) return {
[ADF_HOMER_FAR] = NDB(beacons_by_name[id_1]),
[ADF_HOMER_NEAR] = NDB(beacons_by_name[id_2])
}
end
channels = {
nevada_pair('IndianSprings','Groom_Lake'),
nevada_pair('LasVegas','Nellis'),
nevada_pair("Milford","GOFFS"),
nevada_pair("Tonopah","Mina"),
nevada_pair("WilsonCreek","CedarCity"),
nevada_pair("BryceCanyon","MormonMesa"),
nevada_pair("Beatty","Bishop"),
nevada_pair("Coaldale","PeachSprings"),
nevada_pair("BoulderCity","Mercury"),
}
end

View File

@ -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

View File

@ -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
}

View File

@ -1,38 +0,0 @@
Include.File( "Mission" )
Include.File( "Client" )
Include.File( "Spawn" )
Include.File( "Escort" )
do
local function EventAliveHelicopter( Client )
local SpawnEscortHeli = SPAWN:New( "Escort Helicopter" )
local EscortGroupHeli1 = SpawnEscortHeli:Spawn()
local EscortGroupHeli2 = SpawnEscortHeli:Spawn()
local EscortGroupHeli3 = SpawnEscortHeli:Spawn()
local EscortGroupHeli4 = SpawnEscortHeli:Spawn()
local EscortHeli1 = ESCORT:New( Client, EscortGroupHeli1, "Escort Alpha" )
local EscortHeli2 = ESCORT:New( Client, EscortGroupHeli2, "Escort Bravo" )
local EscortHeli3 = ESCORT:New( Client, EscortGroupHeli3, "Escort Delta" )
local EscortHeli4 = ESCORT:New( Client, EscortGroupHeli4, "Escort Gamma" )
end
local function EventAlivePlane( Client )
local SpawnEscortPlane = SPAWN:New( "Escort Plane" )
local EscortGroupPlane = SpawnEscortPlane:Spawn()
local EscortPlane = ESCORT:New( Client, EscortGroupPlane, "Escort Test Plane" )
end
local EscortClientHeli = CLIENT:New( "Lead Helicopter", "Fly around and observe the behaviour of the escort helicopter" ):Alive( EventAliveHelicopter )
local EscortClientPlane = CLIENT:New( "Lead Plane", "Fly around and observe the behaviour of the escort airplane. Select Navigate->Joun-Up and airplane should follow you. Change speed and directions." )
:Alive( EventAlivePlane )
end
-- MISSION SCHEDULER STARTUP
MISSIONSCHEDULER.Start()
MISSIONSCHEDULER.ReportMenu()
MISSIONSCHEDULER.ReportMissionsHide()
env.info( "Test Mission loaded" )

View File

@ -1,43 +0,0 @@
local base = _G
env.info("Loading MOOSE " .. base.timer.getAbsTime() )
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/Moose/"
Include.MissionPath = Include.Path()
env.info( "Include.ProgramPath = " .. Include.ProgramPath)
env.info( "Include.MissionPath = " .. Include.MissionPath)
Include.Files = {}
Include.File( "Database" )
env.info("Loaded MOOSE Include Engine")

View File

@ -1,23 +0,0 @@
local base = _G
env.info("Loading MOOSE " .. base.timer.getAbsTime() )
Include = {}
Include.Path = function()
local str = debug.getinfo(2, "S").source
return str:match("(.*/)"):sub(1,-2):gsub("\\","/")
end
Include.File = function( IncludeFile )
end
Include.ProgramPath = "Scripts/Moose/Moose/"
Include.MissionPath = Include.Path()
env.info( "Include.ProgramPath = " .. Include.ProgramPath)
env.info( "Include.MissionPath = " .. Include.MissionPath)
Include.Files = {}
env.info("Loaded MOOSE Include Engine")

View File

@ -1,33 +0,0 @@
dictionary =
{
["DictKey_GroupName_19"] = "Escort Plane",
["DictKey_WptName_11"] = "",
["DictKey_UnitName_20"] = "Escort Plane",
["DictKey_GroupName_12"] = "Escort Helicopter",
["DictKey_WptName_30"] = "",
["DictKey_sortie_4"] = "",
["DictKey_WptName_28"] = "",
["DictKey_WptName_14"] = "",
["DictKey_WptName_29"] = "",
["DictKey_WptName_23"] = "",
["DictKey_GroupName_15"] = "Lead Plane",
["DictKey_descriptionRedTask_2"] = "",
["DictKey_GroupName_9"] = "Lead Helicopter",
["DictKey_GroupName_31"] = "Test Attack",
["DictKey_descriptionText_1"] = "",
["DictKey_UnitName_13"] = "Escort Helicopter",
["DictKey_UnitName_32"] = "Unit #1",
["DictKey_WptName_21"] = "",
["DictKey_descriptionBlueTask_3"] = "",
["DictKey_WptName_22"] = "",
["DictKey_WptName_18"] = "",
["DictKey_UnitName_10"] = "Lead Helicopter",
["DictKey_WptName_17"] = "",
["DictKey_WptName_33"] = "",
["DictKey_WptName_26"] = "",
["DictKey_WptName_25"] = "",
["DictKey_UnitName_16"] = "Lead Plane",
["DictKey_WptName_24"] = "",
["DictKey_WptName_34"] = "",
["DictKey_WptName_27"] = "",
} -- end of dictionary

View File

@ -1,6 +0,0 @@
mapResource =
{
["ResKey_Action_5"] = "Moose_Load_Dynamic.lua",
["ResKey_Action_6"] = "Moose_Load_Embedded.lua",
["ResKey_Action_8"] = "MOOSE_Escort_Test_Follow.lua",
} -- end of mapResource

File diff suppressed because it is too large Load Diff

View File

@ -1,203 +0,0 @@
options =
{
["difficulty"] =
{
["fuel"] = false,
["labels"] = true,
["easyRadar"] = false,
["easyCommunication"] = true,
["miniHUD"] = false,
["setGlobal"] = true,
["birds"] = 0,
["optionsView"] = "optview_all",
["permitCrash"] = true,
["immortal"] = true,
["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"] = true,
["cockpitStatusBarAllowed"] = false,
["geffect"] = "realistic",
}, -- end of ["difficulty"]
["playerName"] = "Killer",
["graphics"] =
{
["OculusRift"] = false,
["color"] = "32",
["preloadRadius"] = 150000,
["heatBlr"] = 1,
["scenes"] = "high",
["water"] = 2,
["visibRange"] = "Medium",
["treesVisibility"] = 10505,
["aspect"] = 1.7777777777778,
["lights"] = 2,
["HDR"] = 1,
["MSAA"] = 3,
["civTraffic"] = "medium",
["clutterMaxDistance"] = 920,
["terrainTextures"] = "max",
["multiMonitorSetup"] = "1camera",
["shadowTree"] = true,
["fullScreen"] = false,
["disableAero"] = false,
["DOF"] = 0,
["clouds"] = 1,
["flatTerrainShadows"] = 0,
["cockpitShadows"] = true,
["height"] = 1080,
["width"] = 1920,
["shadows"] = 3,
["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"]
["MiG-15bis"] =
{
["autoLeanToAimMiG15"] = true,
["CPLocalList"] = "chinese",
["gunCamera"] = 0,
["aiHelper"] = false,
}, -- end of ["MiG-15bis"]
["A-10C"] =
{
["CPLocalList"] = "default",
}, -- end of ["A-10C"]
["Ka-50"] =
{
["altTrimmingMethod"] = false,
["Ka50RudderTrimmer"] = false,
["CPLocalList"] = "english",
}, -- end of ["Ka-50"]
["P-51D"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["P-51D"]
["MiG-21Bis"] =
{
["Engine"] = false,
["CustomCockpit"] = false,
["Shake"] = 100,
["Reticle"] = false,
["Freeze"] = false,
}, -- end of ["MiG-21Bis"]
["F-86F"] =
{
["landSeatAdjustF86"] = true,
["CPLocalList"] = "default",
["NoseWheelSteeringSimpleBehaviourF86"] = true,
["gunCamera"] = 0,
}, -- end of ["F-86F"]
["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"]
["Mi-8MTV2"] =
{
["altMi8TrimmingMethod"] = false,
["Mi8AutopilotAdjustment"] = false,
["Mi8RudderTrimmer"] = false,
["controlHelperMi8"] = false,
["CPLocalList"] = "default",
["weapTooltipsMi8"] = true,
["Mi8FOV"] = 120,
}, -- end of ["Mi-8MTV2"]
["TF-51D"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["TF-51D"]
["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"]
["Su-25T"] =
{
["CPLocalList"] = "default",
}, -- end of ["Su-25T"]
}, -- 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

View File

@ -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"] = "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 [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"] = "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 [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"] = "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 [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"] = "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 [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"] = "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 [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