This commit is contained in:
FlightControl 2017-02-14 08:49:59 +01:00
parent a47195198e
commit 62b668029b
115 changed files with 28580 additions and 2880 deletions

View File

@ -530,10 +530,20 @@ do -- FSM
function FSM:_call_handler( handler, params, EventName )
local ErrorHandler = function( errmsg )
env.info( "Error in SCHEDULER function:" .. errmsg )
if debug ~= nil then
env.info( debug.traceback() )
end
return errmsg
end
if self[handler] then
self:T( "Calling " .. handler )
self._EventSchedules[EventName] = nil
local Value = self[handler]( self, unpack(params) )
local Result, Value = xpcall( function() return self[handler]( self, unpack( params ) ) end, ErrorHandler )
return Value
end
end

View File

@ -181,11 +181,15 @@ function SCHEDULEDISPATCHER:Start( Scheduler, CallID )
if CallID then
local Schedule = self.Schedule[Scheduler]
Schedule[CallID].ScheduleID = timer.scheduleFunction(
Schedule[CallID].CallHandler,
CallID,
timer.getTime() + Schedule[CallID].Start
)
-- Only start when there is no ScheduleID defined!
-- This prevents to "Start" the scheduler twice with the same CallID...
if not Schedule[CallID].ScheduleID then
Schedule[CallID].ScheduleID = timer.scheduleFunction(
Schedule[CallID].CallHandler,
CallID,
timer.getTime() + Schedule[CallID].Start
)
end
else
for CallID, Schedule in pairs( self.Schedule[Scheduler] ) do
self:Start( Scheduler, CallID ) -- Recursive
@ -198,7 +202,12 @@ function SCHEDULEDISPATCHER:Stop( Scheduler, CallID )
if CallID then
local Schedule = self.Schedule[Scheduler]
timer.removeFunction( Schedule[CallID].ScheduleID )
-- Only stop when there is a ScheduleID defined for the CallID.
-- So, when the scheduler was stopped before, do nothing.
if Schedule[CallID].ScheduleID then
timer.removeFunction( Schedule[CallID].ScheduleID )
Schedule[CallID].ScheduleID = nil
end
else
for CallID, Schedule in pairs( self.Schedule[Scheduler] ) do
self:Stop( Scheduler, CallID ) -- Recursive

View File

