Further documentation on AI_A2A_DISPATCHER with examples
@ -204,11 +204,14 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--
|
--
|
||||||
-- ## 1. AI\_A2A\_DISPATCHER constructor:
|
-- ## 1. AI\_A2A\_DISPATCHER constructor:
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
--
|
||||||
-- The @{#AI_A2A_DISPATCHER.New}() method creates a new AI\_A2A\_DISPATCHER instance.
|
-- The @{#AI_A2A_DISPATCHER.New}() method creates a new AI\_A2A\_DISPATCHER instance.
|
||||||
--
|
--
|
||||||
-- ### 1.1. Define the **EWR network**:
|
-- ### 1.1. Define the **EWR network**:
|
||||||
--
|
--
|
||||||
-- As part of the AI\_A2A\_DISPATCHER constructor, an EWR network must be given as the first parameter.
|
-- As part of the AI\_A2A\_DISPATCHER :New() constructor, an EWR network must be given as the first parameter.
|
||||||
-- An EWR network, or, Early Warning Radar network, is used to early detect potential airborne targets and to understand the position of patrolling targets of the enemy.
|
-- An EWR network, or, Early Warning Radar network, is used to early detect potential airborne targets and to understand the position of patrolling targets of the enemy.
|
||||||
--
|
--
|
||||||
-- 
|
-- 
|
||||||
@ -234,6 +237,9 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--
|
--
|
||||||
-- See the following example to setup an EWR network containing EWR stations and AWACS.
|
-- See the following example to setup an EWR network containing EWR stations and AWACS.
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- -- Define a SET_GROUP object that builds a collection of groups that define the EWR network.
|
-- -- Define a SET_GROUP object that builds a collection of groups that define the EWR network.
|
||||||
-- -- Here we build the network with all the groups that have a name starting with DF CCCP AWACS and DF CCCP EWR.
|
-- -- Here we build the network with all the groups that have a name starting with DF CCCP AWACS and DF CCCP EWR.
|
||||||
-- DetectionSetGroup = SET_GROUP:New()
|
-- DetectionSetGroup = SET_GROUP:New()
|
||||||
@ -246,10 +252,10 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- -- Setup the A2A dispatcher, and initialize it.
|
-- -- Setup the A2A dispatcher, and initialize it.
|
||||||
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
||||||
--
|
--
|
||||||
--
|
|
||||||
-- The above example creates a SET_GROUP instance, and stores this in the variable (object) **DetectionSetGroup**.
|
-- The above example creates a SET_GROUP instance, and stores this in the variable (object) **DetectionSetGroup**.
|
||||||
-- **DetectionSetGroup** is then being configured to filter all active groups with a group name starting with **DF CCCP AWACS** or **DF CCCP EWR** to be included in the Set.
|
-- **DetectionSetGroup** is then being configured to filter all active groups with a group name starting with **DF CCCP AWACS** or **DF CCCP EWR** to be included in the Set.
|
||||||
-- **DetectionSetGroup** is then being ordered to start the dynamic filtering. Note that any destroy or new spawn of a group with the above names will be removed or added to the Set.
|
-- **DetectionSetGroup** is then being ordered to start the dynamic filtering. Note that any destroy or new spawn of a group with the above names will be removed or added to the Set.
|
||||||
|
--
|
||||||
-- Then a new Detection object is created from the class DETECTION_AREAS. A grouping radius of 30000 is choosen, which is 30km.
|
-- Then a new Detection object is created from the class DETECTION_AREAS. A grouping radius of 30000 is choosen, which is 30km.
|
||||||
-- The **Detection** object is then passed to the @{#AI_A2A_DISPATCHER.New}() method to indicate the EWR network configuration and setup the A2A defense detection mechanism.
|
-- The **Detection** object is then passed to the @{#AI_A2A_DISPATCHER.New}() method to indicate the EWR network configuration and setup the A2A defense detection mechanism.
|
||||||
--
|
--
|
||||||
@ -283,6 +289,12 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- If too small, more intercept missions may be triggered upon detected target areas.
|
-- If too small, more intercept missions may be triggered upon detected target areas.
|
||||||
-- If too large, any airborne cap may not be able to reach the detected target area in time, because it is too far.
|
-- If too large, any airborne cap may not be able to reach the detected target area in time, because it is too far.
|
||||||
--
|
--
|
||||||
|
-- In this example an engage radius is set to 80 km.
|
||||||
|
--
|
||||||
|
-- -- Initialize the dispatcher, setting up a radius of 80km where any airborne friendly
|
||||||
|
-- -- without an assignment within 80km radius from a detected target, will engage that target.
|
||||||
|
-- A2ADispatcher:SetEngageRadius( 80000 )
|
||||||
|
--
|
||||||
-- ## 4. Set the **Intercept radius** or **Gci radius**:
|
-- ## 4. Set the **Intercept radius** or **Gci radius**:
|
||||||
--
|
--
|
||||||
-- When targets are detected that are still really far off, you don't want the AI_A2A_DISPATCHER to launch intercepts just yet.
|
-- When targets are detected that are still really far off, you don't want the AI_A2A_DISPATCHER to launch intercepts just yet.
|
||||||
@ -291,6 +303,11 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- Override the default Gci radius when the era of the warfare is early, or, when you don't want to let the AI_A2A_DISPATCHER react immediately when
|
-- Override the default Gci radius when the era of the warfare is early, or, when you don't want to let the AI_A2A_DISPATCHER react immediately when
|
||||||
-- a certain border or area is not being crossed.
|
-- a certain border or area is not being crossed.
|
||||||
--
|
--
|
||||||
|
-- In this example, the GCI radius is setto 150 km:
|
||||||
|
--
|
||||||
|
-- -- Initialize the dispatcher, setting up a GCI radius of 150km where no GCI will be started if the target is further than 150 km from the closest airabse.
|
||||||
|
-- A2ADispatcher:SetGciRadius( 80000 )
|
||||||
|
--
|
||||||
-- ## 5. Set the **borders**:
|
-- ## 5. Set the **borders**:
|
||||||
--
|
--
|
||||||
-- According to the tactical and strategic design of the mission broadly decide the shape and extent of red and blue territories.
|
-- According to the tactical and strategic design of the mission broadly decide the shape and extent of red and blue territories.
|
||||||
@ -310,6 +327,21 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- it makes it easier sometimes for the mission maker to envisage where the red and blue territories roughly are.
|
-- it makes it easier sometimes for the mission maker to envisage where the red and blue territories roughly are.
|
||||||
-- In a hot war the borders are effectively defined by the ground based radar coverage of a coalition.
|
-- In a hot war the borders are effectively defined by the ground based radar coverage of a coalition.
|
||||||
--
|
--
|
||||||
|
-- In this example a border is set for the CCCP A2A dispatcher:
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
-- -- Setup the A2A dispatcher, and initialize it.
|
||||||
|
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
||||||
|
--
|
||||||
|
-- -- Setup the border.
|
||||||
|
-- -- Initialize the dispatcher, setting up a border zone. This is a polygon,
|
||||||
|
-- -- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area.
|
||||||
|
-- -- Any enemy crossing this border will be engaged.
|
||||||
|
--
|
||||||
|
-- CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) )
|
||||||
|
-- A2ADispatcher:SetBorderZone( CCCPBorderZone )
|
||||||
|
--
|
||||||
-- ## 6. Squadrons:
|
-- ## 6. Squadrons:
|
||||||
--
|
--
|
||||||
-- The AI\_A2A\_DISPATCHER works with **Squadrons**, that need to be defined using the different methods available.
|
-- The AI\_A2A\_DISPATCHER works with **Squadrons**, that need to be defined using the different methods available.
|
||||||
@ -335,6 +367,17 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--
|
--
|
||||||
-- For performance and bug workaround reasons within DCS, squadrons have different methods to spawn new aircraft or land returning or damaged aircraft.
|
-- For performance and bug workaround reasons within DCS, squadrons have different methods to spawn new aircraft or land returning or damaged aircraft.
|
||||||
--
|
--
|
||||||
|
-- This example defines a couple of squadrons. Note the templates defined within the Mission Editor.
|
||||||
|
--
|
||||||
|
-- 
|
||||||
|
-- 
|
||||||
|
--
|
||||||
|
-- -- Setup the squadrons.
|
||||||
|
-- A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27" }, 20 )
|
||||||
|
-- A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 20 )
|
||||||
|
-- A2ADispatcher:SetSquadron( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 20 )
|
||||||
|
-- A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27" }, 20 )
|
||||||
|
-- A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 20 )
|
||||||
--
|
--
|
||||||
-- ### 6.1. Set squadron take-off methods
|
-- ### 6.1. Set squadron take-off methods
|
||||||
--
|
--
|
||||||
@ -366,6 +409,22 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- Currently within the DCS engine, the airfield traffic coordination is erroneous and contains a lot of bugs.
|
-- Currently within the DCS engine, the airfield traffic coordination is erroneous and contains a lot of bugs.
|
||||||
-- If you experience while testing problems with aircraft take-off or landing, please use one of the above methods as a solution to workaround these issues!
|
-- If you experience while testing problems with aircraft take-off or landing, please use one of the above methods as a solution to workaround these issues!
|
||||||
--
|
--
|
||||||
|
-- This example sets the default takeoff method to be from the runway.
|
||||||
|
-- And for a couple of squadrons overrides this default method.
|
||||||
|
--
|
||||||
|
-- -- Setup the Takeoff methods
|
||||||
|
--
|
||||||
|
-- -- The default takeoff
|
||||||
|
-- A2ADispatcher:SetDefaultTakeOffFromRunway()
|
||||||
|
--
|
||||||
|
-- -- The individual takeoff per squadron
|
||||||
|
-- A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air )
|
||||||
|
-- A2ADispatcher:SetSquadronTakeoffInAir( "Sochi" )
|
||||||
|
-- A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" )
|
||||||
|
-- A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" )
|
||||||
|
-- A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
|
||||||
|
--
|
||||||
|
--
|
||||||
-- ### 6.2. Set squadron landing methods
|
-- ### 6.2. Set squadron landing methods
|
||||||
--
|
--
|
||||||
-- In analogy with takeoff, the landing methods are to control how squadrons land at the airfield:
|
-- In analogy with takeoff, the landing methods are to control how squadrons land at the airfield:
|
||||||
@ -388,6 +447,22 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- Note that the method @{#AI_A2A_DISPATCHER.SetSquadronLandingNearAirbase}() will only work for returning aircraft, not for damaged or out of fuel aircraft.
|
-- Note that the method @{#AI_A2A_DISPATCHER.SetSquadronLandingNearAirbase}() will only work for returning aircraft, not for damaged or out of fuel aircraft.
|
||||||
-- Damaged or out-of-fuel aircraft are returning to the nearest friendly airbase and will land, and are out of control from ground control.
|
-- Damaged or out-of-fuel aircraft are returning to the nearest friendly airbase and will land, and are out of control from ground control.
|
||||||
--
|
--
|
||||||
|
-- This example defines the default landing method to be at the runway.
|
||||||
|
-- And for a couple of squadrons overrides this default method.
|
||||||
|
--
|
||||||
|
-- -- Setup the Landing methods
|
||||||
|
--
|
||||||
|
-- -- The default landing method
|
||||||
|
-- A2ADispatcher:SetDefaultLandingAtRunway()
|
||||||
|
--
|
||||||
|
-- -- The individual landing per squadron
|
||||||
|
-- A2ADispatcher:SetSquadronLandingAtRunway( "Mineralnye" )
|
||||||
|
-- A2ADispatcher:SetSquadronLandingNearAirbase( "Sochi" )
|
||||||
|
-- A2ADispatcher:SetSquadronLandingAtEngineShutdown( "Mozdok" )
|
||||||
|
-- A2ADispatcher:SetSquadronLandingNearAirbase( "Maykop" )
|
||||||
|
-- A2ADispatcher:SetSquadronLanding( "Novo", AI_A2A_DISPATCHER.Landing.AtRunway )
|
||||||
|
--
|
||||||
|
--
|
||||||
-- ### 6.3. Set squadron grouping
|
-- ### 6.3. Set squadron grouping
|
||||||
--
|
--
|
||||||
-- Use the method @{#AI_A2A_DISPATCHER.SetSquadronGrouping}() to set the grouping of CAP or GCI flights that will take-off when spawned.
|
-- Use the method @{#AI_A2A_DISPATCHER.SetSquadronGrouping}() to set the grouping of CAP or GCI flights that will take-off when spawned.
|
||||||
@ -463,15 +538,21 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--
|
--
|
||||||
-- The following example illustrates how CAP zones are coded:
|
-- The following example illustrates how CAP zones are coded:
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- -- CAP Squadron execution.
|
-- -- CAP Squadron execution.
|
||||||
-- CAPZoneEast = ZONE_POLYGON:New( "CAP Zone East", GROUP:FindByName( "CAP Zone East" ) )
|
-- CAPZoneEast = ZONE_POLYGON:New( "CAP Zone East", GROUP:FindByName( "CAP Zone East" ) )
|
||||||
-- A2ADispatcher:SetSquadronCap( "Mineralnye", CAPZoneEast, 4000, 10000, 500, 600, 800, 900 )
|
-- A2ADispatcher:SetSquadronCap( "Mineralnye", CAPZoneEast, 4000, 10000, 500, 600, 800, 900 )
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Mineralnye", 2, 30, 60, 1 )
|
-- A2ADispatcher:SetSquadronCapInterval( "Mineralnye", 2, 30, 60, 1 )
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone West" ) )
|
-- CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone West" ) )
|
||||||
-- A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
-- A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
||||||
--
|
--
|
||||||
|
-- 
|
||||||
|
--
|
||||||
-- CAPZoneMiddle = ZONE:New( "CAP Zone Middle")
|
-- CAPZoneMiddle = ZONE:New( "CAP Zone Middle")
|
||||||
-- A2ADispatcher:SetSquadronCap( "Maykop", CAPZoneMiddle, 4000, 8000, 600, 800, 800, 1200, "RADIO" )
|
-- A2ADispatcher:SetSquadronCap( "Maykop", CAPZoneMiddle, 4000, 8000, 600, 800, 800, 1200, "RADIO" )
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
||||||
@ -498,8 +579,8 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--
|
--
|
||||||
-- For example, the following setup will create a CAP for squadron "Sochi":
|
-- For example, the following setup will create a CAP for squadron "Sochi":
|
||||||
--
|
--
|
||||||
-- A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
-- A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
||||||
--
|
--
|
||||||
-- ## 8. Setup a squadron for GCI:
|
-- ## 8. Setup a squadron for GCI:
|
||||||
--
|
--
|
||||||
@ -516,7 +597,7 @@ do -- AI_A2A_DISPATCHER
|
|||||||
--
|
--
|
||||||
-- For example, the following setup will create a GCI for squadron "Sochi":
|
-- For example, the following setup will create a GCI for squadron "Sochi":
|
||||||
--
|
--
|
||||||
-- A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
|
-- A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
|
||||||
--
|
--
|
||||||
-- ## 9. Other configuration options
|
-- ## 9. Other configuration options
|
||||||
--
|
--
|
||||||
@ -526,184 +607,9 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- Use the method @{#AI_A2A_DISPATCHER.SetTacticalDisplay}() to switch on the tactical display panel. The default will not show this panel.
|
-- Use the method @{#AI_A2A_DISPATCHER.SetTacticalDisplay}() to switch on the tactical display panel. The default will not show this panel.
|
||||||
-- Note that there may be some performance impact if this panel is shown.
|
-- Note that there may be some performance impact if this panel is shown.
|
||||||
--
|
--
|
||||||
-- ## 10. Mission Editor Guide:
|
-- ## 10. Q & A:
|
||||||
--
|
--
|
||||||
-- The following steps need to be followed, in order to setup the different borders, templates and groups within the mission editor:
|
-- ### 10.1. Which countries will be selected for each coalition?
|
||||||
--
|
|
||||||
-- ### 10.1. Define your EWR network:
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- At strategic positions within the battlefield, position the correct groups of units that have radar detection capability in the battlefield.
|
|
||||||
-- Create the naming of these groups as such, that these can be easily recognized and included as a prefix within your lua MOOSE mission script.
|
|
||||||
-- These prefixes should be unique, so that accidentally no other groups would be incorporated within the EWR network.
|
|
||||||
--
|
|
||||||
-- ### 10.2. Define the border zone:
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- For a cold war situation, define your border zone.
|
|
||||||
-- You can do this in many ways, as the @{Zone} capability within MOOSE outlines. However, the best practice is to create a ZONE_POLYGON class.
|
|
||||||
-- To do this, you need to create a zone using a helicopter group, that is late activated, and has a unique group name.
|
|
||||||
-- Place the helicopter where the border zone should start, and draw using the waypoints the polygon zone around the area that is considered the border.
|
|
||||||
-- The helicopter group name is included as the reference within your lua MOOSE mission script, so ensure that the name is unique and is easily recognizable.
|
|
||||||
--
|
|
||||||
-- ### 10.3. Define the plane templates:
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Define the templates of the planes that define the format of planes that will take part in the A2A defenses of your coalition.
|
|
||||||
-- These plane templates will never be activated, but are used to create a diverse airplane portfolio allocated to your squadrons.
|
|
||||||
--
|
|
||||||
-- IMPORTANT! **Plane templates MUST be of ONE unit, and must have the Late Activated flag switched on!**
|
|
||||||
--
|
|
||||||
-- Plane templates are used to diversify the defending squadrons with:
|
|
||||||
--
|
|
||||||
-- * different airplane types
|
|
||||||
-- * different airplane skins
|
|
||||||
-- * different skill levels
|
|
||||||
-- * different weapon payloads
|
|
||||||
-- * different fuel and other characteristics
|
|
||||||
--
|
|
||||||
-- Place these airplane templates are good visible locations within your mission, so you can easily retrieve them back.
|
|
||||||
--
|
|
||||||
-- ### 10.4. Define the CAP zones:
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Similar as with the border zone, define the CAP zones using helicopter group templates. Its waypoints define the polygon zones.
|
|
||||||
-- But you can also define other zone types instead, like moving zones.
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Or you can define also zones using trigger zones.
|
|
||||||
--
|
|
||||||
-- ### 10.5. "Script it":
|
|
||||||
--
|
|
||||||
-- Find the following mission script as an example:
|
|
||||||
--
|
|
||||||
-- -- Define a SET_GROUP object that builds a collection of groups that define the EWR network.
|
|
||||||
-- -- Here we build the network with all the groups that have a name starting with DF CCCP AWACS and DF CCCP EWR.
|
|
||||||
-- DetectionSetGroup = SET_GROUP:New()
|
|
||||||
-- DetectionSetGroup:FilterPrefixes( { "DF CCCP AWACS", "DF CCCP EWR" } )
|
|
||||||
-- DetectionSetGroup:FilterStart()
|
|
||||||
--
|
|
||||||
-- -- Here we define detection to be done by area, with a grouping radius of 3000.
|
|
||||||
-- Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
|
|
||||||
--
|
|
||||||
-- -- Setup the A2A dispatcher, and initialize it.
|
|
||||||
-- A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
|
||||||
--
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- -- Initialize the dispatcher, setting up a border zone. This is a polygon,
|
|
||||||
-- -- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area.
|
|
||||||
-- -- Any enemy crossing this border will be engaged.
|
|
||||||
-- CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) )
|
|
||||||
-- A2ADispatcher:SetBorderZone( CCCPBorderZone )
|
|
||||||
--
|
|
||||||
-- -- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly
|
|
||||||
-- -- without an assignment within 100km radius from a detected target, will engage that target.
|
|
||||||
-- A2ADispatcher:SetEngageRadius( 300000 )
|
|
||||||
--
|
|
||||||
-- -- Setup the squadrons.
|
|
||||||
-- A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27" }, 20 )
|
|
||||||
-- A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 20 )
|
|
||||||
-- A2ADispatcher:SetSquadron( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 20 )
|
|
||||||
-- A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27" }, 20 )
|
|
||||||
-- A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 20 )
|
|
||||||
--
|
|
||||||
-- -- Setup the overhead
|
|
||||||
-- A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
|
||||||
-- A2ADispatcher:SetSquadronOverhead( "Maykop", 1 )
|
|
||||||
-- A2ADispatcher:SetSquadronOverhead( "Mozdok", 1.5 )
|
|
||||||
-- A2ADispatcher:SetSquadronOverhead( "Sochi", 1 )
|
|
||||||
-- A2ADispatcher:SetSquadronOverhead( "Novo", 1 )
|
|
||||||
--
|
|
||||||
-- -- Setup the Grouping
|
|
||||||
-- A2ADispatcher:SetSquadronGrouping( "Mineralnye", 2 )
|
|
||||||
-- A2ADispatcher:SetSquadronGrouping( "Sochi", 2 )
|
|
||||||
-- A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
|
|
||||||
--
|
|
||||||
-- -- Setup the Takeoff methods
|
|
||||||
-- A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air )
|
|
||||||
-- A2ADispatcher:SetSquadronTakeoffInAir( "Sochi" )
|
|
||||||
-- A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" )
|
|
||||||
-- A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" )
|
|
||||||
-- A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
|
|
||||||
--
|
|
||||||
-- -- Setup the Landing methods
|
|
||||||
-- A2ADispatcher:SetSquadronLandingAtRunway( "Mineralnye" )
|
|
||||||
-- A2ADispatcher:SetSquadronLandingNearAirbase( "Sochi" )
|
|
||||||
-- A2ADispatcher:SetSquadronLandingAtEngineShutdown( "Mozdok" )
|
|
||||||
-- A2ADispatcher:SetSquadronLandingNearAirbase( "Maykop" )
|
|
||||||
-- A2ADispatcher:SetSquadronLanding( "Novo", AI_A2A_DISPATCHER.Landing.AtRunway )
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- -- CAP Squadron execution.
|
|
||||||
-- CAPZoneEast = ZONE_POLYGON:New( "CAP Zone East", GROUP:FindByName( "CAP Zone East" ) )
|
|
||||||
-- A2ADispatcher:SetSquadronCap( "Mineralnye", CAPZoneEast, 4000, 10000, 500, 600, 800, 900 )
|
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Mineralnye", 2, 30, 60, 1 )
|
|
||||||
--
|
|
||||||
-- CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone West" ) )
|
|
||||||
-- A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
|
||||||
--
|
|
||||||
-- CAPZoneMiddle = ZONE:New( "CAP Zone Middle")
|
|
||||||
-- A2ADispatcher:SetSquadronCap( "Maykop", CAPZoneMiddle, 4000, 8000, 600, 800, 800, 1200, "RADIO" )
|
|
||||||
-- A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
|
||||||
--
|
|
||||||
-- -- GCI Squadron execution.
|
|
||||||
-- A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
|
|
||||||
-- A2ADispatcher:SetSquadronGci( "Novo", 900, 2100 )
|
|
||||||
-- A2ADispatcher:SetSquadronGci( "Maykop", 900, 1200 )
|
|
||||||
--
|
|
||||||
-- #### 10.5.1. Script the EWR network
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- #### 10.5.2. Script the AI\_A2A\_DISPATCHER object and configure it
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- #### 10.5.3. Script the squadrons
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Create the squadrons using the @{#AI_A2A_DISPATCHER.SetSquadron)() method.
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Define the defense overhead of the squadrons using the @{#AI_A2A_DISPATCHER.SetSquadronOverhead)() method.
|
|
||||||
-- Group the squadron units using the @{#AI_A2A_DISPATCHER.SetSquadronGrouping)() method.
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Set the takeoff method of the squadron using the @{#AI_A2A_DISPATCHER.SetSquadronTakeoff)() methods.
|
|
||||||
-- Set the landing method of the squadron using the @{#AI_A2A_DISPATCHER.SetSquadronLanding)() methods.
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Create the @{Zone} objects using:
|
|
||||||
--
|
|
||||||
-- * @{Zone#ZONE} class to create a zone using a trigger zone set in the mission editor.
|
|
||||||
-- * @{Zone#ZONE_UNIT} class to create a zone around a unit object.
|
|
||||||
-- * @{Zone#ZONE_GROUP} class to create a zone around a group object.
|
|
||||||
-- * @{Zone#ZONE_POLYGON} class to create a polygon zone using a late activated group object.
|
|
||||||
--
|
|
||||||
-- Use the @{#AI_A2A_DISPATCHER.SetSquadronCap)() method to define CAP execution for the squadron, within the CAP zone defined.
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Use the @{#AI_A2A_DISPATCHER.SetSquadronCapInterval)() method to define how many CAP groups can be airborne at the same time, and the timing intervals.
|
|
||||||
--
|
|
||||||
-- 
|
|
||||||
--
|
|
||||||
-- Use the @{#AI_A2A_DISPATCHER.SetSquadronGci)() method to define GCI execution for the squadron.
|
|
||||||
--
|
|
||||||
-- ## 11. Q & A:
|
|
||||||
--
|
|
||||||
-- ### 11.1. Which countries will be selected for each coalition?
|
|
||||||
--
|
--
|
||||||
-- Which countries are assigned to a coalition influences which units are available to the coalition.
|
-- Which countries are assigned to a coalition influences which units are available to the coalition.
|
||||||
-- For example because the mission calls for a EWR radar on the blue side the Ukraine might be chosen as a blue country
|
-- For example because the mission calls for a EWR radar on the blue side the Ukraine might be chosen as a blue country
|
||||||
@ -711,7 +617,7 @@ do -- AI_A2A_DISPATCHER
|
|||||||
-- Some countries assign different tasking to aircraft, for example Germany assigns the CAP task to F-4E Phantoms but the USA does not.
|
-- Some countries assign different tasking to aircraft, for example Germany assigns the CAP task to F-4E Phantoms but the USA does not.
|
||||||
-- Therefore if F4s are wanted as a coalition’s CAP or GCI aircraft Germany will need to be assigned to that coalition.
|
-- Therefore if F4s are wanted as a coalition’s CAP or GCI aircraft Germany will need to be assigned to that coalition.
|
||||||
--
|
--
|
||||||
-- ### 11.2. Country, type, load out, skill and skins for CAP and GCI aircraft?
|
-- ### 10.2. Country, type, load out, skill and skins for CAP and GCI aircraft?
|
||||||
--
|
--
|
||||||
-- * Note these can be from any countries within the coalition but must be an aircraft with one of the main tasks being “CAP”.
|
-- * Note these can be from any countries within the coalition but must be an aircraft with one of the main tasks being “CAP”.
|
||||||
-- * Obviously skins which are selected must be available to all players that join the mission otherwise they will see a default skin.
|
-- * Obviously skins which are selected must be available to all players that join the mission otherwise they will see a default skin.
|
||||||
|
|||||||
@ -575,6 +575,7 @@
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
|
<em>#number</em>
|
||||||
<a id="#(AI_A2A).IdleCount" >
|
<a id="#(AI_A2A).IdleCount" >
|
||||||
<strong>AI_A2A.IdleCount</strong>
|
<strong>AI_A2A.IdleCount</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -922,11 +922,14 @@ This is a good implementation, because maybe in the future, more coalitions may
|
|||||||
|
|
||||||
<h2>1. AI_A2A_DISPATCHER constructor:</h2>
|
<h2>1. AI_A2A_DISPATCHER constructor:</h2>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_1.JPG" alt="Banner Image"/></p>
|
||||||
|
|
||||||
|
|
||||||
<p>The <a href="##(AI_A2A_DISPATCHER).New">AI<em>A2A</em>DISPATCHER.New</a>() method creates a new AI_A2A_DISPATCHER instance.</p>
|
<p>The <a href="##(AI_A2A_DISPATCHER).New">AI<em>A2A</em>DISPATCHER.New</a>() method creates a new AI_A2A_DISPATCHER instance.</p>
|
||||||
|
|
||||||
<h3>1.1. Define the <strong>EWR network</strong>:</h3>
|
<h3>1.1. Define the <strong>EWR network</strong>:</h3>
|
||||||
|
|
||||||
<p>As part of the AI_A2A_DISPATCHER constructor, an EWR network must be given as the first parameter.
|
<p>As part of the AI_A2A_DISPATCHER :New() constructor, an EWR network must be given as the first parameter.
|
||||||
An EWR network, or, Early Warning Radar network, is used to early detect potential airborne targets and to understand the position of patrolling targets of the enemy.</p>
|
An EWR network, or, Early Warning Radar network, is used to early detect potential airborne targets and to understand the position of patrolling targets of the enemy.</p>
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia5.JPG" alt="Banner Image"/></p>
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia5.JPG" alt="Banner Image"/></p>
|
||||||
@ -952,6 +955,9 @@ increasing or decreasing the radar coverage of the Early Warning System.</p>
|
|||||||
|
|
||||||
<p>See the following example to setup an EWR network containing EWR stations and AWACS.</p>
|
<p>See the following example to setup an EWR network containing EWR stations and AWACS.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_2.JPG" alt="Banner Image"/>
|
||||||
|
<img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_3.JPG" alt="Banner Image"/></p>
|
||||||
|
|
||||||
<pre><code>-- Define a SET_GROUP object that builds a collection of groups that define the EWR network.
|
<pre><code>-- Define a SET_GROUP object that builds a collection of groups that define the EWR network.
|
||||||
-- Here we build the network with all the groups that have a name starting with DF CCCP AWACS and DF CCCP EWR.
|
-- Here we build the network with all the groups that have a name starting with DF CCCP AWACS and DF CCCP EWR.
|
||||||
DetectionSetGroup = SET_GROUP:New()
|
DetectionSetGroup = SET_GROUP:New()
|
||||||
@ -965,11 +971,11 @@ Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
|
|||||||
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
<p>The above example creates a SET_GROUP instance, and stores this in the variable (object) <strong>DetectionSetGroup</strong>.
|
<p>The above example creates a SET_GROUP instance, and stores this in the variable (object) <strong>DetectionSetGroup</strong>.
|
||||||
<strong>DetectionSetGroup</strong> is then being configured to filter all active groups with a group name starting with <strong>DF CCCP AWACS</strong> or <strong>DF CCCP EWR</strong> to be included in the Set.
|
<strong>DetectionSetGroup</strong> is then being configured to filter all active groups with a group name starting with <strong>DF CCCP AWACS</strong> or <strong>DF CCCP EWR</strong> to be included in the Set.
|
||||||
<strong>DetectionSetGroup</strong> is then being ordered to start the dynamic filtering. Note that any destroy or new spawn of a group with the above names will be removed or added to the Set.
|
<strong>DetectionSetGroup</strong> is then being ordered to start the dynamic filtering. Note that any destroy or new spawn of a group with the above names will be removed or added to the Set.</p>
|
||||||
Then a new Detection object is created from the class DETECTION_AREAS. A grouping radius of 30000 is choosen, which is 30km.
|
|
||||||
|
<p>Then a new Detection object is created from the class DETECTION_AREAS. A grouping radius of 30000 is choosen, which is 30km.
|
||||||
The <strong>Detection</strong> object is then passed to the <a href="##(AI_A2A_DISPATCHER).New">AI<em>A2A</em>DISPATCHER.New</a>() method to indicate the EWR network configuration and setup the A2A defense detection mechanism.</p>
|
The <strong>Detection</strong> object is then passed to the <a href="##(AI_A2A_DISPATCHER).New">AI<em>A2A</em>DISPATCHER.New</a>() method to indicate the EWR network configuration and setup the A2A defense detection mechanism.</p>
|
||||||
|
|
||||||
<p>You could build a <strong>mutual defense system</strong> like this:</p>
|
<p>You could build a <strong>mutual defense system</strong> like this:</p>
|
||||||
@ -1003,6 +1009,13 @@ You need to evaluate the value of this parameter carefully.
|
|||||||
If too small, more intercept missions may be triggered upon detected target areas.
|
If too small, more intercept missions may be triggered upon detected target areas.
|
||||||
If too large, any airborne cap may not be able to reach the detected target area in time, because it is too far.</p>
|
If too large, any airborne cap may not be able to reach the detected target area in time, because it is too far.</p>
|
||||||
|
|
||||||
|
<p>In this example an engage radius is set to 80 km.</p>
|
||||||
|
|
||||||
|
<pre><code>-- Initialize the dispatcher, setting up a radius of 80km where any airborne friendly
|
||||||
|
-- without an assignment within 80km radius from a detected target, will engage that target.
|
||||||
|
A2ADispatcher:SetEngageRadius( 80000 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<h2>4. Set the <strong>Intercept radius</strong> or <strong>Gci radius</strong>:</h2>
|
<h2>4. Set the <strong>Intercept radius</strong> or <strong>Gci radius</strong>:</h2>
|
||||||
|
|
||||||
<p>When targets are detected that are still really far off, you don't want the AI<em>A2A</em>DISPATCHER to launch intercepts just yet.
|
<p>When targets are detected that are still really far off, you don't want the AI<em>A2A</em>DISPATCHER to launch intercepts just yet.
|
||||||
@ -1011,6 +1024,12 @@ The Gci radius is by default defined as 200km. This value can be overridden usin
|
|||||||
Override the default Gci radius when the era of the warfare is early, or, when you don't want to let the AI<em>A2A</em>DISPATCHER react immediately when
|
Override the default Gci radius when the era of the warfare is early, or, when you don't want to let the AI<em>A2A</em>DISPATCHER react immediately when
|
||||||
a certain border or area is not being crossed.</p>
|
a certain border or area is not being crossed.</p>
|
||||||
|
|
||||||
|
<p>In this example, the GCI radius is setto 150 km:</p>
|
||||||
|
|
||||||
|
<pre><code>-- Initialize the dispatcher, setting up a GCI radius of 150km where no GCI will be started if the target is further than 150 km from the closest airabse.
|
||||||
|
A2ADispatcher:SetGciRadius( 80000 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<h2>5. Set the <strong>borders</strong>:</h2>
|
<h2>5. Set the <strong>borders</strong>:</h2>
|
||||||
|
|
||||||
<p>According to the tactical and strategic design of the mission broadly decide the shape and extent of red and blue territories.
|
<p>According to the tactical and strategic design of the mission broadly decide the shape and extent of red and blue territories.
|
||||||
@ -1030,6 +1049,22 @@ If a hot war is chosen then <strong>no borders</strong> actually need to be defi
|
|||||||
it makes it easier sometimes for the mission maker to envisage where the red and blue territories roughly are.
|
it makes it easier sometimes for the mission maker to envisage where the red and blue territories roughly are.
|
||||||
In a hot war the borders are effectively defined by the ground based radar coverage of a coalition.</p>
|
In a hot war the borders are effectively defined by the ground based radar coverage of a coalition.</p>
|
||||||
|
|
||||||
|
<p>In this example a border is set for the CCCP A2A dispatcher:</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_4.JPG" alt="Banner Image"/></p>
|
||||||
|
|
||||||
|
<pre><code>-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- Setup the border.
|
||||||
|
-- Initialize the dispatcher, setting up a border zone. This is a polygon,
|
||||||
|
-- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area.
|
||||||
|
-- Any enemy crossing this border will be engaged.
|
||||||
|
|
||||||
|
CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) )
|
||||||
|
A2ADispatcher:SetBorderZone( CCCPBorderZone )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<h2>6. Squadrons:</h2>
|
<h2>6. Squadrons:</h2>
|
||||||
|
|
||||||
<p>The AI_A2A_DISPATCHER works with <strong>Squadrons</strong>, that need to be defined using the different methods available.</p>
|
<p>The AI_A2A_DISPATCHER works with <strong>Squadrons</strong>, that need to be defined using the different methods available.</p>
|
||||||
@ -1059,6 +1094,18 @@ while defining which plane types are being used by the squadron and how many res
|
|||||||
|
|
||||||
<p>For performance and bug workaround reasons within DCS, squadrons have different methods to spawn new aircraft or land returning or damaged aircraft.</p>
|
<p>For performance and bug workaround reasons within DCS, squadrons have different methods to spawn new aircraft or land returning or damaged aircraft.</p>
|
||||||
|
|
||||||
|
<p>This example defines a couple of squadrons. Note the templates defined within the Mission Editor.</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_5.JPG" alt="Banner Image"/>
|
||||||
|
<img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_6.JPG" alt="Banner Image"/></p>
|
||||||
|
|
||||||
|
<pre><code> -- Setup the squadrons.
|
||||||
|
A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27" }, 20 )
|
||||||
|
A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 20 )
|
||||||
|
A2ADispatcher:SetSquadron( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 20 )
|
||||||
|
A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27" }, 20 )
|
||||||
|
A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 20 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<h3>6.1. Set squadron take-off methods</h3>
|
<h3>6.1. Set squadron take-off methods</h3>
|
||||||
|
|
||||||
@ -1096,6 +1143,23 @@ The more and the longer aircraft need to taxi at an airfield, the more risk ther
|
|||||||
<p>Currently within the DCS engine, the airfield traffic coordination is erroneous and contains a lot of bugs.
|
<p>Currently within the DCS engine, the airfield traffic coordination is erroneous and contains a lot of bugs.
|
||||||
If you experience while testing problems with aircraft take-off or landing, please use one of the above methods as a solution to workaround these issues!</p>
|
If you experience while testing problems with aircraft take-off or landing, please use one of the above methods as a solution to workaround these issues!</p>
|
||||||
|
|
||||||
|
<p>This example sets the default takeoff method to be from the runway.
|
||||||
|
And for a couple of squadrons overrides this default method.</p>
|
||||||
|
|
||||||
|
<pre><code> -- Setup the Takeoff methods
|
||||||
|
|
||||||
|
-- The default takeoff
|
||||||
|
A2ADispatcher:SetDefaultTakeOffFromRunway()
|
||||||
|
|
||||||
|
-- The individual takeoff per squadron
|
||||||
|
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air )
|
||||||
|
A2ADispatcher:SetSquadronTakeoffInAir( "Sochi" )
|
||||||
|
A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" )
|
||||||
|
A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" )
|
||||||
|
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
<h3>6.2. Set squadron landing methods</h3>
|
<h3>6.2. Set squadron landing methods</h3>
|
||||||
|
|
||||||
<p>In analogy with takeoff, the landing methods are to control how squadrons land at the airfield:</p>
|
<p>In analogy with takeoff, the landing methods are to control how squadrons land at the airfield:</p>
|
||||||
@ -1122,6 +1186,23 @@ A2A defense system, as no new CAP or GCI planes can takeoff.
|
|||||||
Note that the method <a href="##(AI_A2A_DISPATCHER).SetSquadronLandingNearAirbase">AI<em>A2A</em>DISPATCHER.SetSquadronLandingNearAirbase</a>() will only work for returning aircraft, not for damaged or out of fuel aircraft.
|
Note that the method <a href="##(AI_A2A_DISPATCHER).SetSquadronLandingNearAirbase">AI<em>A2A</em>DISPATCHER.SetSquadronLandingNearAirbase</a>() will only work for returning aircraft, not for damaged or out of fuel aircraft.
|
||||||
Damaged or out-of-fuel aircraft are returning to the nearest friendly airbase and will land, and are out of control from ground control.</p>
|
Damaged or out-of-fuel aircraft are returning to the nearest friendly airbase and will land, and are out of control from ground control.</p>
|
||||||
|
|
||||||
|
<p>This example defines the default landing method to be at the runway.
|
||||||
|
And for a couple of squadrons overrides this default method.</p>
|
||||||
|
|
||||||
|
<pre><code> -- Setup the Landing methods
|
||||||
|
|
||||||
|
-- The default landing method
|
||||||
|
A2ADispatcher:SetDefaultLandingAtRunway()
|
||||||
|
|
||||||
|
-- The individual landing per squadron
|
||||||
|
A2ADispatcher:SetSquadronLandingAtRunway( "Mineralnye" )
|
||||||
|
A2ADispatcher:SetSquadronLandingNearAirbase( "Sochi" )
|
||||||
|
A2ADispatcher:SetSquadronLandingAtEngineShutdown( "Mozdok" )
|
||||||
|
A2ADispatcher:SetSquadronLandingNearAirbase( "Maykop" )
|
||||||
|
A2ADispatcher:SetSquadronLanding( "Novo", AI_A2A_DISPATCHER.Landing.AtRunway )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
|
|
||||||
<h3>6.3. Set squadron grouping</h3>
|
<h3>6.3. Set squadron grouping</h3>
|
||||||
|
|
||||||
<p>Use the method <a href="##(AI_A2A_DISPATCHER).SetSquadronGrouping">AI<em>A2A</em>DISPATCHER.SetSquadronGrouping</a>() to set the grouping of CAP or GCI flights that will take-off when spawned.</p>
|
<p>Use the method <a href="##(AI_A2A_DISPATCHER).SetSquadronGrouping">AI<em>A2A</em>DISPATCHER.SetSquadronGrouping</a>() to set the grouping of CAP or GCI flights that will take-off when spawned.</p>
|
||||||
@ -1196,16 +1277,24 @@ multiplied by the Overhead and rounded up to the smallest integer. </p>
|
|||||||
|
|
||||||
<p>The following example illustrates how CAP zones are coded:</p>
|
<p>The following example illustrates how CAP zones are coded:</p>
|
||||||
|
|
||||||
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_8.JPG" alt="Banner Image"/> </p>
|
||||||
|
|
||||||
<pre><code> -- CAP Squadron execution.
|
<pre><code> -- CAP Squadron execution.
|
||||||
CAPZoneEast = ZONE_POLYGON:New( "CAP Zone East", GROUP:FindByName( "CAP Zone East" ) )
|
CAPZoneEast = ZONE_POLYGON:New( "CAP Zone East", GROUP:FindByName( "CAP Zone East" ) )
|
||||||
A2ADispatcher:SetSquadronCap( "Mineralnye", CAPZoneEast, 4000, 10000, 500, 600, 800, 900 )
|
A2ADispatcher:SetSquadronCap( "Mineralnye", CAPZoneEast, 4000, 10000, 500, 600, 800, 900 )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Mineralnye", 2, 30, 60, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "Mineralnye", 2, 30, 60, 1 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone West" ) )
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_7.JPG" alt="Banner Image"/> </p>
|
||||||
|
|
||||||
|
<pre><code> CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone West" ) )
|
||||||
A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
CAPZoneMiddle = ZONE:New( "CAP Zone Middle")
|
<p><img src="..\Presentations\AI_A2A_DISPATCHER\AI_A2A_DISPATCHER-ME_9.JPG" alt="Banner Image"/> </p>
|
||||||
|
|
||||||
|
<pre><code> CAPZoneMiddle = ZONE:New( "CAP Zone Middle")
|
||||||
A2ADispatcher:SetSquadronCap( "Maykop", CAPZoneMiddle, 4000, 8000, 600, 800, 800, 1200, "RADIO" )
|
A2ADispatcher:SetSquadronCap( "Maykop", CAPZoneMiddle, 4000, 8000, 600, 800, 800, 1200, "RADIO" )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
||||||
</code></pre>
|
</code></pre>
|
||||||
@ -1234,8 +1323,9 @@ Zones can be circles, can be setup in the mission editor using trigger zones, bu
|
|||||||
|
|
||||||
<p>For example, the following setup will create a CAP for squadron "Sochi":</p>
|
<p>For example, the following setup will create a CAP for squadron "Sochi":</p>
|
||||||
|
|
||||||
<p> A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
<pre><code> A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )</p>
|
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<h2>8. Setup a squadron for GCI:</h2>
|
<h2>8. Setup a squadron for GCI:</h2>
|
||||||
|
|
||||||
@ -1254,7 +1344,8 @@ too short will mean that the intruders may have alraedy passed the ideal interce
|
|||||||
|
|
||||||
<p>For example, the following setup will create a GCI for squadron "Sochi":</p>
|
<p>For example, the following setup will create a GCI for squadron "Sochi":</p>
|
||||||
|
|
||||||
<p> A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )</p>
|
<pre><code> A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
<h2>9. Other configuration options</h2>
|
<h2>9. Other configuration options</h2>
|
||||||
|
|
||||||
@ -1264,175 +1355,9 @@ too short will mean that the intruders may have alraedy passed the ideal interce
|
|||||||
Use the method <a href="##(AI_A2A_DISPATCHER).SetTacticalDisplay">AI<em>A2A</em>DISPATCHER.SetTacticalDisplay</a>() to switch on the tactical display panel. The default will not show this panel.
|
Use the method <a href="##(AI_A2A_DISPATCHER).SetTacticalDisplay">AI<em>A2A</em>DISPATCHER.SetTacticalDisplay</a>() to switch on the tactical display panel. The default will not show this panel.
|
||||||
Note that there may be some performance impact if this panel is shown.</p>
|
Note that there may be some performance impact if this panel is shown.</p>
|
||||||
|
|
||||||
<h2>10. Mission Editor Guide:</h2>
|
<h2>10. Q & A:</h2>
|
||||||
|
|
||||||
<p>The following steps need to be followed, in order to setup the different borders, templates and groups within the mission editor:</p>
|
<h3>10.1. Which countries will be selected for each coalition?</h3>
|
||||||
|
|
||||||
<h3>10.1. Define your EWR network:</h3>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia14.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>At strategic positions within the battlefield, position the correct groups of units that have radar detection capability in the battlefield.
|
|
||||||
Create the naming of these groups as such, that these can be easily recognized and included as a prefix within your lua MOOSE mission script.
|
|
||||||
These prefixes should be unique, so that accidentally no other groups would be incorporated within the EWR network.</p>
|
|
||||||
|
|
||||||
<h3>10.2. Define the border zone:</h3>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia15.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>For a cold war situation, define your border zone.
|
|
||||||
You can do this in many ways, as the <a href="Zone.html">Zone</a> capability within MOOSE outlines. However, the best practice is to create a ZONE_POLYGON class.
|
|
||||||
To do this, you need to create a zone using a helicopter group, that is late activated, and has a unique group name.
|
|
||||||
Place the helicopter where the border zone should start, and draw using the waypoints the polygon zone around the area that is considered the border.
|
|
||||||
The helicopter group name is included as the reference within your lua MOOSE mission script, so ensure that the name is unique and is easily recognizable.</p>
|
|
||||||
|
|
||||||
<h3>10.3. Define the plane templates:</h3>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia16.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>Define the templates of the planes that define the format of planes that will take part in the A2A defenses of your coalition.
|
|
||||||
These plane templates will never be activated, but are used to create a diverse airplane portfolio allocated to your squadrons.</p>
|
|
||||||
|
|
||||||
<p>IMPORTANT! <strong>Plane templates MUST be of ONE unit, and must have the Late Activated flag switched on!</strong></p>
|
|
||||||
|
|
||||||
<p>Plane templates are used to diversify the defending squadrons with:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>different airplane types</li>
|
|
||||||
<li>different airplane skins</li>
|
|
||||||
<li>different skill levels</li>
|
|
||||||
<li>different weapon payloads</li>
|
|
||||||
<li>different fuel and other characteristics</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Place these airplane templates are good visible locations within your mission, so you can easily retrieve them back.</p>
|
|
||||||
|
|
||||||
<h3>10.4. Define the CAP zones:</h3>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia17.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>Similar as with the border zone, define the CAP zones using helicopter group templates. Its waypoints define the polygon zones.
|
|
||||||
But you can also define other zone types instead, like moving zones.</p>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia18.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>Or you can define also zones using trigger zones.</p>
|
|
||||||
|
|
||||||
<h3>10.5. "Script it":</h3>
|
|
||||||
|
|
||||||
<p>Find the following mission script as an example:</p>
|
|
||||||
|
|
||||||
<pre><code> -- Define a SET_GROUP object that builds a collection of groups that define the EWR network.
|
|
||||||
-- Here we build the network with all the groups that have a name starting with DF CCCP AWACS and DF CCCP EWR.
|
|
||||||
DetectionSetGroup = SET_GROUP:New()
|
|
||||||
DetectionSetGroup:FilterPrefixes( { "DF CCCP AWACS", "DF CCCP EWR" } )
|
|
||||||
DetectionSetGroup:FilterStart()
|
|
||||||
|
|
||||||
-- Here we define detection to be done by area, with a grouping radius of 3000.
|
|
||||||
Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
|
|
||||||
|
|
||||||
-- Setup the A2A dispatcher, and initialize it.
|
|
||||||
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Initialize the dispatcher, setting up a border zone. This is a polygon,
|
|
||||||
-- which takes the waypoints of a late activated group with the name CCCP Border as the boundaries of the border area.
|
|
||||||
-- Any enemy crossing this border will be engaged.
|
|
||||||
CCCPBorderZone = ZONE_POLYGON:New( "CCCP Border", GROUP:FindByName( "CCCP Border" ) )
|
|
||||||
A2ADispatcher:SetBorderZone( CCCPBorderZone )
|
|
||||||
|
|
||||||
-- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly
|
|
||||||
-- without an assignment within 100km radius from a detected target, will engage that target.
|
|
||||||
A2ADispatcher:SetEngageRadius( 300000 )
|
|
||||||
|
|
||||||
-- Setup the squadrons.
|
|
||||||
A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27" }, 20 )
|
|
||||||
A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 20 )
|
|
||||||
A2ADispatcher:SetSquadron( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 20 )
|
|
||||||
A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27" }, 20 )
|
|
||||||
A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 20 )
|
|
||||||
|
|
||||||
-- Setup the overhead
|
|
||||||
A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
|
||||||
A2ADispatcher:SetSquadronOverhead( "Maykop", 1 )
|
|
||||||
A2ADispatcher:SetSquadronOverhead( "Mozdok", 1.5 )
|
|
||||||
A2ADispatcher:SetSquadronOverhead( "Sochi", 1 )
|
|
||||||
A2ADispatcher:SetSquadronOverhead( "Novo", 1 )
|
|
||||||
|
|
||||||
-- Setup the Grouping
|
|
||||||
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 2 )
|
|
||||||
A2ADispatcher:SetSquadronGrouping( "Sochi", 2 )
|
|
||||||
A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
|
|
||||||
|
|
||||||
-- Setup the Takeoff methods
|
|
||||||
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air )
|
|
||||||
A2ADispatcher:SetSquadronTakeoffInAir( "Sochi" )
|
|
||||||
A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" )
|
|
||||||
A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" )
|
|
||||||
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
|
|
||||||
|
|
||||||
-- Setup the Landing methods
|
|
||||||
A2ADispatcher:SetSquadronLandingAtRunway( "Mineralnye" )
|
|
||||||
A2ADispatcher:SetSquadronLandingNearAirbase( "Sochi" )
|
|
||||||
A2ADispatcher:SetSquadronLandingAtEngineShutdown( "Mozdok" )
|
|
||||||
A2ADispatcher:SetSquadronLandingNearAirbase( "Maykop" )
|
|
||||||
A2ADispatcher:SetSquadronLanding( "Novo", AI_A2A_DISPATCHER.Landing.AtRunway )
|
|
||||||
|
|
||||||
|
|
||||||
-- CAP Squadron execution.
|
|
||||||
CAPZoneEast = ZONE_POLYGON:New( "CAP Zone East", GROUP:FindByName( "CAP Zone East" ) )
|
|
||||||
A2ADispatcher:SetSquadronCap( "Mineralnye", CAPZoneEast, 4000, 10000, 500, 600, 800, 900 )
|
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Mineralnye", 2, 30, 60, 1 )
|
|
||||||
|
|
||||||
CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone West" ) )
|
|
||||||
A2ADispatcher:SetSquadronCap( "Sochi", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
|
||||||
|
|
||||||
CAPZoneMiddle = ZONE:New( "CAP Zone Middle")
|
|
||||||
A2ADispatcher:SetSquadronCap( "Maykop", CAPZoneMiddle, 4000, 8000, 600, 800, 800, 1200, "RADIO" )
|
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
|
|
||||||
|
|
||||||
-- GCI Squadron execution.
|
|
||||||
A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
|
|
||||||
A2ADispatcher:SetSquadronGci( "Novo", 900, 2100 )
|
|
||||||
A2ADispatcher:SetSquadronGci( "Maykop", 900, 1200 )
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<h4>10.5.1. Script the EWR network</h4>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia20.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<h4>10.5.2. Script the AI_A2A_DISPATCHER object and configure it</h4>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia21.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<h4>10.5.3. Script the squadrons</h4>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia22.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>Create the squadrons using the <a href="##(AI_A2A_DISPATCHER).SetSquadron">AI<em>A2A</em>DISPATCHER.SetSquadron</a> objects using:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><a href="Zone.html##(ZONE)">Zone#ZONE</a> class to create a zone using a trigger zone set in the mission editor.</li>
|
|
||||||
<li><a href="Zone.html##(ZONE_UNIT)">Zone#ZONE_UNIT</a> class to create a zone around a unit object.</li>
|
|
||||||
<li><a href="Zone.html##(ZONE_GROUP)">Zone#ZONE_GROUP</a> class to create a zone around a group object.</li>
|
|
||||||
<li><a href="Zone.html##(ZONE_POLYGON)">Zone#ZONE_POLYGON</a> class to create a polygon zone using a late activated group object.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>Use the @{#AI<em>A2A</em>DISPATCHER.SetSquadronCap)() method to define CAP execution for the squadron, within the CAP zone defined.</p>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia26.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>Use the @{#AI<em>A2A</em>DISPATCHER.SetSquadronCapInterval)() method to define how many CAP groups can be airborne at the same time, and the timing intervals.</p>
|
|
||||||
|
|
||||||
<p><img src="..\Presentations\AI_A2A_DISPATCHER\Dia27.JPG" alt="Banner Image"/></p>
|
|
||||||
|
|
||||||
<p>Use the @{#AI<em>A2A</em>DISPATCHER.SetSquadronGci)() method to define GCI execution for the squadron.</p>
|
|
||||||
|
|
||||||
<h2>11. Q & A:</h2>
|
|
||||||
|
|
||||||
<h3>11.1. Which countries will be selected for each coalition?</h3>
|
|
||||||
|
|
||||||
<p>Which countries are assigned to a coalition influences which units are available to the coalition.
|
<p>Which countries are assigned to a coalition influences which units are available to the coalition.
|
||||||
For example because the mission calls for a EWR radar on the blue side the Ukraine might be chosen as a blue country
|
For example because the mission calls for a EWR radar on the blue side the Ukraine might be chosen as a blue country
|
||||||
@ -1440,7 +1365,7 @@ so that the 55G6 EWR radar unit is available to blue. <br/>
|
|||||||
Some countries assign different tasking to aircraft, for example Germany assigns the CAP task to F-4E Phantoms but the USA does not. <br/>
|
Some countries assign different tasking to aircraft, for example Germany assigns the CAP task to F-4E Phantoms but the USA does not. <br/>
|
||||||
Therefore if F4s are wanted as a coalition’s CAP or GCI aircraft Germany will need to be assigned to that coalition. </p>
|
Therefore if F4s are wanted as a coalition’s CAP or GCI aircraft Germany will need to be assigned to that coalition. </p>
|
||||||
|
|
||||||
<h3>11.2. Country, type, load out, skill and skins for CAP and GCI aircraft?</h3>
|
<h3>10.2. Country, type, load out, skill and skins for CAP and GCI aircraft?</h3>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Note these can be from any countries within the coalition but must be an aircraft with one of the main tasks being “CAP”.</li>
|
<li>Note these can be from any countries within the coalition but must be an aircraft with one of the main tasks being “CAP”.</li>
|
||||||
|
|||||||
@ -3542,7 +3542,6 @@ The range till cargo will board.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em>#number</em>
|
|
||||||
<a id="#(CARGO_UNIT).RunCount" >
|
<a id="#(CARGO_UNIT).RunCount" >
|
||||||
<strong>CARGO_UNIT.RunCount</strong>
|
<strong>CARGO_UNIT.RunCount</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -1142,7 +1142,7 @@ true if metric.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em>#boolean</em>
|
<em></em>
|
||||||
<a id="#(SETTINGS).Metric" >
|
<a id="#(SETTINGS).Metric" >
|
||||||
<strong>SETTINGS.Metric</strong>
|
<strong>SETTINGS.Metric</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -822,12 +822,6 @@ and any spaces before and after the resulting name are removed.</p>
|
|||||||
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td>
|
<td class="name" nowrap="nowrap"><a href="##(SPAWN)._TranslateRotate">SPAWN:_TranslateRotate(SpawnIndex, SpawnRootX, SpawnRootY, SpawnX, SpawnY, SpawnAngle)</a></td>
|
||||||
<td class="summary">
|
<td class="summary">
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="name" nowrap="nowrap"><a href="##(SPAWN).uncontrolled">SPAWN.uncontrolled</a></td>
|
|
||||||
<td class="summary">
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -3159,7 +3153,7 @@ Spawn_BE_KA50 = SPAWN:New( 'BE KA-50@RAMP-Ground Defense' ):Schedule( 600, 0.5 )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p> Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.</p>
|
<p> When the first Spawn executes, all the Groups need to be made visible before start.</p>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
@ -3739,20 +3733,6 @@ True = Continue Scheduler</p>
|
|||||||
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<dl class="function">
|
|
||||||
<dt>
|
|
||||||
|
|
||||||
<em></em>
|
|
||||||
<a id="#(SPAWN).uncontrolled" >
|
|
||||||
<strong>SPAWN.uncontrolled</strong>
|
|
||||||
</a>
|
|
||||||
</dt>
|
|
||||||
<dd>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
|||||||
@ -436,7 +436,6 @@ ptional) The name of the new static.</p>
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em>#number</em>
|
|
||||||
<a id="#(SPAWNSTATIC).SpawnIndex" >
|
<a id="#(SPAWNSTATIC).SpawnIndex" >
|
||||||
<strong>SPAWNSTATIC.SpawnIndex</strong>
|
<strong>SPAWNSTATIC.SpawnIndex</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -552,7 +552,7 @@ based on the tasking capabilities defined in <a href="Task.html##(TASK)">Task#TA
|
|||||||
<dl class="function">
|
<dl class="function">
|
||||||
<dt>
|
<dt>
|
||||||
|
|
||||||
<em><a href="Core.Cargo.html##(CARGO)">Core.Cargo#CARGO</a></em>
|
<em><a href="Core.Cargo.html##(CARGO_GROUP)">Core.Cargo#CARGO_GROUP</a></em>
|
||||||
<a id="#(FSM_PROCESS).Cargo" >
|
<a id="#(FSM_PROCESS).Cargo" >
|
||||||
<strong>FSM_PROCESS.Cargo</strong>
|
<strong>FSM_PROCESS.Cargo</strong>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_1.JPG
Normal file
|
After Width: | Height: | Size: 503 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_2.JPG
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_3.JPG
Normal file
|
After Width: | Height: | Size: 398 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_4.JPG
Normal file
|
After Width: | Height: | Size: 454 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_5.JPG
Normal file
|
After Width: | Height: | Size: 418 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_6.JPG
Normal file
|
After Width: | Height: | Size: 418 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_7.JPG
Normal file
|
After Width: | Height: | Size: 412 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_8.JPG
Normal file
|
After Width: | Height: | Size: 454 KiB |
BIN
docs/Presentations/AI_A2A_DISPATCHER/AI_A2A_DISPATCHER-ME_9.JPG
Normal file
|
After Width: | Height: | Size: 437 KiB |