@ -384,6 +384,29 @@ function SET_BASE:Get( ObjectName )
end
--- Gets the first object from the @{Set#SET_BASE} and derived classes.
-- @param #SET_BASE self
-- @return Core.Base#BASE
function SET_BASE:GetFirst()
self:F()
local t = self.List.first._
self:T3( { t } )
return t
end
--- Gets the last object from the @{Set#SET_BASE} and derived classes.
-- @param #SET_BASE self
-- @return Core.Base#BASE
function SET_BASE:GetLast()
self:F()
local t = self.List.last._
self:T3( { t } )
return t
end
--- Retrieves the amount of objects in the @{Set#SET_BASE} and derived classes.
-- @param #SET_BASE self
-- @return #number Count
@ -652,7 +675,8 @@ function SET_BASE:ForEach( IteratorFunction, arg, Set, Function, FunctionArgumen
return false
end
self.CallScheduler:Schedule( self, Schedule, {}, self.TimeInterval, self.TimeInterval, 0 )
--self.CallScheduler:Schedule( self, Schedule, {}, self.TimeInterval, self.TimeInterval, 0 )
Schedule()
return self
end
@ -725,7 +749,7 @@ end
--- SET_GROUP class
-- @type SET_GROUP
-- @extends #SET_BASE
-- @extends Core.Set#SET_BASE
SET_GROUP = {
ClassName = "SET_GROUP",
Filter = {

View File

@ -212,6 +212,60 @@ function ZONE_BASE:GetVec2()
return nil
end
--- Returns a @{Point#POINT_VEC2} of the zone.
-- @param #ZONE_BASE self
-- @param Dcs.DCSTypes#Distance Height The height to add to the land height where the center of the zone is located.
-- @return Core.Point#POINT_VEC2 The PointVec2 of the zone.
function ZONE_BASE:GetPointVec2()
self:F2( self.ZoneName )
local Vec2 = self:GetVec2()
local PointVec2 = POINT_VEC2:NewFromVec2( Vec2 )
self:T2( { PointVec2 } )
return PointVec2
end
--- Returns the @{DCSTypes#Vec3} of the zone.
-- @param #ZONE_BASE self
-- @param Dcs.DCSTypes#Distance Height The height to add to the land height where the center of the zone is located.
-- @return Dcs.DCSTypes#Vec3 The Vec3 of the zone.
function ZONE_BASE:GetVec3( Height )
self:F2( self.ZoneName )
Height = Height or 0
local Vec2 = self:GetVec2()
local Vec3 = { x = Vec2.x, y = land.getHeight( self:GetVec2() ) + Height, z = Vec2.y }
self:T2( { Vec3 } )
return Vec3
end
--- Returns a @{Point#POINT_VEC3} of the zone.
-- @param #ZONE_BASE self
-- @param Dcs.DCSTypes#Distance Height The height to add to the land height where the center of the zone is located.
-- @return Core.Point#POINT_VEC3 The PointVec3 of the zone.
function ZONE_BASE:GetPointVec3( Height )
self:F2( self.ZoneName )
local Vec3 = self:GetVec3( Height )
local PointVec3 = POINT_VEC3:NewFromVec3( Vec3 )
self:T2( { PointVec3 } )
return PointVec3
end
--- Define a random @{DCSTypes#Vec2} within the zone.
-- @param #ZONE_BASE self
-- @return Dcs.DCSTypes#Vec2 The Vec2 coordinates.

File diff suppressed because it is too large Load Diff

View File

@ -84,7 +84,7 @@
--
-- ESCORT initialization methods.
-- ==============================
-- The following menus are created within the RADIO MENU of an active unit hosted by a player:
-- The following menus are created within the RADIO MENU (F10) of an active unit hosted by a player:
--
-- * @{#ESCORT.MenuFollowAt}: Creates a menu to make the escort follow the client.
-- * @{#ESCORT.MenuHoldAtEscortPosition}: Creates a menu to hold the escort at its current position.
@ -128,6 +128,7 @@
-- @Field Dcs.DCSTypes#AI.Option.Air.val.ROE OptionROE Which ROE is set to the EscortGroup.
-- @field Dcs.DCSTypes#AI.Option.Air.val.REACTION_ON_THREAT OptionReactionOnThreat Which REACTION_ON_THREAT is set to the EscortGroup.
-- @field Core.Menu#MENU_CLIENT EscortMenuResumeMission
-- @field Functional.Detection#DETECTION_BASE Detection
ESCORT = {
ClassName = "ESCORT",
EscortName = nil, -- The Escort Name
@ -176,14 +177,22 @@ ESCORT = {
-- -- Now use these 2 objects to construct the new EscortPlanes object.
-- EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the mission. You are escorted by a plane with code name 'Desert', which can be instructed through the F10 radio menu." )
function ESCORT:New( EscortClient, EscortGroup, EscortName, EscortBriefing )
local self = BASE:Inherit( self, BASE:New() )
local self = BASE:Inherit( self, BASE:New() ) -- #ESCORT
self:F( { EscortClient, EscortGroup, EscortName } )
self.EscortClient = EscortClient -- Wrapper.Client#CLIENT
self.EscortGroup = EscortGroup -- Wrapper.Group#GROUP
self.EscortName = EscortName
self.EscortBriefing = EscortBriefing
self.EscortSetGroup = SET_GROUP:New()
self.EscortSetGroup:AddObject( self.EscortGroup )
self.EscortSetGroup:Flush()
self.Detection = DETECTION_UNITS:New( self.EscortSetGroup, 15000 )
self.EscortGroup.Detection = self.Detection
-- Set EscortGroup known at EscortClient.
if not self.EscortClient._EscortGroups then
self.EscortClient._EscortGroups = {}
@ -193,7 +202,7 @@ function ESCORT:New( EscortClient, EscortGroup, EscortName, EscortBriefing )
self.EscortClient._EscortGroups[EscortGroup:GetName()] = {}
self.EscortClient._EscortGroups[EscortGroup:GetName()].EscortGroup = self.EscortGroup
self.EscortClient._EscortGroups[EscortGroup:GetName()].EscortName = self.EscortName
self.EscortClient._EscortGroups[EscortGroup:GetName()].Targets = {}
self.EscortClient._EscortGroups[EscortGroup:GetName()].Detection = self.EscortGroup.Detection
end
self.EscortMenu = MENU_CLIENT:New( self.EscortClient, self.EscortName )
@ -218,14 +227,29 @@ function ESCORT:New( EscortClient, EscortGroup, EscortName, EscortBriefing )
self.FollowDistance = 100
self.CT1 = 0
self.GT1 = 0
self.FollowScheduler, self.FollowSchedule = SCHEDULER:New( self, self._FollowScheduler, {}, 1, .5, .01 )
self.FollowScheduler:Stop( self.FollowSchedule )
self.EscortMode = ESCORT.MODE.MISSION
return self
end
--- Set a Detection method for the EscortClient to be reported upon.
-- Detection methods are based on the derived classes from DETECTION_BASE.
-- @param #ESCORT self
-- @param Function.Detection#DETECTION_BASE Detection
function ESCORT:SetDetection( Detection )
self.Detection = Detection
self.EscortGroup.Detection = self.Detection
self.EscortClient._EscortGroups[self.EscortGroup:GetName()].Detection = self.EscortGroup.Detection
end
--- This function is for test, it will put on the frequency of the FollowScheduler a red smoke at the direction vector calculated for the escort to fly to.
-- This allows to visualize where the escort is flying to.
-- @param #ESCORT self
@ -283,7 +307,7 @@ function ESCORT:MenuFollowAt( Distance )
self.EscortMenuJoinUpAndFollow = {}
end
self.EscortMenuJoinUpAndFollow[#self.EscortMenuJoinUpAndFollow+1] = MENU_CLIENT_COMMAND:New( self.EscortClient, "Join-Up and Follow at " .. Distance, self.EscortMenuReportNavigation, ESCORT._JoinUpAndFollow, { ParamSelf = self, ParamDistance = Distance } )
self.EscortMenuJoinUpAndFollow[#self.EscortMenuJoinUpAndFollow+1] = MENU_CLIENT_COMMAND:New( self.EscortClient, "Join-Up and Follow at " .. Distance, self.EscortMenuReportNavigation, ESCORT._JoinUpAndFollow, self, Distance )
self.EscortMode = ESCORT.MODE.FOLLOW
end
@ -341,11 +365,10 @@ function ESCORT:MenuHoldAtEscortPosition( Height, Seconds, MenuTextFormat )
MenuText,
self.EscortMenuHold,
ESCORT._HoldPosition,
{ ParamSelf = self,
ParamOrbitGroup = self.EscortGroup,
ParamHeight = Height,
ParamSeconds = Seconds
}
self,
self.EscortGroup,
Height,
Seconds
)
end
@ -462,9 +485,8 @@ function ESCORT:MenuScanForTargets( Height, Seconds, MenuTextFormat )
MenuText,
self.EscortMenuScan,
ESCORT._ScanTargets,
{ ParamSelf = self,
ParamScanDuration = 30
}
self,
30
)
end
@ -494,11 +516,11 @@ function ESCORT:MenuFlare( MenuTextFormat )
end
if not self.EscortMenuFlare then
self.EscortMenuFlare = MENU_CLIENT:New( self.EscortClient, MenuText, self.EscortMenuReportNavigation, ESCORT._Flare, { ParamSelf = self } )
self.EscortMenuFlareGreen = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release green flare", self.EscortMenuFlare, ESCORT._Flare, { ParamSelf = self, ParamColor = FLARECOLOR.Green, ParamMessage = "Released a green flare!" } )
self.EscortMenuFlareRed = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release red flare", self.EscortMenuFlare, ESCORT._Flare, { ParamSelf = self, ParamColor = FLARECOLOR.Red, ParamMessage = "Released a red flare!" } )
self.EscortMenuFlareWhite = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release white flare", self.EscortMenuFlare, ESCORT._Flare, { ParamSelf = self, ParamColor = FLARECOLOR.White, ParamMessage = "Released a white flare!" } )
self.EscortMenuFlareYellow = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release yellow flare", self.EscortMenuFlare, ESCORT._Flare, { ParamSelf = self, ParamColor = FLARECOLOR.Yellow, ParamMessage = "Released a yellow flare!" } )
self.EscortMenuFlare = MENU_CLIENT:New( self.EscortClient, MenuText, self.EscortMenuReportNavigation, ESCORT._Flare, self )
self.EscortMenuFlareGreen = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release green flare", self.EscortMenuFlare, ESCORT._Flare, self, FLARECOLOR.Green, "Released a green flare!" )
self.EscortMenuFlareRed = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release red flare", self.EscortMenuFlare, ESCORT._Flare, self, FLARECOLOR.Red, "Released a red flare!" )
self.EscortMenuFlareWhite = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release white flare", self.EscortMenuFlare, ESCORT._Flare, self, FLARECOLOR.White, "Released a white flare!" )
self.EscortMenuFlareYellow = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release yellow flare", self.EscortMenuFlare, ESCORT._Flare, self, FLARECOLOR.Yellow, "Released a yellow flare!" )
end
return self
@ -527,12 +549,12 @@ function ESCORT:MenuSmoke( MenuTextFormat )
end
if not self.EscortMenuSmoke then
self.EscortMenuSmoke = MENU_CLIENT:New( self.EscortClient, "Smoke", self.EscortMenuReportNavigation, ESCORT._Smoke, { ParamSelf = self } )
self.EscortMenuSmokeGreen = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release green smoke", self.EscortMenuSmoke, ESCORT._Smoke, { ParamSelf = self, ParamColor = UNIT.SmokeColor.Green, ParamMessage = "Releasing green smoke!" } )
self.EscortMenuSmokeRed = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release red smoke", self.EscortMenuSmoke, ESCORT._Smoke, { ParamSelf = self, ParamColor = UNIT.SmokeColor.Red, ParamMessage = "Releasing red smoke!" } )
self.EscortMenuSmokeWhite = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release white smoke", self.EscortMenuSmoke, ESCORT._Smoke, { ParamSelf = self, ParamColor = UNIT.SmokeColor.White, ParamMessage = "Releasing white smoke!" } )
self.EscortMenuSmokeOrange = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release orange smoke", self.EscortMenuSmoke, ESCORT._Smoke, { ParamSelf = self, ParamColor = UNIT.SmokeColor.Orange, ParamMessage = "Releasing orange smoke!" } )
self.EscortMenuSmokeBlue = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release blue smoke", self.EscortMenuSmoke, ESCORT._Smoke, { ParamSelf = self, ParamColor = UNIT.SmokeColor.Blue, ParamMessage = "Releasing blue smoke!" } )
self.EscortMenuSmoke = MENU_CLIENT:New( self.EscortClient, "Smoke", self.EscortMenuReportNavigation, ESCORT._Smoke, self )
self.EscortMenuSmokeGreen = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release green smoke", self.EscortMenuSmoke, ESCORT._Smoke, self, SMOKECOLOR.Green, "Releasing green smoke!" )
self.EscortMenuSmokeRed = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release red smoke", self.EscortMenuSmoke, ESCORT._Smoke, self, SMOKECOLOR.Red, "Releasing red smoke!" )
self.EscortMenuSmokeWhite = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release white smoke", self.EscortMenuSmoke, ESCORT._Smoke, self, SMOKECOLOR.White, "Releasing white smoke!" )
self.EscortMenuSmokeOrange = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release orange smoke", self.EscortMenuSmoke, ESCORT._Smoke, self, SMOKECOLOR.Orange, "Releasing orange smoke!" )
self.EscortMenuSmokeBlue = MENU_CLIENT_COMMAND:New( self.EscortClient, "Release blue smoke", self.EscortMenuSmoke, ESCORT._Smoke, self, SMOKECOLOR.Blue, "Releasing blue smoke!" )
end
end
@ -557,9 +579,9 @@ function ESCORT:MenuReportTargets( Seconds )
end
-- Report Targets
self.EscortMenuReportNearbyTargetsNow = MENU_CLIENT_COMMAND:New( self.EscortClient, "Report targets now!", self.EscortMenuReportNearbyTargets, ESCORT._ReportNearbyTargetsNow, { ParamSelf = self } )
self.EscortMenuReportNearbyTargetsOn = MENU_CLIENT_COMMAND:New( self.EscortClient, "Report targets on", self.EscortMenuReportNearbyTargets, ESCORT._SwitchReportNearbyTargets, { ParamSelf = self, ParamReportTargets = true } )
self.EscortMenuReportNearbyTargetsOff = MENU_CLIENT_COMMAND:New( self.EscortClient, "Report targets off", self.EscortMenuReportNearbyTargets, ESCORT._SwitchReportNearbyTargets, { ParamSelf = self, ParamReportTargets = false, } )
self.EscortMenuReportNearbyTargetsNow = MENU_CLIENT_COMMAND:New( self.EscortClient, "Report targets now!", self.EscortMenuReportNearbyTargets, ESCORT._ReportNearbyTargetsNow, self )
self.EscortMenuReportNearbyTargetsOn = MENU_CLIENT_COMMAND:New( self.EscortClient, "Report targets on", self.EscortMenuReportNearbyTargets, ESCORT._SwitchReportNearbyTargets, self, true )
self.EscortMenuReportNearbyTargetsOff = MENU_CLIENT_COMMAND:New( self.EscortClient, "Report targets off", self.EscortMenuReportNearbyTargets, ESCORT._SwitchReportNearbyTargets, self, false )
-- Attack Targets
self.EscortMenuAttackNearbyTargets = MENU_CLIENT:New( self.EscortClient, "Attack targets", self.EscortMenu )
@ -596,16 +618,16 @@ function ESCORT:MenuROE( MenuTextFormat )
-- Rules of Engagement
self.EscortMenuROE = MENU_CLIENT:New( self.EscortClient, "ROE", self.EscortMenu )
if self.EscortGroup:OptionROEHoldFirePossible() then
self.EscortMenuROEHoldFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Hold Fire", self.EscortMenuROE, ESCORT._ROE, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROEHoldFire(), ParamMessage = "Holding weapons!" } )
self.EscortMenuROEHoldFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Hold Fire", self.EscortMenuROE, ESCORT._ROE, self, self.EscortGroup:OptionROEHoldFire(), "Holding weapons!" )
end
if self.EscortGroup:OptionROEReturnFirePossible() then
self.EscortMenuROEReturnFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Return Fire", self.EscortMenuROE, ESCORT._ROE, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROEReturnFire(), ParamMessage = "Returning fire!" } )
self.EscortMenuROEReturnFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Return Fire", self.EscortMenuROE, ESCORT._ROE, self, self.EscortGroup:OptionROEReturnFire(), "Returning fire!" )
end
if self.EscortGroup:OptionROEOpenFirePossible() then
self.EscortMenuROEOpenFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Open Fire", self.EscortMenuROE, ESCORT._ROE, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROEOpenFire(), ParamMessage = "Opening fire on designated targets!!" } )
self.EscortMenuROEOpenFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Open Fire", self.EscortMenuROE, ESCORT._ROE, self, self.EscortGroup:OptionROEOpenFire(), "Opening fire on designated targets!!" )
end
if self.EscortGroup:OptionROEWeaponFreePossible() then
self.EscortMenuROEWeaponFree = MENU_CLIENT_COMMAND:New( self.EscortClient, "Weapon Free", self.EscortMenuROE, ESCORT._ROE, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROEWeaponFree(), ParamMessage = "Opening fire on targets of opportunity!" } )
self.EscortMenuROEWeaponFree = MENU_CLIENT_COMMAND:New( self.EscortClient, "Weapon Free", self.EscortMenuROE, ESCORT._ROE, self, self.EscortGroup:OptionROEWeaponFree(), "Opening fire on targets of opportunity!" )
end
end
@ -625,16 +647,16 @@ function ESCORT:MenuEvasion( MenuTextFormat )
-- Reaction to Threats
self.EscortMenuEvasion = MENU_CLIENT:New( self.EscortClient, "Evasion", self.EscortMenu )
if self.EscortGroup:OptionROTNoReactionPossible() then
self.EscortMenuEvasionNoReaction = MENU_CLIENT_COMMAND:New( self.EscortClient, "Fight until death", self.EscortMenuEvasion, ESCORT._ROT, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROTNoReaction(), ParamMessage = "Fighting until death!" } )
self.EscortMenuEvasionNoReaction = MENU_CLIENT_COMMAND:New( self.EscortClient, "Fight until death", self.EscortMenuEvasion, ESCORT._ROT, self, self.EscortGroup:OptionROTNoReaction(), "Fighting until death!" )
end
if self.EscortGroup:OptionROTPassiveDefensePossible() then
self.EscortMenuEvasionPassiveDefense = MENU_CLIENT_COMMAND:New( self.EscortClient, "Use flares, chaff and jammers", self.EscortMenuEvasion, ESCORT._ROT, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROTPassiveDefense(), ParamMessage = "Defending using jammers, chaff and flares!" } )
self.EscortMenuEvasionPassiveDefense = MENU_CLIENT_COMMAND:New( self.EscortClient, "Use flares, chaff and jammers", self.EscortMenuEvasion, ESCORT._ROT, self, self.EscortGroup:OptionROTPassiveDefense(), "Defending using jammers, chaff and flares!" )
end
if self.EscortGroup:OptionROTEvadeFirePossible() then
self.EscortMenuEvasionEvadeFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Evade enemy fire", self.EscortMenuEvasion, ESCORT._ROT, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROTEvadeFire(), ParamMessage = "Evading on enemy fire!" } )
self.EscortMenuEvasionEvadeFire = MENU_CLIENT_COMMAND:New( self.EscortClient, "Evade enemy fire", self.EscortMenuEvasion, ESCORT._ROT, self, self.EscortGroup:OptionROTEvadeFire(), "Evading on enemy fire!" )
end
if self.EscortGroup:OptionROTVerticalPossible() then
self.EscortMenuOptionEvasionVertical = MENU_CLIENT_COMMAND:New( self.EscortClient, "Go below radar and evade fire", self.EscortMenuEvasion, ESCORT._ROT, { ParamSelf = self, ParamFunction = self.EscortGroup:OptionROTVertical(), ParamMessage = "Evading on enemy fire with vertical manoeuvres!" } )
self.EscortMenuOptionEvasionVertical = MENU_CLIENT_COMMAND:New( self.EscortClient, "Go below radar and evade fire", self.EscortMenuEvasion, ESCORT._ROT, self, self.EscortGroup:OptionROTVertical(), "Evading on enemy fire with vertical manoeuvres!" )
end
end
end
@ -659,16 +681,12 @@ end
--- @param #MENUPARAM MenuParam
function ESCORT._HoldPosition( MenuParam )
function ESCORT:_HoldPosition( OrbitGroup, OrbitHeight, OrbitSeconds )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local OrbitGroup = MenuParam.ParamOrbitGroup -- Wrapper.Group#GROUP
local OrbitUnit = OrbitGroup:GetUnit(1) -- Wrapper.Unit#UNIT
local OrbitHeight = MenuParam.ParamHeight
local OrbitSeconds = MenuParam.ParamSeconds -- Not implemented yet
self.FollowScheduler:Stop( self.FollowSchedule )
@ -703,13 +721,12 @@ function ESCORT._HoldPosition( MenuParam )
end
--- @param #MENUPARAM MenuParam
function ESCORT._JoinUpAndFollow( MenuParam )
function ESCORT:_JoinUpAndFollow( Distance )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
self.Distance = MenuParam.ParamDistance
self.Distance = Distance
self:JoinUpAndFollow( EscortGroup, EscortClient, self.Distance )
end
@ -737,38 +754,29 @@ function ESCORT:JoinUpAndFollow( EscortGroup, EscortClient, Distance )
end
--- @param #MENUPARAM MenuParam
function ESCORT._Flare( MenuParam )
function ESCORT:_Flare( Color, Message )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local Color = MenuParam.ParamColor
local Message = MenuParam.ParamMessage
EscortGroup:GetUnit(1):Flare( Color )
EscortGroup:MessageToClient( Message, 10, EscortClient )
end
--- @param #MENUPARAM MenuParam
function ESCORT._Smoke( MenuParam )
function ESCORT:_Smoke( Color, Message )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local Color = MenuParam.ParamColor
local Message = MenuParam.ParamMessage
EscortGroup:GetUnit(1):Smoke( Color )
EscortGroup:MessageToClient( Message, 10, EscortClient )
end
--- @param #MENUPARAM MenuParam
function ESCORT._ReportNearbyTargetsNow( MenuParam )
function ESCORT:_ReportNearbyTargetsNow()
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
@ -776,13 +784,12 @@ function ESCORT._ReportNearbyTargetsNow( MenuParam )
end
function ESCORT._SwitchReportNearbyTargets( MenuParam )
function ESCORT:_SwitchReportNearbyTargets( ReportTargets )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
self.ReportTargets = MenuParam.ParamReportTargets
self.ReportTargets = ReportTargets
if self.ReportTargets then
if not self.ReportTargetsScheduler then
@ -795,34 +802,25 @@ function ESCORT._SwitchReportNearbyTargets( MenuParam )
end
--- @param #MENUPARAM MenuParam
function ESCORT._ScanTargets( MenuParam )
function ESCORT:_ScanTargets( ScanDuration )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortGroup = self.EscortGroup -- Wrapper.Group#GROUP
local EscortClient = self.EscortClient
local ScanDuration = MenuParam.ParamScanDuration
self.FollowScheduler:Stop( self.FollowSchedule )
if EscortGroup:IsHelicopter() then
SCHEDULER:New( EscortGroup, EscortGroup.PushTask,
{ EscortGroup:TaskControlled(
EscortGroup:TaskOrbitCircle( 200, 20 ),
EscortGroup:TaskCondition( nil, nil, nil, nil, ScanDuration, nil )
)
},
1
)
EscortGroup:PushTask(
EscortGroup:TaskControlled(
EscortGroup:TaskOrbitCircle( 200, 20 ),
EscortGroup:TaskCondition( nil, nil, nil, nil, ScanDuration, nil )
), 1 )
elseif EscortGroup:IsAirPlane() then
SCHEDULER:New( EscortGroup, EscortGroup.PushTask,
{ EscortGroup:TaskControlled(
EscortGroup:TaskOrbitCircle( 1000, 500 ),
EscortGroup:TaskCondition( nil, nil, nil, nil, ScanDuration, nil )
)
},
1
)
EscortGroup:PushTask(
EscortGroup:TaskControlled(
EscortGroup:TaskOrbitCircle( 1000, 500 ),
EscortGroup:TaskCondition( nil, nil, nil, nil, ScanDuration, nil )
), 1 )
end
EscortGroup:MessageToClient( "Scanning targets for " .. ScanDuration .. " seconds.", ScanDuration, EscortClient )
@ -845,123 +843,156 @@ function _Resume( EscortGroup )
end
--- @param #MENUPARAM MenuParam
function ESCORT._AttackTarget( MenuParam )
--- @param #ESCORT self
-- @param #number DetectedItemID
function ESCORT:_AttackTarget( DetectedItemID )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortGroup = self.EscortGroup -- Wrapper.Group#GROUP
self:E( EscortGroup )
local EscortClient = self.EscortClient
local AttackUnit = MenuParam.ParamUnit -- Wrapper.Unit#UNIT
self.FollowScheduler:Stop( self.FollowSchedule )
self:T( AttackUnit )
if EscortGroup:IsAir() then
EscortGroup:OptionROEOpenFire()
EscortGroup:OptionROTPassiveDefense()
EscortGroup:SetState( EscortGroup, "Escort", self )
SCHEDULER:New( EscortGroup,
EscortGroup.PushTask,
{ EscortGroup:TaskCombo(
{ EscortGroup:TaskAttackUnit( AttackUnit ),
EscortGroup:TaskFunction( 1, 2, "_Resume", { "''" } )
}
)
}, 10
local DetectedSet = self.Detection:GetDetectedSet( DetectedItemID )
local Tasks = {}
DetectedSet:ForEachUnit(
--- @param Wrapper.Unit#UNIT DetectedUnit
function( DetectedUnit, Tasks )
if DetectedUnit:IsAlive() then
Tasks[#Tasks+1] = EscortGroup:TaskAttackUnit( DetectedUnit )
end
end, Tasks
)
Tasks[#Tasks+1] = EscortGroup:TaskFunction( 1, 2, "_Resume", { "''" } )
EscortGroup:SetTask(
EscortGroup:TaskCombo(
Tasks
), 1
)
else
SCHEDULER:New( EscortGroup,
EscortGroup.PushTask,
{ EscortGroup:TaskCombo(
{ EscortGroup:TaskFireAtPoint( AttackUnit:GetVec2(), 50 )
}
)
}, 10
local DetectedSet = self.Detection:GetDetectedSet( DetectedItemID )
local Tasks = {}
DetectedSet:ForEachUnit(
--- @param Wrapper.Unit#UNIT DetectedUnit
function( DetectedUnit, Tasks )
if DetectedUnit:IsAlive() then
Tasks[#Tasks+1] = EscortGroup:TaskFireAtPoint( DetectedUnit:GetVec2(), 50 )
end
end, Tasks
)
EscortGroup:SetTask(
EscortGroup:TaskCombo(
Tasks
), 1
)
end
EscortGroup:MessageToClient( "Engaging Designated Unit!", 10, EscortClient )
end
--- @param #MENUPARAM MenuParam
function ESCORT._AssistTarget( MenuParam )
---
-- @param #number DetectedItemID
function ESCORT:_AssistTarget( EscortGroupAttack, DetectedItemID )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local EscortGroupAttack = MenuParam.ParamEscortGroup
local AttackUnit = MenuParam.ParamUnit -- Wrapper.Unit#UNIT
self.FollowScheduler:Stop( self.FollowSchedule )
self:T( AttackUnit )
if EscortGroupAttack:IsAir() then
EscortGroupAttack:OptionROEOpenFire()
EscortGroupAttack:OptionROTVertical()
SCHDULER:New( EscortGroupAttack,
EscortGroupAttack.PushTask,
{ EscortGroupAttack:TaskCombo(
{ EscortGroupAttack:TaskAttackUnit( AttackUnit ),
EscortGroupAttack:TaskOrbitCircle( 500, 350 )
}
)
}, 10
local DetectedSet = self.Detection:GetDetectedSet( DetectedItemID )
local Tasks = {}
DetectedSet:ForEachUnit(
--- @param Wrapper.Unit#UNIT DetectedUnit
function( DetectedUnit, Tasks )
if DetectedUnit:IsAlive() then
Tasks[#Tasks+1] = EscortGroupAttack:TaskAttackUnit( DetectedUnit )
end
end, Tasks
)
Tasks[#Tasks+1] = EscortGroupAttack:TaskOrbitCircle( 500, 350 )
EscortGroupAttack:SetTask(
EscortGroupAttack:TaskCombo(
Tasks
), 1
)
else
SCHEDULER:New( EscortGroupAttack,
EscortGroupAttack.PushTask,
{ EscortGroupAttack:TaskCombo(
{ EscortGroupAttack:TaskFireAtPoint( AttackUnit:GetVec2(), 50 )
}
)
}, 10
local DetectedSet = self.Detection:GetDetectedSet( DetectedItemID )
local Tasks = {}
DetectedSet:ForEachUnit(
--- @param Wrapper.Unit#UNIT DetectedUnit
function( DetectedUnit, Tasks )
if DetectedUnit:IsAlive() then
Tasks[#Tasks+1] = EscortGroupAttack:TaskFireAtPoint( DetectedUnit:GetVec2(), 50 )
end
end, Tasks
)
EscortGroupAttack:SetTask(
EscortGroupAttack:TaskCombo(
Tasks
), 1
)
end
EscortGroupAttack:MessageToClient( "Assisting with the destroying the enemy unit!", 10, EscortClient )
end
--- @param #MENUPARAM MenuParam
function ESCORT._ROE( MenuParam )
function ESCORT:_ROE( EscortROEFunction, EscortROEMessage )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local EscortROEFunction = MenuParam.ParamFunction
local EscortROEMessage = MenuParam.ParamMessage
pcall( function() EscortROEFunction() end )
EscortGroup:MessageToClient( EscortROEMessage, 10, EscortClient )
end
--- @param #MENUPARAM MenuParam
function ESCORT._ROT( MenuParam )
function ESCORT:_ROT( EscortROTFunction, EscortROTMessage )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local EscortROTFunction = MenuParam.ParamFunction
local EscortROTMessage = MenuParam.ParamMessage
pcall( function() EscortROTFunction() end )
EscortGroup:MessageToClient( EscortROTMessage, 10, EscortClient )
end
--- @param #MENUPARAM MenuParam
function ESCORT._ResumeMission( MenuParam )
function ESCORT:_ResumeMission( WayPoint )
local self = MenuParam.ParamSelf
local EscortGroup = self.EscortGroup
local EscortClient = self.EscortClient
local WayPoint = MenuParam.ParamWayPoint
self.FollowScheduler:Stop( self.FollowSchedule )
local WayPoints = EscortGroup:GetTaskRoute()
@ -1106,176 +1137,244 @@ function ESCORT:_ReportTargetsScheduler()
self:F( self.EscortGroup:GetName() )
if self.EscortGroup:IsAlive() and self.EscortClient:IsAlive() then
local EscortGroupName = self.EscortGroup:GetName()
local EscortTargets = self.EscortGroup:GetDetectedTargets()
local ClientEscortTargets = self.EscortClient._EscortGroups[EscortGroupName].Targets
if true then
local EscortTargetMessages = ""
for EscortTargetID, EscortTarget in pairs( EscortTargets ) do
local EscortObject = EscortTarget.object
self:T( EscortObject )
if EscortObject and EscortObject:isExist() and EscortObject.id_ < 50000000 then
local EscortGroupName = self.EscortGroup:GetName()
self.EscortMenuAttackNearbyTargets:RemoveSubMenus()
local EscortTargetUnit = UNIT:Find( EscortObject )
local EscortTargetUnitName = EscortTargetUnit:GetName()
-- local EscortTargetIsDetected,
-- EscortTargetIsVisible,
-- EscortTargetLastTime,
-- EscortTargetKnowType,
-- EscortTargetKnowDistance,
-- EscortTargetLastPos,
-- EscortTargetLastVelocity
-- = self.EscortGroup:IsTargetDetected( EscortObject )
--
-- self:T( { EscortTargetIsDetected,
-- EscortTargetIsVisible,
-- EscortTargetLastTime,
-- EscortTargetKnowType,
-- EscortTargetKnowDistance,
-- EscortTargetLastPos,
-- EscortTargetLastVelocity } )
local EscortTargetUnitVec3 = EscortTargetUnit:GetVec3()
local EscortVec3 = self.EscortGroup:GetVec3()
local Distance = ( ( EscortTargetUnitVec3.x - EscortVec3.x )^2 +
( EscortTargetUnitVec3.y - EscortVec3.y )^2 +
( EscortTargetUnitVec3.z - EscortVec3.z )^2
) ^ 0.5 / 1000
self:T( { self.EscortGroup:GetName(), EscortTargetUnit:GetName(), Distance, EscortTarget } )
if Distance <= 15 then
if not ClientEscortTargets[EscortTargetUnitName] then
ClientEscortTargets[EscortTargetUnitName] = {}
end
ClientEscortTargets[EscortTargetUnitName].AttackUnit = EscortTargetUnit
ClientEscortTargets[EscortTargetUnitName].visible = EscortTarget.visible
ClientEscortTargets[EscortTargetUnitName].type = EscortTarget.type
ClientEscortTargets[EscortTargetUnitName].distance = EscortTarget.distance
else
if ClientEscortTargets[EscortTargetUnitName] then
ClientEscortTargets[EscortTargetUnitName] = nil
end
end
if self.EscortMenuTargetAssistance then
self.EscortMenuTargetAssistance:RemoveSubMenus()
end
end
self:T( { "Sorting Targets Table:", ClientEscortTargets } )
table.sort( ClientEscortTargets, function( a, b ) return a.Distance < b.Distance end )
self:T( { "Sorted Targets Table:", ClientEscortTargets } )
local DetectedItems = self.Detection:GetDetectedItems()
self:E( DetectedItems )
-- Remove the sub menus of the Attack menu of the Escort for the EscortGroup.
self.EscortMenuAttackNearbyTargets:RemoveSubMenus()
local DetectedTargets = false
local DetectedMsgs = {}
for ClientEscortGroupName, EscortGroupData in pairs( self.EscortClient._EscortGroups ) do
if self.EscortMenuTargetAssistance then
self.EscortMenuTargetAssistance:RemoveSubMenus()
end
local ClientEscortTargets = EscortGroupData.Detection
--for MenuIndex = 1, #self.EscortMenuAttackTargets do
-- self:T( { "Remove Menu:", self.EscortMenuAttackTargets[MenuIndex] } )
-- self.EscortMenuAttackTargets[MenuIndex] = self.EscortMenuAttackTargets[MenuIndex]:Remove()
--end
for DetectedItemID, DetectedItem in ipairs( DetectedItems ) do
self:E( { DetectedItemID, DetectedItem } )
-- Remove the sub menus of the Attack menu of the Escort for the EscortGroup.
local DetectedItemReportSummary = self.Detection:DetectedItemReportSummary( DetectedItemID )
if ClientEscortTargets then
for ClientEscortTargetUnitName, ClientEscortTargetData in pairs( ClientEscortTargets ) do
for ClientEscortGroupName, EscortGroupData in pairs( self.EscortClient._EscortGroups ) do
if ClientEscortTargetData and ClientEscortTargetData.AttackUnit:IsAlive() then
local EscortTargetMessage = ""
local EscortTargetCategoryName = ClientEscortTargetData.AttackUnit:GetCategoryName()
local EscortTargetCategoryType = ClientEscortTargetData.AttackUnit:GetTypeName()
if ClientEscortTargetData.type then
EscortTargetMessage = EscortTargetMessage .. EscortTargetCategoryName .. " (" .. EscortTargetCategoryType .. ") at "
else
EscortTargetMessage = EscortTargetMessage .. "Unknown target at "
end
local EscortTargetUnitVec3 = ClientEscortTargetData.AttackUnit:GetVec3()
local EscortVec3 = self.EscortGroup:GetVec3()
local Distance = ( ( EscortTargetUnitVec3.x - EscortVec3.x )^2 +
( EscortTargetUnitVec3.y - EscortVec3.y )^2 +
( EscortTargetUnitVec3.z - EscortVec3.z )^2
) ^ 0.5 / 1000
self:T( { self.EscortGroup:GetName(), ClientEscortTargetData.AttackUnit:GetName(), Distance, ClientEscortTargetData.AttackUnit } )
if ClientEscortTargetData.visible == false then
EscortTargetMessage = EscortTargetMessage .. string.format( "%.2f", Distance ) .. " estimated km"
else
EscortTargetMessage = EscortTargetMessage .. string.format( "%.2f", Distance ) .. " km"
end
if ClientEscortTargetData.visible then
EscortTargetMessage = EscortTargetMessage .. ", visual"
end
if ClientEscortGroupName == EscortGroupName then
MENU_CLIENT_COMMAND:New( self.EscortClient,
EscortTargetMessage,
self.EscortMenuAttackNearbyTargets,
ESCORT._AttackTarget,
{ ParamSelf = self,
ParamUnit = ClientEscortTargetData.AttackUnit
}
)
EscortTargetMessages = EscortTargetMessages .. "\n - " .. EscortTargetMessage
else
if self.EscortMenuTargetAssistance then
local MenuTargetAssistance = MENU_CLIENT:New( self.EscortClient, EscortGroupData.EscortName, self.EscortMenuTargetAssistance )
MENU_CLIENT_COMMAND:New( self.EscortClient,
EscortTargetMessage,
MenuTargetAssistance,
ESCORT._AssistTarget,
{ ParamSelf = self,
ParamEscortGroup = EscortGroupData.EscortGroup,
ParamUnit = ClientEscortTargetData.AttackUnit
}
)
end
end
if ClientEscortGroupName == EscortGroupName then
DetectedMsgs[#DetectedMsgs+1] = DetectedItemReportSummary
MENU_CLIENT_COMMAND:New( self.EscortClient,
DetectedItemReportSummary,
self.EscortMenuAttackNearbyTargets,
ESCORT._AttackTarget,
self,
DetectedItemID
)
else
ClientEscortTargetData = nil
if self.EscortMenuTargetAssistance then
self:T( DetectedItemReportSummary )
local MenuTargetAssistance = MENU_CLIENT:New( self.EscortClient, EscortGroupData.EscortName, self.EscortMenuTargetAssistance )
MENU_CLIENT_COMMAND:New( self.EscortClient,
DetectedItemReportSummary,
MenuTargetAssistance,
ESCORT._AssistTarget,
self,
EscortGroupData.EscortGroup,
DetectedItemID
)
end
end
DetectedTargets = true
end
end
if EscortTargetMessages ~= "" and self.ReportTargets == true then
self.EscortGroup:MessageToClient( "Detected targets within 15 km range:" .. EscortTargetMessages:gsub("\n$",""), 20, self.EscortClient )
self:E( DetectedMsgs )
if DetectedTargets then
self.EscortGroup:MessageToClient( "Detected targets:\n" .. table.concat( DetectedMsgs, "\n" ), 20, self.EscortClient )
else
self.EscortGroup:MessageToClient( "No targets detected!", 20, self.EscortClient )
self.EscortGroup:MessageToClient( "No targets detected.", 10, self.EscortClient )
end
return true
else
-- local EscortGroupName = self.EscortGroup:GetName()
-- local EscortTargets = self.EscortGroup:GetDetectedTargets()
--
-- local ClientEscortTargets = self.EscortClient._EscortGroups[EscortGroupName].Targets
--
-- local EscortTargetMessages = ""
-- for EscortTargetID, EscortTarget in pairs( EscortTargets ) do
-- local EscortObject = EscortTarget.object
-- self:T( EscortObject )
-- if EscortObject and EscortObject:isExist() and EscortObject.id_ < 50000000 then
--
-- local EscortTargetUnit = UNIT:Find( EscortObject )
-- local EscortTargetUnitName = EscortTargetUnit:GetName()
--
--
--
-- -- local EscortTargetIsDetected,
-- -- EscortTargetIsVisible,
-- -- EscortTargetLastTime,
-- -- EscortTargetKnowType,
-- -- EscortTargetKnowDistance,
-- -- EscortTargetLastPos,
-- -- EscortTargetLastVelocity
-- -- = self.EscortGroup:IsTargetDetected( EscortObject )
-- --
-- -- self:T( { EscortTargetIsDetected,
-- -- EscortTargetIsVisible,
-- -- EscortTargetLastTime,
-- -- EscortTargetKnowType,
-- -- EscortTargetKnowDistance,
-- -- EscortTargetLastPos,
-- -- EscortTargetLastVelocity } )
--
--
-- local EscortTargetUnitVec3 = EscortTargetUnit:GetVec3()
-- local EscortVec3 = self.EscortGroup:GetVec3()
-- local Distance = ( ( EscortTargetUnitVec3.x - EscortVec3.x )^2 +
-- ( EscortTargetUnitVec3.y - EscortVec3.y )^2 +
-- ( EscortTargetUnitVec3.z - EscortVec3.z )^2
-- ) ^ 0.5 / 1000
--
-- self:T( { self.EscortGroup:GetName(), EscortTargetUnit:GetName(), Distance, EscortTarget } )
--
-- if Distance <= 15 then
--
-- if not ClientEscortTargets[EscortTargetUnitName] then
-- ClientEscortTargets[EscortTargetUnitName] = {}
-- end
-- ClientEscortTargets[EscortTargetUnitName].AttackUnit = EscortTargetUnit
-- ClientEscortTargets[EscortTargetUnitName].visible = EscortTarget.visible
-- ClientEscortTargets[EscortTargetUnitName].type = EscortTarget.type
-- ClientEscortTargets[EscortTargetUnitName].distance = EscortTarget.distance
-- else
-- if ClientEscortTargets[EscortTargetUnitName] then
-- ClientEscortTargets[EscortTargetUnitName] = nil
-- end
-- end
-- end
-- end
--
-- self:T( { "Sorting Targets Table:", ClientEscortTargets } )
-- table.sort( ClientEscortTargets, function( a, b ) return a.Distance < b.Distance end )
-- self:T( { "Sorted Targets Table:", ClientEscortTargets } )
--
-- -- Remove the sub menus of the Attack menu of the Escort for the EscortGroup.
-- self.EscortMenuAttackNearbyTargets:RemoveSubMenus()
--
-- if self.EscortMenuTargetAssistance then
-- self.EscortMenuTargetAssistance:RemoveSubMenus()
-- end
--
-- --for MenuIndex = 1, #self.EscortMenuAttackTargets do
-- -- self:T( { "Remove Menu:", self.EscortMenuAttackTargets[MenuIndex] } )
-- -- self.EscortMenuAttackTargets[MenuIndex] = self.EscortMenuAttackTargets[MenuIndex]:Remove()
-- --end
--
--
-- if ClientEscortTargets then
-- for ClientEscortTargetUnitName, ClientEscortTargetData in pairs( ClientEscortTargets ) do
--
-- for ClientEscortGroupName, EscortGroupData in pairs( self.EscortClient._EscortGroups ) do
--
-- if ClientEscortTargetData and ClientEscortTargetData.AttackUnit:IsAlive() then
--
-- local EscortTargetMessage = ""
-- local EscortTargetCategoryName = ClientEscortTargetData.AttackUnit:GetCategoryName()
-- local EscortTargetCategoryType = ClientEscortTargetData.AttackUnit:GetTypeName()
-- if ClientEscortTargetData.type then
-- EscortTargetMessage = EscortTargetMessage .. EscortTargetCategoryName .. " (" .. EscortTargetCategoryType .. ") at "
-- else
-- EscortTargetMessage = EscortTargetMessage .. "Unknown target at "
-- end
--
-- local EscortTargetUnitVec3 = ClientEscortTargetData.AttackUnit:GetVec3()
-- local EscortVec3 = self.EscortGroup:GetVec3()
-- local Distance = ( ( EscortTargetUnitVec3.x - EscortVec3.x )^2 +
-- ( EscortTargetUnitVec3.y - EscortVec3.y )^2 +
-- ( EscortTargetUnitVec3.z - EscortVec3.z )^2
-- ) ^ 0.5 / 1000
--
-- self:T( { self.EscortGroup:GetName(), ClientEscortTargetData.AttackUnit:GetName(), Distance, ClientEscortTargetData.AttackUnit } )
-- if ClientEscortTargetData.visible == false then
-- EscortTargetMessage = EscortTargetMessage .. string.format( "%.2f", Distance ) .. " estimated km"
-- else
-- EscortTargetMessage = EscortTargetMessage .. string.format( "%.2f", Distance ) .. " km"
-- end
--
-- if ClientEscortTargetData.visible then
-- EscortTargetMessage = EscortTargetMessage .. ", visual"
-- end
--
-- if ClientEscortGroupName == EscortGroupName then
--
-- MENU_CLIENT_COMMAND:New( self.EscortClient,
-- EscortTargetMessage,
-- self.EscortMenuAttackNearbyTargets,
-- ESCORT._AttackTarget,
-- { ParamSelf = self,
-- ParamUnit = ClientEscortTargetData.AttackUnit
-- }
-- )
-- EscortTargetMessages = EscortTargetMessages .. "\n - " .. EscortTargetMessage
-- else
-- if self.EscortMenuTargetAssistance then
-- local MenuTargetAssistance = MENU_CLIENT:New( self.EscortClient, EscortGroupData.EscortName, self.EscortMenuTargetAssistance )
-- MENU_CLIENT_COMMAND:New( self.EscortClient,
-- EscortTargetMessage,
-- MenuTargetAssistance,
-- ESCORT._AssistTarget,
-- self,
-- EscortGroupData.EscortGroup,
-- ClientEscortTargetData.AttackUnit
-- )
-- end
-- end
-- else
-- ClientEscortTargetData = nil
-- end
-- end
-- end
--
-- if EscortTargetMessages ~= "" and self.ReportTargets == true then
-- self.EscortGroup:MessageToClient( "Detected targets within 15 km range:" .. EscortTargetMessages:gsub("\n$",""), 20, self.EscortClient )
-- else
-- self.EscortGroup:MessageToClient( "No targets detected!", 20, self.EscortClient )
-- end
-- end
--
-- if self.EscortMenuResumeMission then
-- self.EscortMenuResumeMission:RemoveSubMenus()
--
-- -- if self.EscortMenuResumeWayPoints then
-- -- for MenuIndex = 1, #self.EscortMenuResumeWayPoints do
-- -- self:T( { "Remove Menu:", self.EscortMenuResumeWayPoints[MenuIndex] } )
-- -- self.EscortMenuResumeWayPoints[MenuIndex] = self.EscortMenuResumeWayPoints[MenuIndex]:Remove()
-- -- end
-- -- end
--
-- local TaskPoints = self:RegisterRoute()
-- for WayPointID, WayPoint in pairs( TaskPoints ) do
-- local EscortVec3 = self.EscortGroup:GetVec3()
-- local Distance = ( ( WayPoint.x - EscortVec3.x )^2 +
-- ( WayPoint.y - EscortVec3.z )^2
-- ) ^ 0.5 / 1000
-- MENU_CLIENT_COMMAND:New( self.EscortClient, "Waypoint " .. WayPointID .. " at " .. string.format( "%.2f", Distance ).. "km", self.EscortMenuResumeMission, ESCORT._ResumeMission, { ParamSelf = self, ParamWayPoint = WayPointID } )
-- end
-- end
--
-- return true
end
if self.EscortMenuResumeMission then
self.EscortMenuResumeMission:RemoveSubMenus()
-- if self.EscortMenuResumeWayPoints then
-- for MenuIndex = 1, #self.EscortMenuResumeWayPoints do
-- self:T( { "Remove Menu:", self.EscortMenuResumeWayPoints[MenuIndex] } )
-- self.EscortMenuResumeWayPoints[MenuIndex] = self.EscortMenuResumeWayPoints[MenuIndex]:Remove()
-- end
-- end
local TaskPoints = self:RegisterRoute()
for WayPointID, WayPoint in pairs( TaskPoints ) do
local EscortVec3 = self.EscortGroup:GetVec3()
local Distance = ( ( WayPoint.x - EscortVec3.x )^2 +
( WayPoint.y - EscortVec3.z )^2
) ^ 0.5 / 1000
MENU_CLIENT_COMMAND:New( self.EscortClient, "Waypoint " .. WayPointID .. " at " .. string.format( "%.2f", Distance ).. "km", self.EscortMenuResumeMission, ESCORT._ResumeMission, { ParamSelf = self, ParamWayPoint = WayPointID } )
end
end
return true
end
return false

View File

@ -224,6 +224,14 @@ function COMMANDCENTER:HasGroup( MissionGroup )
return Has
end
--- Send a CC message to the coalition of the CC.
-- @param #COMMANDCENTER self
function COMMANDCENTER:MessageToAll( Message )
self:GetPositionable():MessageToAll( Message, 20, self:GetName() )
end
--- Send a CC message to a GROUP.
-- @param #COMMANDCENTER self
-- @param #string Message
@ -247,6 +255,7 @@ function COMMANDCENTER:MessageToCoalition( Message )
end
--- Report the status of all MISSIONs to a GROUP.
-- Each Mission is listed, with an indication how many Tasks are still to be completed.
-- @param #COMMANDCENTER self

View File

@ -404,21 +404,21 @@ do -- DETECTION_DISPATCHER
local Mission = self.Mission
--- First we need to the detected targets.
for DetectedAreaID, DetectedAreaData in ipairs( Detection:GetDetectedAreas() ) do
for DetectedItemID, DetectedItem in pairs( Detection:GetDetectedItems() ) do
local DetectedArea = DetectedAreaData -- Functional.Detection#DETECTION_AREAS.DetectedArea
local DetectedSet = DetectedArea.Set
local DetectedZone = DetectedArea.Zone
self:E( { "Targets in DetectedArea", DetectedArea.AreaID, DetectedSet:Count(), tostring( DetectedArea ) } )
local DetectedItem = DetectedItem -- Functional.Detection#DETECTION_BASE.DetectedItem
local DetectedSet = DetectedItem.Set -- Functional.Detection#DETECTION_BASE.DetectedSet
local DetectedZone = DetectedItem.Zone
self:E( { "Targets in DetectedArea", DetectedItem.AreaID, DetectedSet:Count(), tostring( DetectedItem ) } )
DetectedSet:Flush()
local AreaID = DetectedArea.AreaID
local AreaID = DetectedItem.AreaID
-- Evaluate SEAD Tasking
local SEADTask = Mission:GetTask( "SEAD." .. AreaID )
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedArea )
SEADTask = self:EvaluateRemoveTask( Mission, SEADTask, DetectedItem )
if not SEADTask then
local TargetSetUnit = self:EvaluateSEAD( DetectedArea ) -- Returns a SetUnit if there are targets to be SEADed...
local TargetSetUnit = self:EvaluateSEAD( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
if TargetSetUnit then
SEADTask = Mission:AddTask( TASK_SEAD:New( Mission, self.SetGroup, "SEAD." .. AreaID, TargetSetUnit , DetectedZone ) )
end
@ -431,11 +431,11 @@ do -- DETECTION_DISPATCHER
-- Evaluate CAS Tasking
local CASTask = Mission:GetTask( "CAS." .. AreaID )
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedArea )
CASTask = self:EvaluateRemoveTask( Mission, CASTask, DetectedItem )
if not CASTask then
local TargetSetUnit = self:EvaluateCAS( DetectedArea ) -- Returns a SetUnit if there are targets to be SEADed...
local TargetSetUnit = self:EvaluateCAS( DetectedItem ) -- Returns a SetUnit if there are targets to be SEADed...
if TargetSetUnit then
CASTask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "CAS." .. AreaID, "CAS", TargetSetUnit , DetectedZone, DetectedArea.NearestFAC ) )
CASTask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "CAS." .. AreaID, "CAS", TargetSetUnit , DetectedZone, DetectedItem.NearestFAC ) )
end
end
if CASTask and CASTask:IsStatePlanned() then
@ -445,11 +445,11 @@ do -- DETECTION_DISPATCHER
-- Evaluate BAI Tasking
local BAITask = Mission:GetTask( "BAI." .. AreaID )
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedArea )
BAITask = self:EvaluateRemoveTask( Mission, BAITask, DetectedItem )
if not BAITask then
local TargetSetUnit = self:EvaluateBAI( DetectedArea, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
local TargetSetUnit = self:EvaluateBAI( DetectedItem, self.CommandCenter:GetCoalition() ) -- Returns a SetUnit if there are targets to be SEADed...
if TargetSetUnit then
BAITask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "BAI." .. AreaID, "BAI", TargetSetUnit , DetectedZone, DetectedArea.NearestFAC ) )
BAITask = Mission:AddTask( TASK_A2G:New( Mission, self.SetGroup, "BAI." .. AreaID, "BAI", TargetSetUnit , DetectedZone, DetectedItem.NearestFAC ) )
end
end
if BAITask and BAITask:IsStatePlanned() then
@ -459,20 +459,20 @@ do -- DETECTION_DISPATCHER
if #TaskMsg > 0 then
local ThreatLevel = Detection:GetTreatLevelA2G( DetectedArea )
local ThreatLevel = Detection:GetTreatLevelA2G( DetectedItem )
local DetectedAreaVec3 = DetectedZone:GetVec3()
local DetectedAreaPointVec3 = POINT_VEC3:New( DetectedAreaVec3.x, DetectedAreaVec3.y, DetectedAreaVec3.z )
local DetectedAreaPointLL = DetectedAreaPointVec3:ToStringLL( 3, true )
AreaMsg[#AreaMsg+1] = string.format( " - Area #%d - %s - Threat Level [%s] (%2d)",
DetectedAreaID,
DetectedItemID,
DetectedAreaPointLL,
string.rep( "", ThreatLevel ),
ThreatLevel
)
-- Loop through the changes ...
local ChangeText = Detection:GetChangeText( DetectedArea )
local ChangeText = Detection:GetChangeText( DetectedItem )
if ChangeText ~= "" then
ChangeMsg[#ChangeMsg+1] = string.gsub( string.gsub( ChangeText, "\n", "%1 - " ), "^.", " - %1" )
@ -480,7 +480,7 @@ do -- DETECTION_DISPATCHER
end
-- OK, so the tasking has been done, now delete the changes reported for the area.
Detection:AcceptChanges( DetectedArea )
Detection:AcceptChanges( DetectedItem )
end

View File

@ -543,10 +543,10 @@ function CONTROLLABLE:TaskAttackUnit( AttackUnit, GroupAttack, WeaponExpend, Att
directionEnabled = Direction and true or false,
direction = Direction,
altitudeEnabled = Altitude and true or false,
altitude = Altitude,
altitude = Altitude or 30,
attackQtyLimit = AttackQty and true or false,
attackQty = AttackQty,
controllableAttack = ControllableAttack,
weaponType = 1073741822,
},
}

View File

@ -110,7 +110,7 @@ GROUP = {
-- @param Dcs.DCSWrapper.Group#Group GroupName The DCS Group name
-- @return #GROUP self
function GROUP:Register( GroupName )
local self = BASE:Inherit( self, CONTROLLABLE:New( GroupName ) )
self = BASE:Inherit( self, CONTROLLABLE:New( GroupName ) )
self:F2( GroupName )
self.GroupName = GroupName

View File

@ -1,5 +1,5 @@
env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' )
env.info( 'Moose Generation Timestamp: 20170208_2216' )
env.info( 'Moose Generation Timestamp: 20170213_1411' )
local base = _G

View File

@ -1,5 +1,5 @@
env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' )
env.info( 'Moose Generation Timestamp: 20170208_2216' )
env.info( 'Moose Generation Timestamp: 20170213_1411' )
local base = _G

Binary file not shown.

View File

@ -0,0 +1,56 @@
---
-- Name: DET-100 - Detection Probability Distance
-- Author: FlightControl
-- Date Created: 04 Feb 2017
--
-- # Situation:
--
-- Demonstrates the DistanceProbability factor during the detection of units.
--
-- Two JTAC are detecting 4 units, which are 10 km away.
-- The first JTAC has no DistanceProbability set.
-- The second JTAC has a DistanceProbability set.
--
-- # Test cases:
--
-- 1. Observe the reporting of both the first and second JTAC. The second should report slower the detection than the first.
-- 2. Eventually all units should be detected by both JTAC.
local RecceSetGroup1 = SET_GROUP:New():FilterPrefixes( "Recce 1" ):FilterStart()
local RecceSetGroup2 = SET_GROUP:New():FilterPrefixes( "Recce 2" ):FilterStart()
local HQ = GROUP:FindByName( "HQ" )
local CC = COMMANDCENTER:New( HQ, "HQ" )
local RecceDetection1 = DETECTION_UNITS:New( RecceSetGroup1 )
local RecceDetection2 = DETECTION_UNITS:New( RecceSetGroup2 )
RecceDetection2:SetDistanceProbability( 0.2 ) -- Set a 20% probability that a vehicle can be detected at 4km distance.
RecceDetection1:Start()
RecceDetection2:Start()
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection1:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection1:DetectedReportDetailed()
HQ:MessageToAll( DetectionReport, 15, "Detection 1 - No distance Probability" )
end
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection2:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection2:DetectedReportDetailed()
HQ:MessageToAll( DetectionReport, 15, "Detection 2 - Distance Probability" )
end

View File

@ -0,0 +1,62 @@
---
-- Name: DET-120 - Detection Probability Zones
-- Author: FlightControl
-- Date Created: 04 Feb 2017
--
-- # Situation:
--
-- Demonstrates the DistanceProbability factor during the detection of units.
--
-- Two JTAC are detecting 4 units, which are 10 km away.
-- The first JTAC has no DistanceProbability set.
-- The second JTAC has a DistanceProbability set.
--
-- # Test cases:
--
-- 1. Observe the reporting of both the first and second JTAC. The second should report slower the detection than the first.
-- 2. Eventually all units should be detected by both JTAC.
local RecceSetGroup1 = SET_GROUP:New():FilterPrefixes( "Recce 1" ):FilterStart()
local RecceSetGroup2 = SET_GROUP:New():FilterPrefixes( "Recce 2" ):FilterStart()
local HQ = GROUP:FindByName( "HQ" )
local CC = COMMANDCENTER:New( HQ, "HQ" )
local RecceDetection1 = DETECTION_UNITS:New( RecceSetGroup1 )
local RecceDetection2 = DETECTION_UNITS:New( RecceSetGroup2 )
local ForestZone = ZONE_POLYGON:New( "ForestZone", GROUP:FindByName( "ForestZone" ) )
RecceDetection2:SetZoneProbability( { { ForestZone, 0.1 } } ) -- Set a 10% probability that a vehicle can be detected within the forest.
RecceDetection1:Start()
RecceDetection2:Start()
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection1:OnAfterDetect(From,Event,To)
local DetectionReport = self:DetectedReportDetailed()
HQ:MessageToAll( DetectionReport, 15, "Detection 1 - No Zone Probability" )
end
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection2:OnAfterDetect(From,Event,To)
local DetectionReport = self:DetectedReportDetailed()
HQ:MessageToAll( DetectionReport, 15, "Detection 2 - Forest Zone Probability" )
end
garbagecollect()

View File

@ -0,0 +1,40 @@
---
-- Name: DET-200 - Detection UNITS
-- Author: FlightControl
-- Date Created: 13 Feb 2017
--
-- # Situation:
--
-- Demonstrates the detection of units.
--
-- A Set of Recce are detecting a large group of units, which are 5 km away.
-- Select one of the blue Recce, and press F7. Watch the reporting of the detection evolve.
-- The enemy is approaching.
--
-- # Test cases:
--
-- 1. Observe the detection reporting of both the Recce.
-- 2. Eventually all units should be detected by both Recce.
local RecceSetGroup = SET_GROUP:New():FilterPrefixes( "Recce" ):FilterStart()
local HQ = GROUP:FindByName( "HQ" )
local CC = COMMANDCENTER:New( HQ, "HQ" )
local RecceDetection = DETECTION_UNITS:New( RecceSetGroup )
RecceDetection:Start()
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection:DetectedReportDetailed()
CC:MessageToAll( DetectionReport, 15, "" )
end

View File

@ -0,0 +1,42 @@
---
-- Name: DET-210 - Detection TYPES
-- Author: FlightControl
-- Date Created: 13 Feb 2017
--
-- # Situation:
--
-- Demonstrates the detection of units.
--
-- A Set of Recce are detecting a large group of units, which are 5 km away.
-- Select one of the blue Recce, and press F7. Watch the reporting of the detection evolve.
-- The enemy is approaching.
--
-- The blue Recce will report the detected units grouped per vehicle type!
--
-- # Test cases:
--
-- 1. Observe the detection reporting of both the Recce.
-- 2. Eventually all units should be detected by both Recce.
local RecceSetGroup = SET_GROUP:New():FilterPrefixes( "Recce" ):FilterStart()
local HQ = GROUP:FindByName( "HQ" )
local CC = COMMANDCENTER:New( HQ, "HQ" )
local RecceDetection = DETECTION_TYPES:New( RecceSetGroup )
RecceDetection:Start()
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection:DetectedReportDetailed()
CC:MessageToAll( DetectionReport, 15, "" )
end

View File

@ -0,0 +1,56 @@
---
-- Name: DET-100 - Detection Probability Distance
-- Author: FlightControl
-- Date Created: 04 Feb 2017
--
-- # Situation:
--
-- Demonstrates the DistanceProbability factor during the detection of units.
--
-- Two JTAC are detecting 4 units, which are 10 km away.
-- The first JTAC has no DistanceProbability set.
-- The second JTAC has a DistanceProbability set.
--
-- # Test cases:
--
-- 1. Observe the reporting of both the first and second JTAC. The second should report slower the detection than the first.
-- 2. Eventually all units should be detected by both JTAC.
local RecceSetGroup1 = SET_GROUP:New():FilterPrefixes( "Recce 1" ):FilterStart()
local RecceSetGroup2 = SET_GROUP:New():FilterPrefixes( "Recce 2" ):FilterStart()
local HQ = GROUP:FindByName( "HQ" )
local CC = COMMANDCENTER:New( HQ, "HQ" )
local RecceDetection1 = DETECTION_UNITS:New( RecceSetGroup1 )
local RecceDetection2 = DETECTION_UNITS:New( RecceSetGroup2 )
RecceDetection2:SetDistanceProbability( 0.2 ) -- Set a 20% probability that a vehicle can be detected at 4km distance.
RecceDetection1:Start()
RecceDetection2:Start()
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection1:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection1:DetectedReportDetailed()
HQ:MessageToAll( DetectionReport, 15, "Detection 1 - No distance Probability" )
end
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection2:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection2:DetectedReportDetailed()
HQ:MessageToAll( DetectionReport, 15, "Detection 2 - Distance Probability" )
end

View File

@ -0,0 +1,61 @@
---
-- Name: DET-500 - Handle Detected Event - Govern Artillery Demo
-- Author: FlightControl
-- Date Created: 13 Feb 2017
--
-- # Situation:
--
-- Demonstrates the detection of units.
--
-- A Set of Recces are detecting a large group of units, which are 5 km away.
-- Once the Recces detect the enemy, the artilley units are controlled and will fire a missile to the target.
--
-- # Test cases:
--
-- 1. Observe the detected reporting of the recces.
-- 2. When one Recce group detects a target, it will select an artillery unit and fire a missile.
-- 3. This will run until all Recces have eliminated the targets.
local RecceSetGroup = SET_GROUP:New():FilterCoalitions( "blue" ):FilterPrefixes( "Recce" ):FilterStart()
local ArtillerySetGroup = SET_GROUP:New():FilterCoalitions( "blue" ):FilterPrefixes( "Artillery" ):FilterStart()
local HQ = GROUP:FindByName( "HQ" )
local CC = COMMANDCENTER:New( HQ, "HQ" )
local RecceDetection = DETECTION_UNITS:New( RecceSetGroup )
RecceDetection:SetDetectionInterval( 5 )
RecceDetection:Start()
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
function RecceDetection:OnAfterDetect(From,Event,To)
local DetectionReport = RecceDetection:DetectedReportDetailed()
CC:MessageToAll( DetectionReport, 15, "" )
end
--- OnAfter Transition Handler for Event Detect.
-- @param Functional.Detection#DETECTION_UNITS self
-- @param #string From The From State string.
-- @param #string Event The Event string.
-- @param #string To The To State string.
-- @param Wrapper.Unit#UNIT DetectedUnits
function RecceDetection:OnAfterDetected( From, Event, To, DetectedUnits )
local ArtilleryArray = ArtillerySetGroup:GetSet()
local ArtilleryArrayCount = ArtillerySetGroup:Count()
for DetectedUnitID, DetectedUnit in pairs( DetectedUnits ) do
local DetectedUnit = DetectedUnit -- Wrapper.Unit#UNIT
local Artillery = ArtilleryArray[ math.random( 1, ArtilleryArrayCount ) ] -- Wrapper.Group#GROUP
local Task = Artillery:TaskFireAtPoint( DetectedUnit:GetVec2(), 500, 2 ) -- Fire 2 rockets to the target point.
Artillery:SetTask( Task, 0.5 )
end
end

View File

@ -20,6 +20,8 @@ do
:MenuResumeMission()
:MenuROE()
:MenuAssistedAttack()
EscortHeli1:SetDetection( EscortHeliDetection )
local EscortGroupArtillery = SpawnEscortArtillery:ReSpawn(1)
local EscortArtillery = ESCORT
@ -59,6 +61,9 @@ do
SpawnEscortGround = SPAWN:New( "Escort Ground" )
SpawnEscortShip = SPAWN:New( "Escort Ship" )
SpawnEscortArtillery = SPAWN:New( "Ground Attack Assistance" )
EscortHeliSetGroup = SET_GROUP:New():FilterPrefixes("Escort Helicopter"):FilterStart()
EscortHeliDetection = DETECTION_AREAS:New( EscortHeliSetGroup, 20000, 1500 )
EscortClientHeli = CLIENT:FindByName( "Lead Helicopter", "Fly around and observe the behaviour of the escort helicopter" ):Alive( EventAliveHelicopter )
EscortClientPlane = CLIENT:FindByName( "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." )

View File

@ -0,0 +1,210 @@
-- 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.nurs.WGr21"
-- 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

@ -0,0 +1,128 @@
-- 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

@ -0,0 +1,98 @@
settings=
{
["delta_mode"]=0,
["disp_tapes"]=0,
["mnt_boresight_up"]=0,
["30mm_pac1_pos"]=1,
["mnt_boresight"]=0,
["rty_wngspn"]=1,
["var_tgt_elev"]=0,
["30mm_rnds"]=6029412,
["disp_vertvel"]=0,
["30mm_min_alt"]=1.2461187723206e-306,
["offadj_enabled"]=1,
["disp_autodata"]=0,
["disp_rdralt"]=0,
["aas_threats"]=
{
[1]=
{
["in_rotary"]=1,
},
[2]=
{
["in_rotary"]=1,
},
[3]=
{
["in_rotary"]=0,
},
[4]=
{
["in_rotary"]=0,
},
[5]=
{
["in_rotary"]=0,
},
[6]=
{
["in_rotary"]=0,
},
[7]=
{
["in_rotary"]=1,
},
[8]=
{
["in_rotary"]=1,
},
[9]=
{
["in_rotary"]=0,
},
[10]=
{
["in_rotary"]=0,
},
},
["ccip_consent_opt"]=0,
["gcas_plane"]=458980,
["30mm_ammo_type"]=6488169,
["rty_tgtspeed"]=10,
["delta_msl_cal"]=0,
["delta_gps_msl"]=0,
["rty_length"]=1,
["disp_ccip_cross"]=1,
["wpn_rel_scroll"]=0,
["gcas_scroll"]=0,
["gcas_training_opt"]=0,
["delta_gps_alt"]=0,
["delta_rdr_alt"]=0,
["mnt_boresight_rt"]=0,
["mode_4"]=
{
["mode_active"]=0,
["mode_interval"]=0,
["mode_start"]=0,
},
["mode_1"]=
{
["mode_active"]=0,
["mode_interval"]=0,
["mode_start"]=0,
},
["bit_flight"]=0,
["offadj_gun_up"]=0,
["fxd_tgtspeed"]=10,
["disp_airspeed"]=0,
["offadj_bomb_up"]=0,
["fxd_wngspn"]=1,
["offadj_bomb_rt"]=0,
["fxd_length"]=1,
["disp_metric"]=0,
["bit_opt"]=0,
["offadj_gun_rt"]=0,
["bit_clear"]=0,
["30mm_ammo_mfg"]=6029427,
}

View File

@ -0,0 +1,9 @@
settings=
{
["dials"]=
{
["mode_dial"]=2,
["volume"]=0.5,
["manual_frequency"]=2000000,
},
}

View File

@ -0,0 +1,54 @@
settings=
{
["osb_buttons"]=
{
[11]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=3,
["level_4"]=0,
["level_2"]=0,
},
["label"]="STAT",
["source_osb"]=6,
},
[13]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=5,
["level_4"]=0,
["level_2"]=0,
},
["label"]="DSMS",
["source_osb"]=17,
},
[12]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=6,
["level_4"]=0,
["level_2"]=0,
},
["label"]="TGP",
["source_osb"]=18,
},
[14]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=7,
["level_4"]=0,
["level_2"]=0,
},
["label"]="TAD",
["source_osb"]=19,
},
},
}

View File

@ -0,0 +1,54 @@
settings=
{
["osb_buttons"]=
{
[11]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=8,
["level_4"]=0,
["level_2"]=0,
},
["label"]="MSG",
["source_osb"]=16,
},
[13]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=4,
["level_4"]=0,
["level_2"]=0,
},
["label"]="MAV",
["source_osb"]=8,
},
[12]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=10,
["level_4"]=0,
["level_2"]=0,
},
["label"]="CDU",
["source_osb"]=15,
},
[14]=
{
["target_mode"]=
{
["level_3"]=0,
["master"]=6,
["level_4"]=0,
["level_2"]=0,
},
["label"]="TGP",
["source_osb"]=18,
},
},
}

View File

@ -0,0 +1,85 @@
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
if Airdrome then
-- for T3
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"])
}
}
else
-- for T4
local beacons_by_id = {}
for i,o in pairs(beacons) do
if o.name == '' then
beacons_by_id[o.beaconId] = o
else
beacons_by_id[o.name] = o
end
end
local caucasus_pair = function (id_1,id_2)
return {
[ADF_HOMER_FAR] = NDB(beacons_by_id[id_1]),
[ADF_HOMER_NEAR] = NDB(beacons_by_id[id_2])
}
end
channels = {
caucasus_pair('airfield13_2','airfield13_3'),
caucasus_pair('airfield16_2','airfield16_3'),
caucasus_pair("airfield15_4","airfield15_5"),
caucasus_pair("airfield12_0","airfield12_1"),
caucasus_pair("airfield28_0","airfield28_1"),
caucasus_pair("airfield27_0","airfield27_1"),
caucasus_pair("airfield26_0","airfield26_1"),
caucasus_pair("world_9","world_58"),
}
end
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

@ -0,0 +1,20 @@
settings=
{
["dials"]=
{
["channel_dial"]=0,
},
["presets"]=
{
[1]=21500000,
[2]=25700000,
[3]=27000000,
[4]=28000000,
[5]=30000000,
[6]=32000000,
[7]=40000000,
[8]=50000000,
[9]=55500000,
[10]=59900000,
},
}

View File

@ -0,0 +1,34 @@
settings=
{
["dials"]=
{
["modulation"]=1,
["channel_dial"]=0,
["volume"]=0.60000002384186,
["selection_dial"]=0,
["manual_frequency"]=127500000,
},
["presets"]=
{
[1]=127500000,
[2]=135000000,
[3]=136000000,
[4]=127000000,
[5]=125000000,
[6]=121000000,
[7]=141000000,
[8]=128000000,
[9]=126000000,
[10]=133000000,
[11]=130000000,
[12]=129000000,
[13]=123000000,
[14]=131000000,
[15]=134000000,
[16]=132000000,
[17]=138000000,
[18]=122000000,
[19]=124000000,
[20]=137000000,
},
}

View File

@ -0,0 +1,6 @@
settings=
{
["own_id"]=1,
["grp_id"]=1,
["callsign"]="",
}

View File

@ -0,0 +1,880 @@
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

@ -0,0 +1,27 @@
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

@ -0,0 +1,104 @@
settings=
{
["tad_profiles"]=
{
[1]=
{
["range_rings"]=true,
["spi_display"]=1,
["tag_info"]=1,
["frequency_mapping"]=8,
["bullseye"]=true,
["ownship_waypoints"]=true,
["LCN2"]="00",
["guardChannel1"]=3,
["LCN1"]="00",
["ground_key"]="A",
["name"]="ALL",
["guardChannel2"]=7,
["air_key"]="1",
["flight_plan_lines"]=true,
["waypoint_labels"]=true,
["gateway_key"]="1",
},
[2]=
{
["range_rings"]=true,
["spi_display"]=1,
["tag_info"]=1,
["frequency_mapping"]=8,
["bullseye"]=true,
["ownship_waypoints"]=true,
["LCN2"]="00",
["guardChannel1"]=3,
["LCN1"]="00",
["ground_key"]="A",
["name"]="LOFF",
["guardChannel2"]=7,
["air_key"]="1",
["flight_plan_lines"]=false,
["waypoint_labels"]=true,
["gateway_key"]="1",
},
[3]=
{
["range_rings"]=true,
["spi_display"]=1,
["tag_info"]=2,
["frequency_mapping"]=8,
["bullseye"]=true,
["ownship_waypoints"]=true,
["LCN2"]="00",
["guardChannel1"]=3,
["LCN1"]="00",
["ground_key"]="A",
["name"]="ACT",
["guardChannel2"]=7,
["air_key"]="1",
["flight_plan_lines"]=true,
["waypoint_labels"]=true,
["gateway_key"]="1",
},
[4]=
{
["range_rings"]=false,
["spi_display"]=0,
["tag_info"]=0,
["frequency_mapping"]=8,
["bullseye"]=false,
["ownship_waypoints"]=false,
["LCN2"]="00",
["guardChannel1"]=3,
["LCN1"]="00",
["ground_key"]="A",
["name"]="NONE",
["guardChannel2"]=7,
["air_key"]="1",
["flight_plan_lines"]=false,
["waypoint_labels"]=false,
["gateway_key"]="1",
},
},
["default_profile"]=
{
[0]=
{
["range_rings"]=true,
["spi_display"]=1,
["tag_info"]=1,
["frequency_mapping"]=8,
["bullseye"]=true,
["ownship_waypoints"]=true,
["LCN2"]="00",
["guardChannel1"]=3,
["LCN1"]="00",
["ground_key"]="A",
["name"]="DFLT",
["guardChannel2"]=7,
["air_key"]="1",
["flight_plan_lines"]=true,
["waypoint_labels"]=true,
["gateway_key"]="1",
},
},
}

View File

@ -0,0 +1,9 @@
settings=
{
["TAAFAltitude"]=0,
["FLIRIntegration"]=1,
["CalibrationMethod"]=1,
["GainControl"]=1,
["LSSCode"]=1688,
["LCode"]=1688,
}

View File

@ -0,0 +1,33 @@
settings=
{
["dials"]=
{
["mode_dial"]=1,
["manual_frequency"]=251000000,
["selection_dial"]=0,
["channel_dial"]=0,
},
["presets"]=
{
[1]=251000000,
[2]=235000000,
[3]=245000000,
[4]=255000000,
[5]=265000000,
[6]=275000000,
[7]=285000000,
[8]=295000000,
[9]=305000000,
[10]=315000000,
[11]=325000000,
[12]=335000000,
[13]=345000000,
[14]=355000000,
[15]=365000000,
[16]=375000000,
[17]=385000000,
[18]=395000000,
[19]=396000000,
[20]=397000000,
},
}

View File

@ -0,0 +1,33 @@
settings=
{
["dials"]=
{
["mode_dial"]=1,
["manual_frequency"]=124000000,
["selection_dial"]=2,
["channel_dial"]=0,
},
["presets"]=
{
[1]=121500000,
[2]=121500000,
[3]=121500000,
[4]=121500000,
[5]=121500000,
[6]=121500000,
[7]=121500000,
[8]=121500000,
[9]=121500000,
[10]=121500000,
[11]=121500000,
[12]=121500000,
[13]=121500000,
[14]=121500000,
[15]=121500000,
[16]=121500000,
[17]=121500000,
[18]=121500000,
[19]=121500000,
[20]=121500000,
},
}

View File

@ -0,0 +1,33 @@
settings=
{
["dials"]=
{
["mode_dial"]=1,
["manual_frequency"]=30000000,
["selection_dial"]=2,
["channel_dial"]=0,
},
["presets"]=
{
[1]=40500000,
[2]=40500000,
[3]=40500000,
[4]=40500000,
[5]=40500000,
[6]=40500000,
[7]=40500000,
[8]=40500000,
[9]=40500000,
[10]=40500000,
[11]=40500000,
[12]=40500000,
[13]=40500000,
[14]=40500000,
[15]=40500000,
[16]=40500000,
[17]=40500000,
[18]=40500000,
[19]=40500000,
[20]=40500000,
},
}

View File

@ -0,0 +1,14 @@
settings=
{
["dials"]=
{
["channel"]=0,
},
["presets"]=
{
[1]=124000000,
[2]=124000000,
[3]=131000000,
[4]=139000000,
},
}

View File

@ -0,0 +1,74 @@
do
local function EventAliveHelicopter( Client )
local EscortGroupHeli1 = SpawnEscortHeli:ReSpawn(1)
local EscortHeli1 = ESCORT
:New( Client, EscortGroupHeli1, "Escort Helicopter" )
:MenuFollowAt( 100 )
:MenuFollowAt( 200 )
:MenuHoldAtEscortPosition( 20, 10, "Hold at %d meters for %d seconds" )
:MenuHoldAtLeaderPosition( 120 )
:MenuFlare( "Disperse Flares" )
:MenuSmoke()
:MenuReportTargets( 60, 20 )
:MenuResumeMission()
:MenuROE()
:MenuAssistedAttack()
EscortHeli1:SetDetection( EscortHeliDetection )
local EscortGroupArtillery = SpawnEscortArtillery:ReSpawn(1)
local EscortArtillery = ESCORT
:New( Client, EscortGroupArtillery, "Escort Artillery" )
:Menus()
end
local function EventAlivePlane( Client )
local EscortGroupPlane2 = SpawnEscortPlane:ReSpawn(1)
local EscortPlane2 = ESCORT
:New( Client, EscortGroupPlane2, "Escort Test Plane" )
:MenuFollowAt( 100 )
:MenuFollowAt( 200 )
:MenuHoldAtEscortPosition( 20, 10, "Hold at %d meters for %d seconds" )
:MenuHoldAtLeaderPosition( 120 )
:MenuFlare( "Disperse Flares" )
:MenuSmoke()
:MenuReportTargets( 60, 20 )
:MenuResumeMission()
:MenuAssistedAttack()
:MenuROE()
:MenuEvasion()
local EscortGroupGround2 = SpawnEscortGround:ReSpawn(1)
local EscortGround2 = ESCORT
:New( Client, EscortGroupGround2, "Test Ground" )
:Menus()
local EscortGroupShip2 = SpawnEscortShip:ReSpawn(1)
local EscortShip2 = ESCORT
:New( Client, EscortGroupShip2, "Test Ship" )
:Menus()
end
SpawnEscortHeli = SPAWN:New( "Escort Helicopter" )
SpawnEscortPlane = SPAWN:New( "Escort Plane" )
SpawnEscortGround = SPAWN:New( "Escort Ground" )
SpawnEscortShip = SPAWN:New( "Escort Ship" )
SpawnEscortArtillery = SPAWN:New( "Ground Attack Assistance" )
EscortHeliSetGroup = SET_GROUP:New():FilterPrefixes("Escort Helicopter"):FilterStart()
EscortHeliDetection = DETECTION_AREAS:New( EscortHeliSetGroup, 20000, 1500 )
EscortClientHeli = CLIENT:FindByName( "Lead Helicopter", "Fly around and observe the behaviour of the escort helicopter" ):Alive( EventAliveHelicopter )
EscortClientPlane = CLIENT:FindByName( "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
env.info( "Test Mission loaded" )

View File

@ -0,0 +1,31 @@
env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' )
env.info( 'Moose Generation Timestamp: 20170208_2216' )
local base = _G
Include = {}
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
error ("Could not load MOOSE file " .. IncludeFile .. ".lua" )
else
env.info( "Include:" .. IncludeFile .. " loaded from " .. Include.ProgramPath )
return f()
end
end
end
Include.ProgramPath = "Scripts/Moose/"
env.info( "Include.ProgramPath = " .. Include.ProgramPath)
Include.Files = {}
Include.File( "Moose" )
BASE:TraceOnOff( true )
env.info( '*** MOOSE INCLUDE END *** ' )

View File

@ -0,0 +1,168 @@
dictionary =
{
["DictKey_WptName_159"] = "",
["DictKey_WptName_11"] = "",
["DictKey_UnitName_85"] = "Unit #003",
["DictKey_GroupName_15"] = "Lead Plane",
["DictKey_WptName_138"] = "",
["DictKey_GroupName_150"] = "Ground Attack Assistance",
["DictKey_UnitName_73"] = "Ground Attack Test #010",
["DictKey_WptName_21"] = "",
["DictKey_WptName_22"] = "",
["DictKey_UnitName_39"] = "Unit #001",
["DictKey_WptName_126"] = "",
["DictKey_WptName_112"] = "",
["DictKey_WptName_83"] = "",
["DictKey_WptName_27"] = "",
["DictKey_WptName_123"] = "",
["DictKey_GroupName_51"] = "Ground Attack Test #003",
["DictKey_UnitName_20"] = "Escort Plane",
["DictKey_WptName_43"] = "",
["DictKey_WptName_30"] = "",
["DictKey_WptName_124"] = "",
["DictKey_UnitName_76"] = "Ground Attack Test #011",
["DictKey_WptName_137"] = "",
["DictKey_WptName_134"] = "",
["DictKey_UnitName_36"] = "Escort Ship",
["DictKey_WptName_109"] = "",
["DictKey_GroupName_45"] = "Ground Attack Test #001",
["DictKey_UnitName_157"] = "Unit #011",
["DictKey_WptName_25"] = "",
["DictKey_GroupName_100"] = "Escort Ship #001",
["DictKey_WptName_105"] = "",
["DictKey_UnitName_61"] = "Ground Attack Test #006",
["DictKey_WptName_40"] = "",
["DictKey_WptName_153"] = "",
["DictKey_UnitName_49"] = "Ground Attack Test #002",
["DictKey_WptName_28"] = "",
["DictKey_WptName_125"] = "",
["DictKey_UnitName_79"] = "Ground Attack Test #012",
["DictKey_WptName_142"] = "",
["DictKey_WptName_71"] = "",
["DictKey_WptName_17"] = "",
["DictKey_WptName_104"] = "",
["DictKey_WptName_158"] = "",
["DictKey_WptName_14"] = "",
["DictKey_GroupName_12"] = "Escort Helicopter",
["DictKey_GroupName_19"] = "Escort Plane",
["DictKey_GroupName_38"] = "Escort Ground",
["DictKey_UnitName_149"] = "Pilot #003",
["DictKey_WptName_47"] = "",
["DictKey_GroupName_81"] = "WayPoint Test",
["DictKey_WptName_130"] = "",
["DictKey_UnitName_46"] = "Ground Attack Test #001",
["DictKey_WptName_92"] = "",
["DictKey_WptName_140"] = "",
["DictKey_GroupName_31"] = "Test Attack",
["DictKey_WptName_37"] = "",
["DictKey_GroupName_72"] = "Ground Attack Test #010",
["DictKey_GroupName_75"] = "Ground Attack Test #011",
["DictKey_GroupName_41"] = "Ground Attack Test",
["DictKey_WptName_116"] = "",
["DictKey_GroupName_93"] = "Test Attack #005",
["DictKey_WptName_132"] = "",
["DictKey_WptName_154"] = "",
["DictKey_WptName_152"] = "",
["DictKey_WptName_95"] = "",
["DictKey_WptName_62"] = "",
["DictKey_WptName_122"] = "",
["DictKey_sortie_4"] = "",
["DictKey_WptName_65"] = "",
["DictKey_GroupName_57"] = "Ground Attack Test #005",
["DictKey_UnitName_94"] = "Unit #006",
["DictKey_WptName_18"] = "",
["DictKey_WptName_110"] = "",
["DictKey_GroupName_60"] = "Ground Attack Test #006",
["DictKey_GroupName_48"] = "Ground Attack Test #002",
["DictKey_GroupName_144"] = "Ground Attack Test #013",
["DictKey_WptName_50"] = "",
["DictKey_GroupName_54"] = "Ground Attack Test #004",
["DictKey_WptName_89"] = "",
["DictKey_UnitName_42"] = "Ground Attack Test",
["DictKey_WptName_128"] = "",
["DictKey_UnitName_97"] = "Pilot #001",
["DictKey_WptName_106"] = "",
["DictKey_descriptionText_1"] = "",
["DictKey_UnitName_55"] = "Ground Attack Test #004",
["DictKey_UnitName_64"] = "Ground Attack Test #007",
["DictKey_WptName_103"] = "",
["DictKey_UnitName_58"] = "Ground Attack Test #005",
["DictKey_UnitName_67"] = "Ground Attack Test #008",
["DictKey_ActionText_96"] = "BASE:TraceClass(\"ESCORT\")\
BASE:TraceClass(\"DETECTION_AREAS\")",
["DictKey_WptName_24"] = "",
["DictKey_WptName_74"] = "",
["DictKey_UnitName_101"] = "Unit #007",
["DictKey_WptName_143"] = "",
["DictKey_UnitName_99"] = "Pilot #003",
["DictKey_GroupName_69"] = "Ground Attack Test #009",
["DictKey_GroupName_78"] = "Ground Attack Test #012",
["DictKey_WptName_23"] = "",
["DictKey_UnitName_114"] = "Pilot #001",
["DictKey_UnitName_148"] = "Pilot #002",
["DictKey_UnitName_155"] = "Unit #009",
["DictKey_descriptionBlueTask_3"] = "",
["DictKey_UnitName_10"] = "Lead Helicopter",
["DictKey_WptName_146"] = "",
["DictKey_WptName_135"] = "",
["DictKey_WptName_86"] = "",
["DictKey_WptName_108"] = "",
["DictKey_WptName_77"] = "",
["DictKey_UnitName_147"] = "Pilot #001",
["DictKey_WptName_68"] = "",
["DictKey_GroupName_9"] = "Lead Helicopter",
["DictKey_WptName_53"] = "",
["DictKey_GroupName_66"] = "Ground Attack Test #008",
["DictKey_UnitName_82"] = "Unit #002",
["DictKey_WptName_115"] = "",
["DictKey_ActionText_107"] = "local EscortGroup = GROUP:NewFromName( \"WayPoint Air Test\" )\
\
local TaskPoints = EscortGroup:GetTaskRoute()\
\
TaskPoints[2].task = EscortGroup:TaskRegisterWayPoint( 2 )\
\
TaskPoints[3].task = EscortGroup:TaskRegisterWayPoint( 3 )\
\
EscortGroup:SetTask( EscortGroup:TaskRoute( TaskPoints ) )\
",
["DictKey_GroupName_35"] = "Escort Ship",
["DictKey_WptName_33"] = "",
["DictKey_WptName_129"] = "",
["DictKey_UnitName_88"] = "Unit #004",
["DictKey_UnitName_16"] = "Lead Plane",
["DictKey_UnitName_32"] = "Unit #1",
["DictKey_WptName_131"] = "",
["DictKey_WptName_127"] = "",
["DictKey_UnitName_91"] = "Unit #005",
["DictKey_WptName_133"] = "",
["DictKey_UnitName_156"] = "Unit #010",
["DictKey_WptName_121"] = "",
["DictKey_UnitName_70"] = "Ground Attack Test #009",
["DictKey_GroupName_63"] = "Ground Attack Test #007",
["DictKey_UnitName_98"] = "Pilot #002",
["DictKey_WptName_80"] = "",
["DictKey_GroupName_87"] = "Test Attack #003",
["DictKey_WptName_119"] = "",
["DictKey_WptName_29"] = "",
["DictKey_WptName_26"] = "",
["DictKey_UnitName_145"] = "Unit #008",
["DictKey_GroupName_113"] = "WayPoint Air Test",
["DictKey_WptName_59"] = "",
["DictKey_GroupName_90"] = "Test Attack #004",
["DictKey_WptName_118"] = "",
["DictKey_UnitName_13"] = "Escort Helicopter",
["DictKey_WptName_120"] = "",
["DictKey_UnitName_52"] = "Ground Attack Test #003",
["DictKey_WptName_139"] = "",
["DictKey_WptName_136"] = "",
["DictKey_WptName_117"] = "",
["DictKey_WptName_102"] = "",
["DictKey_WptName_44"] = "",
["DictKey_GroupName_84"] = "Test Attack #002",
["DictKey_WptName_111"] = "",
["DictKey_descriptionRedTask_2"] = "",
["DictKey_WptName_56"] = "",
["DictKey_WptName_141"] = "",
["DictKey_WptName_34"] = "",
["DictKey_UnitName_151"] = "Unit #007",
} -- end of dictionary

View File

@ -0,0 +1,5 @@
mapResource =
{
["ResKey_Action_8"] = "ESC-001 - Escorting Helicopters.lua",
["ResKey_Action_6"] = "Moose.lua",
} -- end of mapResource

View File

@ -0,0 +1,229 @@
options =
{
["playerName"] = "Killer",
["miscellaneous"] =
{
["headmove"] = true,
["TrackIR_external_views"] = 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"]
["difficulty"] =
{
["padlock"] = true,
["labels"] = false,
["easyCommunication"] = true,
["easyRadar"] = false,
["fuel"] = false,
["miniHUD"] = false,
["tips"] = true,
["birds"] = 0,
["optionsView"] = "optview_all",
["permitCrash"] = true,
["immortal"] = false,
["cockpitStatusBarAllowed"] = false,
["cockpitVisualRM"] = true,
["easyFlight"] = false,
["reports"] = true,
["hideStick"] = false,
["radio"] = true,
["externalViews"] = true,
["units"] = "metric",
["userMarks"] = true,
["cockpitLanguage"] = "english",
["spectatorExternalViews"] = true,
["userSnapView"] = true,
["avionicsLanguage"] = "native",
["impostors"] = "medium",
["iconsTheme"] = "nato",
["map"] = true,
["weapons"] = false,
["setGlobal"] = true,
["geffect"] = "realistic",
}, -- end of ["difficulty"]
["VR"] =
{
["use_mouse"] = false,
["enable"] = true,
["box_mouse_cursor"] = true,
["pixel_density"] = 1,
}, -- end of ["VR"]
["graphics"] =
{
["OculusRift"] = false,
["color"] = "32",
["LensEffects"] = 3,
["heatBlr"] = 2,
["scenes"] = "high",
["water"] = 2,
["visibRange"] = "High",
["treesVisibility"] = 25000,
["aspect"] = 2.5,
["lights"] = 2,
["HDR"] = 1,
["MSAA"] = 2,
["civTraffic"] = "high",
["clutterMaxDistance"] = 1500,
["terrainTextures"] = "max",
["multiMonitorSetup"] = "1camera",
["shadowTree"] = true,
["fullScreen"] = false,
["disableAero"] = false,
["DOF"] = 0,
["clouds"] = 1,
["flatTerrainShadows"] = 1,
["cockpitShadows"] = true,
["height"] = 768,
["width"] = 1920,
["shadows"] = 4,
["TranspSSAA"] = false,
["sync"] = true,
["preloadRadius"] = 73885,
["anisotropy"] = 2,
["haze"] = 1,
["textures"] = 2,
["effects"] = 3,
}, -- end of ["graphics"]
["plugins"] =
{
["CA"] =
{
["kompass_options"] = 1,
["ground_target_info"] = true,
["ground_aim_helper"] = true,
["ground_platform_shake"] = true,
["ground_automatic"] = true,
}, -- end of ["CA"]
["M-2000C"] =
{
["UNI_NODRIFT"] = false,
["TDC_"] = false,
["CPLocalList"] = "default",
["PPA_TOTPAR"] = false,
["UNI_ALIGNED"] = false,
}, -- end of ["M-2000C"]
["A-10C"] =
{
["CPLocalList"] = "default",
}, -- end of ["A-10C"]
["FC3"] =
{
["CPLocalList_F-15C"] = "default",
["CPLocalList_MiG-29S"] = "default",
["CPLocalList_MiG-29A"] = "default",
["CPLocalList_Su-25"] = "default",
["CPLocalList_A-10A"] = "default",
["CPLocalList_Su-27"] = "chinese",
["CPLocalList_MiG-29G"] = "default",
["CPLocalList_Su-33"] = "default",
}, -- end of ["FC3"]
["Hawk"] =
{
["CPLocalList"] = "high",
}, -- end of ["Hawk"]
["P-51D"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["P-51D"]
["TF-51D"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["TF-51D"]
["MiG-21Bis"] =
{
["Engine"] = false,
["Shake"] = 100,
["CustomCockpit"] = false,
["Reticle"] = false,
["Freeze"] = false,
}, -- end of ["MiG-21Bis"]
["F-86F"] =
{
["landSeatAdjustF86"] = true,
["aiHelper"] = false,
["CPLocalList"] = "default",
["NoseWheelSteeringSimpleBehaviourF86"] = true,
["gunCamera"] = 0,
}, -- end of ["F-86F"]
["Su-25T"] =
{
["CPLocalList"] = "default",
}, -- end of ["Su-25T"]
["Mi-8MTV2"] =
{
["Mi8TrimmingMethod"] = 0,
["Mi8AutopilotAdjustment"] = false,
["gunCamera"] = 0,
["controlHelperMi8"] = false,
["weapTooltipsMi8"] = true,
["Mi8RudderTrimmer"] = false,
["CPLocalList"] = "default",
["altMi8TrimmingMethod"] = false,
["Mi8FOV"] = 120,
}, -- end of ["Mi-8MTV2"]
["MiG-15bis"] =
{
["autoLeanToAimMiG15"] = true,
["CPLocalList"] = "chinese",
["gunCamera"] = 0,
["aiHelper"] = false,
}, -- end of ["MiG-15bis"]
["FW-190D9"] =
{
["assistance"] = 100,
["CPLocalList"] = "default",
["autoRudder"] = false,
}, -- end of ["FW-190D9"]
["UH-1H"] =
{
["UHTrackIRAiming"] = true,
["autoPilot"] = true,
["UHTrimmingMethod"] = 0,
["altUHTrimmingMethod"] = false,
["CPLocalList"] = "default",
["weapTooltips"] = true,
["UHRudderTrimmer"] = false,
}, -- end of ["UH-1H"]
["Ka-50"] =
{
["altTrimmingMethod"] = false,
["Ka50RudderTrimmer"] = false,
["CPLocalList"] = "english",
}, -- end of ["Ka-50"]
}, -- end of ["plugins"]
["format"] = 1,
["sound"] =
{
["hear_in_helmet"] = false,
["headphones"] = 100,
["cockpit"] = 100,
["GBreathEffect"] = true,
["gui"] = 100,
["volume"] = 100,
["radioSpeech"] = true,
["music"] = 100,
["subtitles"] = true,
["world"] = 100,
}, -- end of ["sound"]
["views"] =
{
["cockpit"] =
{
["mirrors"] = false,
["reflections"] = false,
["avionics"] = 3,
["russianHud"] = false,
}, -- end of ["cockpit"]
}, -- end of ["views"]
} -- end of options

View File

@ -0,0 +1,845 @@
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"] = "RED",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [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"] =
{
[6] =
{
["gasoline"] =
{
["InitFuel"] = 100,
}, -- end of ["gasoline"]
["unlimitedMunitions"] = true,
["methanol_mixture"] =
{
["InitFuel"] = 100,
}, -- end of ["methanol_mixture"]
["OperatingLevel_Air"] = 10,
["diesel"] =
{
["InitFuel"] = 100,
}, -- end of ["diesel"]
["speed"] = 16.666666,
["size"] = 100,
["periodicity"] = 30,
["suppliers"] =
{
}, -- end of ["suppliers"]
["coalition"] = "red",
["jet_fuel"] =
{
["InitFuel"] = 100,
}, -- end of ["jet_fuel"]
["OperatingLevel_Eqp"] = 10,
["unlimitedFuel"] = true,
["aircrafts"] =
{
}, -- end of ["aircrafts"]
["weapons"] =
{
}, -- end of ["weapons"]
["OperatingLevel_Fuel"] = 10,
["unlimitedAircrafts"] = true,
}, -- end of [6]
}, -- end of ["warehouses"]
} -- end of warehouses

View File

@ -0,0 +1,30 @@
--- This test demonstrates the use(s) of the SwitchWayPoint method of the GROUP class.
local HeliGroup = GROUP:FindByName( "Helicopter" )
local AttackGroup = GROUP:FindByName( "AttackGroup" )
local AttackUnits = AttackGroup:GetUnits()
local Tasks = {}
for i = 1, #AttackUnits do
local AttackUnit = AttackGroup:GetUnit( i )
Tasks[#Tasks+1] = HeliGroup:TaskAttackUnit( AttackUnit )
end
Tasks[#Tasks+1] = HeliGroup:TaskFunction( 1, 7, "_Resume", { "''" } )
--- @param Wrapper.Group#GROUP HeliGroup
function _Resume( HeliGroup )
env.info( '_Resume' )
HeliGroup:MessageToAll( "Resuming",10,"Info")
end
HeliGroup:PushTask(
HeliGroup:TaskCombo(
Tasks
), 30
)

View File

@ -0,0 +1,14 @@
---
-- Name: <PRJ-nnn - Mission Name>
-- Author: <Author>
-- Date Created: <Date>
--
-- # Situation:
--
-- <Text explaining the situation of the test mission and what happens>.
--
-- # Test cases:
--
-- 1. <Test Case 1 explanation: Use words like "Observe", "Try out", "Jump into"...>
-- 2. <Test Case 1 explanation: Use words like "Observe", "Try out", "Jump into"...>
--

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -259,7 +259,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).Engage">AI_CAS_ZONE:Engage()</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).Engage">AI_CAS_ZONE:Engage(EngageSpeed, EngageAltitude, EngageWeaponExpend, EngageAttackQty, EngageDirection)</a></td>
<td class="summary">
<p>Synchronous Event Trigger for Event Engage.</p>
</td>
@ -331,7 +331,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).OnAfterEngage">AI_CAS_ZONE:OnAfterEngage(Controllable, From, Event, To, EngageSpeed, EngageWeaponExpend, EngageAltitude, EngageAttackQty, EngageDirection)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).OnAfterEngage">AI_CAS_ZONE:OnAfterEngage(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>OnAfter Transition Handler for Event Engage.</p>
</td>
@ -361,7 +361,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).OnBeforeEngage">AI_CAS_ZONE:OnBeforeEngage(Controllable, From, Event, To, EngageSpeed, EngageWeaponExpend, EngageAltitude, EngageAttackQty, EngageDirection)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).OnBeforeEngage">AI_CAS_ZONE:OnBeforeEngage(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>OnBefore Transition Handler for Event Engage.</p>
</td>
@ -421,7 +421,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).__Engage">AI_CAS_ZONE:__Engage(Delay)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).__Engage">AI_CAS_ZONE:__Engage(Delay, EngageSpeed, EngageAltitude, EngageWeaponExpend, EngageAttackQty, EngageDirection)</a></td>
<td class="summary">
<p>Asynchronous Event Trigger for Event Engage.</p>
</td>
@ -445,7 +445,7 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).onafterEngage">AI_CAS_ZONE:onafterEngage(Controllable, From, Event, To, EngageSpeed, EngageWeaponExpend, EngageAltitude, EngageAttackQty, EngageDirection)</a></td>
<td class="name" nowrap="nowrap"><a href="##(AI_CAS_ZONE).onafterEngage">AI_CAS_ZONE:onafterEngage(Controllable, From, Event, To, EngageSpeed, EngageAltitude, EngageWeaponExpend, EngageAttackQty, EngageDirection)</a></td>
<td class="summary">
</td>
@ -598,13 +598,46 @@ It can be notified to go RTB through the <strong>RTB</strong> event.</p>
<dt>
<a id="#(AI_CAS_ZONE).Engage" >
<strong>AI_CAS_ZONE:Engage()</strong>
<strong>AI_CAS_ZONE:Engage(EngageSpeed, EngageAltitude, EngageWeaponExpend, EngageAttackQty, EngageDirection)</strong>
</a>
</dt>
<dd>
<p>Synchronous Event Trigger for Event Engage.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number EngageSpeed </em></code>:
(optional) The speed the Group will hold when engaging to the target zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> EngageAltitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(AI.Task.WeaponExpend)">Dcs.DCSTypes#AI.Task.WeaponExpend</a> EngageWeaponExpend </em></code>:
(optional) Determines how much weapon will be released at each attack. If parameter is not defined the unit / controllable will choose expend on its own discretion.</p>
</li>
<li>
<p><code><em>#number EngageAttackQty </em></code>:
(optional) This parameter limits maximal quantity of attack. The aicraft/controllable will not make more attack than allowed even if the target controllable not destroyed and the aicraft/controllable still have ammo. If not defined the aircraft/controllable will attack target until it will be destroyed or until the aircraft/controllable will run out of ammo.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Azimuth)">Dcs.DCSTypes#Azimuth</a> EngageDirection </em></code>:
(optional) Desired ingress direction from the target to the attacking aircraft. Controllable/aircraft will make its attacks from the direction. Of course if there is no way to attack from the direction due the terrain controllable/aircraft will choose another direction.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
@ -888,7 +921,7 @@ The To State string.</p>
<dt>
<a id="#(AI_CAS_ZONE).OnAfterEngage" >
<strong>AI_CAS_ZONE:OnAfterEngage(Controllable, From, Event, To, EngageSpeed, EngageWeaponExpend, EngageAltitude, EngageAttackQty, EngageDirection)</strong>
<strong>AI_CAS_ZONE:OnAfterEngage(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
@ -920,36 +953,6 @@ The Event string.</p>
<p><code><em>#string To </em></code>:
The To State string.</p>
</li>
<li>
<p><code><em>#number EngageSpeed </em></code>:
(optional) The speed the Group will hold when engaging to the target zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(AI.Task.WeaponExpend)">Dcs.DCSTypes#AI.Task.WeaponExpend</a> EngageWeaponExpend </em></code>:
(optional) Determines how much weapon will be released at each attack. If parameter is not defined the unit / controllable will choose expend on its own discretion.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> EngageAltitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
</li>
<li>
<p><code><em>#number EngageAttackQty </em></code>:
(optional) This parameter limits maximal quantity of attack. The aicraft/controllable will not make more attack than allowed even if the target controllable not destroyed and the aicraft/controllable still have ammo. If not defined the aircraft/controllable will attack target until it will be destroyed or until the aircraft/controllable will run out of ammo.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Azimuth)">Dcs.DCSTypes#Azimuth</a> EngageDirection </em></code>:
(optional) Desired ingress direction from the target to the attacking aircraft. Controllable/aircraft will make its attacks from the direction. Of course if there is no way to attack from the direction due the terrain controllable/aircraft will choose another direction.</p>
</li>
</ul>
</dd>
@ -1133,7 +1136,7 @@ Return false to cancel Transition.</p>
<dt>
<a id="#(AI_CAS_ZONE).OnBeforeEngage" >
<strong>AI_CAS_ZONE:OnBeforeEngage(Controllable, From, Event, To, EngageSpeed, EngageWeaponExpend, EngageAltitude, EngageAttackQty, EngageDirection)</strong>
<strong>AI_CAS_ZONE:OnBeforeEngage(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
@ -1165,36 +1168,6 @@ The Event string.</p>
<p><code><em>#string To </em></code>:
The To State string.</p>
</li>
<li>
<p><code><em>#number EngageSpeed </em></code>:
(optional) The speed the Group will hold when engaging to the target zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(AI.Task.WeaponExpend)">Dcs.DCSTypes#AI.Task.WeaponExpend</a> EngageWeaponExpend </em></code>:
(optional) Determines how much weapon will be released at each attack. If parameter is not defined the unit / controllable will choose expend on its own discretion.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> EngageAltitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
</li>
<li>
<p><code><em>#number EngageAttackQty </em></code>:
(optional) This parameter limits maximal quantity of attack. The aicraft/controllable will not make more attack than allowed even if the target controllable not destroyed and the aicraft/controllable still have ammo. If not defined the aircraft/controllable will attack target until it will be destroyed or until the aircraft/controllable will run out of ammo.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Azimuth)">Dcs.DCSTypes#Azimuth</a> EngageDirection </em></code>:
(optional) Desired ingress direction from the target to the attacking aircraft. Controllable/aircraft will make its attacks from the direction. Of course if there is no way to attack from the direction due the terrain controllable/aircraft will choose another direction.</p>
</li>
</ul>
</dd>
@ -1464,20 +1437,50 @@ The delay in seconds.</p>
<dt>
<a id="#(AI_CAS_ZONE).__Engage" >
<strong>AI_CAS_ZONE:__Engage(Delay)</strong>
<strong>AI_CAS_ZONE:__Engage(Delay, EngageSpeed, EngageAltitude, EngageWeaponExpend, EngageAttackQty, EngageDirection)</strong>
</a>
</dt>
<dd>
<p>Asynchronous Event Trigger for Event Engage.</p>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>:
The delay in seconds.</p>
</li>
<li>
<p><code><em>#number EngageSpeed </em></code>:
(optional) The speed the Group will hold when engaging to the target zone.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> EngageAltitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(AI.Task.WeaponExpend)">Dcs.DCSTypes#AI.Task.WeaponExpend</a> EngageWeaponExpend </em></code>:
(optional) Determines how much weapon will be released at each attack. If parameter is not defined the unit / controllable will choose expend on its own discretion.</p>
</li>
<li>
<p><code><em>#number EngageAttackQty </em></code>:
(optional) This parameter limits maximal quantity of attack. The aicraft/controllable will not make more attack than allowed even if the target controllable not destroyed and the aicraft/controllable still have ammo. If not defined the aircraft/controllable will attack target until it will be destroyed or until the aircraft/controllable will run out of ammo.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Azimuth)">Dcs.DCSTypes#Azimuth</a> EngageDirection </em></code>:
(optional) Desired ingress direction from the target to the attacking aircraft. Controllable/aircraft will make its attacks from the direction. Of course if there is no way to attack from the direction due the terrain controllable/aircraft will choose another direction.</p>
</li>
</ul>
</dd>
@ -1593,7 +1596,7 @@ The To State string.</p>
<dt>
<a id="#(AI_CAS_ZONE).onafterEngage" >
<strong>AI_CAS_ZONE:onafterEngage(Controllable, From, Event, To, EngageSpeed, EngageWeaponExpend, EngageAltitude, EngageAttackQty, EngageDirection)</strong>
<strong>AI_CAS_ZONE:onafterEngage(Controllable, From, Event, To, EngageSpeed, EngageAltitude, EngageWeaponExpend, EngageAttackQty, EngageDirection)</strong>
</a>
</dt>
<dd>
@ -1634,14 +1637,14 @@ The To State string.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(AI.Task.WeaponExpend)">Dcs.DCSTypes#AI.Task.WeaponExpend</a> EngageWeaponExpend </em></code>:
(optional) Determines how much weapon will be released at each attack. If parameter is not defined the unit / controllable will choose expend on its own discretion.</p>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> EngageAltitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> EngageAltitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
<p><code><em><a href="Dcs.DCSTypes.html##(AI.Task.WeaponExpend)">Dcs.DCSTypes#AI.Task.WeaponExpend</a> EngageWeaponExpend </em></code>:
(optional) Determines how much weapon will be released at each attack. If parameter is not defined the unit / controllable will choose expend on its own discretion.</p>
</li>
<li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -880,9 +880,6 @@ Use the method <a href="##(AI_PATROL_ZONE).ManageDamage">AI<em>PATROL</em>ZONE.M
<p> This table contains the targets detected during patrol.</p>
</dd>
</dl>
<dl class="function">

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -2424,6 +2424,7 @@ The UNIT carrying the package.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(AI_CARGO_UNIT).CargoCarrier" >
<strong>AI_CARGO_UNIT.CargoCarrier</strong>
</a>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -100,9 +100,15 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLEANUP).New">CLEANUP:New(ZoneNames, TimeInterval)</a></td>
<td class="name" nowrap="nowrap"><a href="##(CLEANUP).CleanUpScheduler">CLEANUP.CleanUpScheduler</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLEANUP).New">CLEANUP:New(ZoneNames, TimeInterval)</a></td>
<td class="summary">
<p>Creates the main object which is handling the cleaning of the debris within the given Zone Names.</p>
</td>
</tr>
<tr>
@ -172,7 +178,7 @@
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CLEANUP)._OnEventBirth">CLEANUP:_OnEventBirth(Event)</a></td>
<td class="name" nowrap="nowrap"><a href="##(CLEANUP)._OnEventBirth">CLEANUP:_OnEventBirth(EventData)</a></td>
<td class="summary">
</td>
@ -232,33 +238,61 @@
<dl class="function">
<dt>
<a id="#(CLEANUP).New" >
<strong>CLEANUP:New(ZoneNames, TimeInterval)</strong>
<em></em>
<a id="#(CLEANUP).CleanUpScheduler" >
<strong>CLEANUP.CleanUpScheduler</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> ZoneNames </em></code>: </p>
</li>
<li>
<p><code><em> TimeInterval </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(CLEANUP).New" >
<strong>CLEANUP:New(ZoneNames, TimeInterval)</strong>
</a>
</dt>
<dd>
<p>Creates the main object which is handling the cleaning of the debris within the given Zone Names.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#table ZoneNames </em></code>:
Is a table of zone names where the debris should be cleaned. Also a single string can be passed with one zone name.</p>
</li>
<li>
<p><code><em>#number TimeInterval </em></code>:
The interval in seconds when the clean activity takes place. The default is 300 seconds, thus every 5 minutes.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(CLEANUP)">#CLEANUP</a>:</em></p>
<h3>Usage:</h3>
<pre class="example"><code> -- Clean these Zones.
CleanUpAirports = CLEANUP:New( { 'CLEAN Tbilisi', 'CLEAN Kutaisi' }, 150 )
or
CleanUpTbilisi = CLEANUP:New( 'CLEAN Tbilisi', 150 )
CleanUpKutaisi = CLEANUP:New( 'CLEAN Kutaisi', 600 )</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(CLEANUP).TimeInterval" >
<strong>CLEANUP.TimeInterval</strong>
</a>
@ -525,7 +559,7 @@ The Unit name ...</p>
<dt>
<a id="#(CLEANUP)._OnEventBirth" >
<strong>CLEANUP:_OnEventBirth(Event)</strong>
<strong>CLEANUP:_OnEventBirth(EventData)</strong>
</a>
</dt>
<dd>
@ -536,7 +570,7 @@ The Unit name ...</p>
<ul>
<li>
<p><code><em> Event </em></code>: </p>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
</ul>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -294,7 +294,7 @@ This is different from the EnRoute tasks, where the targets of the task need to
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).EnRouteTaskEngageUnit">CONTROLLABLE:EnRouteTaskEngageUnit(EngageUnit, Priority, GroupAttack, WeaponExpend, AttackQty, Direction, Altitude, Visible, ControllableAttack)</a></td>
<td class="summary">
<p>(AIR) Attack the Unit.</p>
<p>(AIR) Search and attack the Unit.</p>
</td>
</tr>
<tr>
@ -509,7 +509,7 @@ A speed can be given in km/h.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).TaskAttackUnit">CONTROLLABLE:TaskAttackUnit(AttackUnit, WeaponType, WeaponExpend, AttackQty, Direction, AttackQtyLimit, ControllableAttack)</a></td>
<td class="name" nowrap="nowrap"><a href="##(CONTROLLABLE).TaskAttackUnit">CONTROLLABLE:TaskAttackUnit(AttackUnit, GroupAttack, WeaponExpend, AttackQty, Direction, Altitude, Visible, ControllableAttack)</a></td>
<td class="summary">
<p>(AIR) Attack the Unit.</p>
</td>
@ -1069,7 +1069,7 @@ The DCS task structure.</p>
</dt>
<dd>
<p>(AIR) Attack the Unit.</p>
<p>(AIR) Search and attack the Unit.</p>
<h3>Parameters</h3>
<ul>
@ -2043,7 +2043,7 @@ The DCS task structure.</p>
<dt>
<a id="#(CONTROLLABLE).TaskAttackUnit" >
<strong>CONTROLLABLE:TaskAttackUnit(AttackUnit, WeaponType, WeaponExpend, AttackQty, Direction, AttackQtyLimit, ControllableAttack)</strong>
<strong>CONTROLLABLE:TaskAttackUnit(AttackUnit, GroupAttack, WeaponExpend, AttackQty, Direction, Altitude, Visible, ControllableAttack)</strong>
</a>
</dt>
<dd>
@ -2055,13 +2055,13 @@ The DCS task structure.</p>
<li>
<p><code><em><a href="Wrapper.Unit.html##(UNIT)">Wrapper.Unit#UNIT</a> AttackUnit </em></code>:
The unit.</p>
The UNIT.</p>
</li>
<li>
<p><code><em>#number WeaponType </em></code>:
(optional) Bitmask of weapon types those allowed to use. If parameter is not defined that means no limits on weapon usage.</p>
<p><code><em>#boolean GroupAttack </em></code>:
(optional) If true, all units in the group will attack the Unit when found.</p>
</li>
<li>
@ -2084,8 +2084,14 @@ The unit.</p>
</li>
<li>
<p><code><em>#boolean AttackQtyLimit </em></code>:
(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackControllable" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks.</p>
<p><code><em><a href="Dcs.DCSTypes.html##(Distance)">Dcs.DCSTypes#Distance</a> Altitude </em></code>:
(optional) Desired altitude to perform the unit engagement.</p>
</li>
<li>
<p><code><em>#boolean Visible </em></code>:
(optional) Unit must be visible.</p>
</li>
<li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

File diff suppressed because it is too large Load Diff

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -160,7 +160,7 @@ Note that this is really fantastic, as you now have the dynamic of taking contro
</ul>
<h1>ESCORT initialization methods.</h1>
<p>The following menus are created within the RADIO MENU of an active unit hosted by a player:</p>
<p>The following menus are created within the RADIO MENU (F10) of an active unit hosted by a player:</p>
<ul>
<li><a href="##(ESCORT).MenuFollowAt">ESCORT.MenuFollowAt</a>: Creates a menu to make the escort follow the client.</li>
@ -207,9 +207,27 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<h2><a id="#(ESCORT)">Type <code>ESCORT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).CT1">ESCORT.CT1</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).ClassName">ESCORT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).Detection">ESCORT.Detection</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortBriefing">ESCORT.EscortBriefing</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -222,6 +240,12 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortGroup">ESCORT.EscortGroup</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortMenu">ESCORT.EscortMenu</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -444,6 +468,12 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortName">ESCORT.EscortName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).EscortSetGroup">ESCORT.EscortSetGroup</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -456,6 +486,12 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<td class="name" nowrap="nowrap"><a href="##(ESCORT).FollowScheduler">ESCORT.FollowScheduler</a></td>
<td class="summary">
<p>The instance of the SCHEDULER class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).GT1">ESCORT.GT1</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -576,6 +612,12 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<td class="name" nowrap="nowrap"><a href="##(ESCORT).ReportTargetsScheduler">ESCORT.ReportTargetsScheduler</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT).SetDetection">ESCORT:SetDetection(Detection)</a></td>
<td class="summary">
<p>Set a Detection method for the EscortClient to be reported upon.</p>
</td>
</tr>
<tr>
@ -603,19 +645,19 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._AssistTarget">ESCORT._AssistTarget(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._AssistTarget">ESCORT._AssistTarget(DetectedItemID, self, EscortGroupAttack)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._AttackTarget">ESCORT._AttackTarget(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._AttackTarget">ESCORT:_AttackTarget(DetectedItemID)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._Flare">ESCORT._Flare(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._Flare">ESCORT._Flare(MenuParam, self, Color, Message)</a></td>
<td class="summary">
</td>
@ -627,31 +669,31 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._HoldPosition">ESCORT._HoldPosition(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._HoldPosition">ESCORT._HoldPosition(MenuParam, self, OrbitGroup, OrbitHeight, OrbitSeconds)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._JoinUpAndFollow">ESCORT._JoinUpAndFollow(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._JoinUpAndFollow">ESCORT._JoinUpAndFollow(MenuParam, self, Distance)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROE">ESCORT._ROE(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROE">ESCORT._ROE(MenuParam, self, EscortROEFunction, EscortROEMessage)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROT">ESCORT._ROT(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ROT">ESCORT._ROT(MenuParam, self, EscortROTFunction, EscortROTMessage)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ReportNearbyTargetsNow">ESCORT._ReportNearbyTargetsNow(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ReportNearbyTargetsNow">ESCORT._ReportNearbyTargetsNow(MenuParam, self)</a></td>
<td class="summary">
</td>
@ -663,25 +705,25 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ResumeMission">ESCORT._ResumeMission(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ResumeMission">ESCORT._ResumeMission(MenuParam, self, WayPoint)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ScanTargets">ESCORT._ScanTargets(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._ScanTargets">ESCORT._ScanTargets(MenuParam, self, ScanDuration)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._Smoke">ESCORT._Smoke(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._Smoke">ESCORT._Smoke(MenuParam, self, Color, Message)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._SwitchReportNearbyTargets">ESCORT._SwitchReportNearbyTargets(MenuParam)</a></td>
<td class="name" nowrap="nowrap"><a href="##(ESCORT)._SwitchReportNearbyTargets">ESCORT:_SwitchReportNearbyTargets(ReportTargets)</a></td>
<td class="summary">
</td>
@ -707,6 +749,12 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<h2><a id="#(MENUPARAM)">Type <code>MENUPARAM</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).Distance">MENUPARAM.Distance</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MENUPARAM).ParamDistance">MENUPARAM.ParamDistance</a></td>
<td class="summary">
@ -780,6 +828,20 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<dl class="function">
<dt>
<em>#number</em>
<a id="#(ESCORT).CT1" >
<strong>ESCORT.CT1</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em>#string</em>
<a id="#(ESCORT).ClassName" >
<strong>ESCORT.ClassName</strong>
@ -789,6 +851,34 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="Functional.Detection.html##(DETECTION_BASE)">Functional.Detection#DETECTION_BASE</a></em>
<a id="#(ESCORT).Detection" >
<strong>ESCORT.Detection</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ESCORT).EscortBriefing" >
<strong>ESCORT.EscortBriefing</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -817,6 +907,20 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ESCORT).EscortMenu" >
<strong>ESCORT.EscortMenu</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1351,6 +1455,20 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(ESCORT).EscortSetGroup" >
<strong>ESCORT.EscortSetGroup</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1379,6 +1497,20 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
<p>The instance of the SCHEDULER class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(ESCORT).GT1" >
<strong>ESCORT.GT1</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
@ -1922,6 +2054,30 @@ EscortPlanes = ESCORT:New( EscortClient, EscortGroup, "Desert", "Welcome to the
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(ESCORT).SetDetection" >
<strong>ESCORT:SetDetection(Detection)</strong>
</a>
</dt>
<dd>
<p>Set a Detection method for the EscortClient to be reported upon.</p>
<p>Detection methods are based on the derived classes from DETECTION_BASE.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Function.Detection.html##(DETECTION_BASE)">Function.Detection#DETECTION_BASE</a> Detection </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
@ -1994,18 +2150,28 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._AssistTarget" >
<strong>ESCORT._AssistTarget(MenuParam)</strong>
<strong>ESCORT._AssistTarget(DetectedItemID, self, EscortGroupAttack)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
<p><code><em>#number DetectedItemID </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> EscortGroupAttack </em></code>: </p>
</li>
</ul>
@ -2015,7 +2181,7 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._AttackTarget" >
<strong>ESCORT._AttackTarget(MenuParam)</strong>
<strong>ESCORT:_AttackTarget(DetectedItemID)</strong>
</a>
</dt>
<dd>
@ -2026,7 +2192,7 @@ If true, then the direction vector will be smoked.</p>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
<p><code><em>#number DetectedItemID </em></code>: </p>
</li>
</ul>
@ -2036,19 +2202,34 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._Flare" >
<strong>ESCORT._Flare(MenuParam)</strong>
<strong>ESCORT._Flare(MenuParam, self, Color, Message)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> Color </em></code>: </p>
</li>
<li>
<p><code><em> Message </em></code>: </p>
</li>
</ul>
</dd>
@ -2070,19 +2251,39 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._HoldPosition" >
<strong>ESCORT._HoldPosition(MenuParam)</strong>
<strong>ESCORT._HoldPosition(MenuParam, self, OrbitGroup, OrbitHeight, OrbitSeconds)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> OrbitGroup </em></code>: </p>
</li>
<li>
<p><code><em> OrbitHeight </em></code>: </p>
</li>
<li>
<p><code><em> OrbitSeconds </em></code>: </p>
</li>
</ul>
</dd>
@ -2091,19 +2292,29 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._JoinUpAndFollow" >
<strong>ESCORT._JoinUpAndFollow(MenuParam)</strong>
<strong>ESCORT._JoinUpAndFollow(MenuParam, self, Distance)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> Distance </em></code>: </p>
</li>
</ul>
</dd>
@ -2112,19 +2323,34 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._ROE" >
<strong>ESCORT._ROE(MenuParam)</strong>
<strong>ESCORT._ROE(MenuParam, self, EscortROEFunction, EscortROEMessage)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> EscortROEFunction </em></code>: </p>
</li>
<li>
<p><code><em> EscortROEMessage </em></code>: </p>
</li>
</ul>
</dd>
@ -2133,19 +2359,34 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._ROT" >
<strong>ESCORT._ROT(MenuParam)</strong>
<strong>ESCORT._ROT(MenuParam, self, EscortROTFunction, EscortROTMessage)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> EscortROTFunction </em></code>: </p>
</li>
<li>
<p><code><em> EscortROTMessage </em></code>: </p>
</li>
</ul>
</dd>
@ -2154,19 +2395,24 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._ReportNearbyTargetsNow" >
<strong>ESCORT._ReportNearbyTargetsNow(MenuParam)</strong>
<strong>ESCORT._ReportNearbyTargetsNow(MenuParam, self)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
</ul>
</dd>
@ -2188,19 +2434,29 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._ResumeMission" >
<strong>ESCORT._ResumeMission(MenuParam)</strong>
<strong>ESCORT._ResumeMission(MenuParam, self, WayPoint)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> WayPoint </em></code>: </p>
</li>
</ul>
</dd>
@ -2209,19 +2465,29 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._ScanTargets" >
<strong>ESCORT._ScanTargets(MenuParam)</strong>
<strong>ESCORT._ScanTargets(MenuParam, self, ScanDuration)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> ScanDuration </em></code>: </p>
</li>
</ul>
</dd>
@ -2230,19 +2496,34 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._Smoke" >
<strong>ESCORT._Smoke(MenuParam)</strong>
<strong>ESCORT._Smoke(MenuParam, self, Color, Message)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="##(MENUPARAM)">#MENUPARAM</a> MenuParam </em></code>: </p>
</li>
<li>
<p><code><em> self </em></code>: </p>
</li>
<li>
<p><code><em> Color </em></code>: </p>
</li>
<li>
<p><code><em> Message </em></code>: </p>
</li>
</ul>
</dd>
@ -2251,7 +2532,7 @@ If true, then the direction vector will be smoked.</p>
<dt>
<a id="#(ESCORT)._SwitchReportNearbyTargets" >
<strong>ESCORT._SwitchReportNearbyTargets(MenuParam)</strong>
<strong>ESCORT:_SwitchReportNearbyTargets(ReportTargets)</strong>
</a>
</dt>
<dd>
@ -2262,7 +2543,7 @@ If true, then the direction vector will be smoked.</p>
<ul>
<li>
<p><code><em> MenuParam </em></code>: </p>
<p><code><em> ReportTargets </em></code>: </p>
</li>
</ul>
@ -2311,6 +2592,20 @@ If true, then the direction vector will be smoked.</p>
<dl class="function">
<dt>
<em></em>
<a id="#(MENUPARAM).Distance" >
<strong>MENUPARAM.Distance</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(Distance)">#Distance</a></em>
<a id="#(MENUPARAM).ParamDistance" >
<strong>MENUPARAM.ParamDistance</strong>

File diff suppressed because it is too large Load Diff

View File

@ -39,11 +39,11 @@
<li>Fsm</li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -725,12 +725,48 @@ YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).New">FSM_CONTROLLABLE:New(FSMT, Controllable)</a></td>
<td class="summary">
<p>Creates a new FSM_CONTROLLABLE object.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).OnAfterStop">FSM_CONTROLLABLE:OnAfterStop(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>OnAfter Transition Handler for Event Stop.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).OnBeforeStop">FSM_CONTROLLABLE:OnBeforeStop(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>OnBefore Transition Handler for Event Stop.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).OnEnterStopped">FSM_CONTROLLABLE:OnEnterStopped(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>OnEnter Transition Handler for State Stopped.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).OnLeaveStopped">FSM_CONTROLLABLE:OnLeaveStopped(Controllable, From, Event, To)</a></td>
<td class="summary">
<p>OnLeave Transition Handler for State Stopped.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).SetControllable">FSM_CONTROLLABLE:SetControllable(FSMControllable)</a></td>
<td class="summary">
<p>Sets the CONTROLLABLE object that the FSM_CONTROLLABLE governs.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).Stop">FSM_CONTROLLABLE:Stop()</a></td>
<td class="summary">
<p>Synchronous Event Trigger for Event Stop.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(FSM_CONTROLLABLE).__Stop">FSM_CONTROLLABLE:__Stop(Delay)</a></td>
<td class="summary">
<p>Asynchronous Event Trigger for Event Stop.</p>
</td>
</tr>
<tr>
@ -1960,6 +1996,176 @@ Finite State Machine Table</p>
<p><em><a href="##(FSM_CONTROLLABLE)">#FSM_CONTROLLABLE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE).OnAfterStop" >
<strong>FSM_CONTROLLABLE:OnAfterStop(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
<p>OnAfter Transition Handler for Event Stop.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
</li>
<li>
<p><code><em>#string From </em></code>:
The From State string.</p>
</li>
<li>
<p><code><em>#string Event </em></code>:
The Event string.</p>
</li>
<li>
<p><code><em>#string To </em></code>:
The To State string.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE).OnBeforeStop" >
<strong>FSM_CONTROLLABLE:OnBeforeStop(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
<p>OnBefore Transition Handler for Event Stop.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
</li>
<li>
<p><code><em>#string From </em></code>:
The From State string.</p>
</li>
<li>
<p><code><em>#string Event </em></code>:
The Event string.</p>
</li>
<li>
<p><code><em>#string To </em></code>:
The To State string.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Return false to cancel Transition.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE).OnEnterStopped" >
<strong>FSM_CONTROLLABLE:OnEnterStopped(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
<p>OnEnter Transition Handler for State Stopped.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
</li>
<li>
<p><code><em>#string From </em></code>:
The From State string.</p>
</li>
<li>
<p><code><em>#string Event </em></code>:
The Event string.</p>
</li>
<li>
<p><code><em>#string To </em></code>:
The To State string.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE).OnLeaveStopped" >
<strong>FSM_CONTROLLABLE:OnLeaveStopped(Controllable, From, Event, To)</strong>
</a>
</dt>
<dd>
<p>OnLeave Transition Handler for State Stopped.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Wrapper.Controllable.html##(CONTROLLABLE)">Wrapper.Controllable#CONTROLLABLE</a> Controllable </em></code>:
The Controllable Object managed by the FSM.</p>
</li>
<li>
<p><code><em>#string From </em></code>:
The From State string.</p>
</li>
<li>
<p><code><em>#string Event </em></code>:
The Event string.</p>
</li>
<li>
<p><code><em>#string To </em></code>:
The To State string.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em>#boolean:</em>
Return false to cancel Transition.</p>
</dd>
</dl>
<dl class="function">
@ -1991,6 +2197,41 @@ Finite State Machine Table</p>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE).Stop" >
<strong>FSM_CONTROLLABLE:Stop()</strong>
</a>
</dt>
<dd>
<p>Synchronous Event Trigger for Event Stop.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE).__Stop" >
<strong>FSM_CONTROLLABLE:__Stop(Delay)</strong>
</a>
</dt>
<dd>
<p>Asynchronous Event Trigger for Event Stop.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Delay </em></code>:
The delay in seconds. </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(FSM_CONTROLLABLE)._call_handler" >
<strong>FSM_CONTROLLABLE:_call_handler(handler, params, EventName)</strong>
</a>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li>Group</li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li>Identifiable</li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li>MOVEMENT</li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li>Movement</li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -69,7 +69,7 @@
</ul>
</div>
<div id="content">
<h1>Module <code>MOVEMENT</code></h1>
<h1>Module <code>Movement</code></h1>
<p>Limit the simultaneous movement of Groups within a running Mission.</p>
@ -88,30 +88,60 @@ on defined intervals (currently every minute).</p>
</td>
</tr>
</table>
<h2><a id="#(MOVEMENT)" >Type <code>MOVEMENT</code></a></h2>
<table class="function_list">
<h2><a id="#(MOVEMENT)">Type <code>MOVEMENT</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).AliveUnits">MOVEMENT.AliveUnits</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).ClassName">MOVEMENT.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).MoveCount">MOVEMENT.MoveCount</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).MoveMaximum">MOVEMENT.MoveMaximum</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).MovePrefixes">MOVEMENT.MovePrefixes</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).MoveUnits">MOVEMENT.MoveUnits</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).New">MOVEMENT:New(MovePrefixes, MoveMaximum)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).OnBirth">MOVEMENT:OnBirth(Event)</a></td>
<td class="summary">
<p>Captures the birth events when new Units were spawned.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).OnDeadOrCrash">MOVEMENT:OnDeadOrCrash(Event)</a></td>
<td class="summary">
<p>Captures the Dead or Crash events when Units crash or are destroyed.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MOVEMENT).OnEventBirth">MOVEMENT:OnEventBirth(self, EventData)</a></td>
<td class="summary">
<p>Captures the birth events when new Units were spawned.</p>
</td>
</tr>
<tr>
@ -149,8 +179,30 @@ on defined intervals (currently every minute).</p>
</dd>
</dl>
<h2><a id="#(MOVEMENT)" >Type <code>MOVEMENT</code></a></h2>
<h3>Field(s)</h3>
<h2><a id="#(Movement)" >Type <code>Movement</code></a></h2>
<h2><a id="#(MOVEMENT)" >Type <code>MOVEMENT</code></a></h2>
<p>the MOVEMENT class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(MOVEMENT).AliveUnits" >
<strong>MOVEMENT.AliveUnits</strong>
</a>
</dt>
<dd>
<p> Contains the counter how many units are currently alive</p>
</dd>
</dl>
<dl class="function">
<dt>
@ -163,6 +215,71 @@ on defined intervals (currently every minute).</p>
</dd>
</dl>
<dl class="function">
<dt>
<em>#number</em>
<a id="#(MOVEMENT).MoveCount" >
<strong>MOVEMENT.MoveCount</strong>
</a>
</dt>
<dd>
<p> The internal counter of the amount of Moveing the has happened since MoveStart.</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(MOVEMENT).MoveMaximum" >
<strong>MOVEMENT.MoveMaximum</strong>
</a>
</dt>
<dd>
<p> Contains the Maximum amount of units that are allowed to move...</p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(MOVEMENT).MovePrefixes" >
<strong>MOVEMENT.MovePrefixes</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(MOVEMENT).MoveUnits" >
<strong>MOVEMENT.MoveUnits</strong>
</a>
</dt>
<dd>
<p> Reflects if the Moving for this MovePrefixes is going to be scheduled or not.</p>
</dd>
</dl>
<dl class="function">
@ -194,13 +311,13 @@ on defined intervals (currently every minute).</p>
<dl class="function">
<dt>
<a id="#(MOVEMENT).OnBirth" >
<strong>MOVEMENT:OnBirth(Event)</strong>
<a id="#(MOVEMENT).OnDeadOrCrash" >
<strong>MOVEMENT:OnDeadOrCrash(Event)</strong>
</a>
</dt>
<dd>
<p>Captures the birth events when new Units were spawned.</p>
<p>Captures the Dead or Crash events when Units crash or are destroyed.</p>
<h3>Parameter</h3>
<ul>
@ -215,19 +332,24 @@ on defined intervals (currently every minute).</p>
<dl class="function">
<dt>
<a id="#(MOVEMENT).OnDeadOrCrash" >
<strong>MOVEMENT:OnDeadOrCrash(Event)</strong>
<a id="#(MOVEMENT).OnEventBirth" >
<strong>MOVEMENT:OnEventBirth(self, EventData)</strong>
</a>
</dt>
<dd>
<p>Captures the Dead or Crash events when Units crash or are destroyed.</p>
<p>Captures the birth events when new Units were spawned.</p>
<h3>Parameter</h3>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Event </em></code>: </p>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> self </em></code>: </p>
</li>
<li>
<p><code><em> EventData </em></code>: </p>
</li>
</ul>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li>Menu</li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li>Message</li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li>MissileTrainer</li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -296,6 +296,12 @@ Together with the <strong>476 virtual team</strong>, we tested the MISSILETRAINE
<td class="name" nowrap="nowrap"><a href="##(MISSILETRAINER).New">MISSILETRAINER:New(Distance, Briefing)</a></td>
<td class="summary">
<p>Creates the main object which is handling missile tracking.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSILETRAINER).OnEventShot">MISSILETRAINER:OnEventShot(EventData, EVentData)</a></td>
<td class="summary">
<p>Detects if an SA site was shot with an anti radiation missile.</p>
</td>
</tr>
<tr>
@ -338,12 +344,6 @@ Together with the <strong>476 virtual team</strong>, we tested the MISSILETRAINE
<td class="name" nowrap="nowrap"><a href="##(MISSILETRAINER)._Alive">MISSILETRAINER._Alive(Client, self)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(MISSILETRAINER)._EventShot">MISSILETRAINER:_EventShot(Event)</a></td>
<td class="summary">
<p>Detects if an SA site was shot with an anti radiation missile.</p>
</td>
</tr>
<tr>
@ -820,6 +820,35 @@ The distance in meters when a tracked missile needs to be destroyed when close t
<dl class="function">
<dt>
<a id="#(MISSILETRAINER).OnEventShot" >
<strong>MISSILETRAINER:OnEventShot(EventData, EVentData)</strong>
</a>
</dt>
<dd>
<p>Detects if an SA site was shot with an anti radiation missile.</p>
<p>In this case, take evasive actions based on the skill level set within the ME.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> EventData </em></code>: </p>
</li>
<li>
<p><code><em> EVentData </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSILETRAINER).TrackingFrequency" >
<strong>MISSILETRAINER.TrackingFrequency</strong>
</a>
@ -953,30 +982,6 @@ The distance in meters when a tracked missile needs to be destroyed when close t
<dl class="function">
<dt>
<a id="#(MISSILETRAINER)._EventShot" >
<strong>MISSILETRAINER:_EventShot(Event)</strong>
</a>
</dt>
<dd>
<p>Detects if an SA site was shot with an anti radiation missile.</p>
<p>In this case, take evasive actions based on the skill level set within the ME.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> Event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(MISSILETRAINER)._MenuMessages" >
<strong>MISSILETRAINER._MenuMessages(MenuParameters)</strong>
</a>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li>Mission</li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li>Object</li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li>Point</li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li>Positionable</li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -138,6 +138,12 @@ The Schedule() method returns the CallID that is the reference ID for each plann
<td class="name" nowrap="nowrap"><a href="##(SCHEDULEDISPATCHER).ClassName">SCHEDULEDISPATCHER.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULEDISPATCHER).Clear">SCHEDULEDISPATCHER:Clear(Scheduler)</a></td>
<td class="summary">
</td>
</tr>
<tr>
@ -287,6 +293,27 @@ Nothing of this code should be modified without testing it thoroughly.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCHEDULEDISPATCHER).Clear" >
<strong>SCHEDULEDISPATCHER:Clear(Scheduler)</strong>
</a>
</dt>
<dd>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Scheduler </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">

View File

@ -39,11 +39,11 @@
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Movement.html">Movement</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
@ -141,6 +141,12 @@
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).ClassName">SCHEDULER.ClassName</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(SCHEDULER).Clear">SCHEDULER:Clear()</a></td>
<td class="summary">
<p>Clears all pending schedules.</p>
</td>
</tr>
<tr>
@ -227,6 +233,19 @@
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(SCHEDULER).Clear" >
<strong>SCHEDULER:Clear()</strong>
</a>
</dt>
<dd>
<p>Clears all pending schedules.</p>
</dd>
</dl>
<dl class="function">

Some files were not shown because too many files have changed in this diff Show More