From 385dba63d9f542ba91a0061cc0ed92bc786abfb5 Mon Sep 17 00:00:00 2001
From: FlightControl
Find the following mission script as an example:
- -- Define a SETGROUP object that builds a collection of groups that define the EWR network.
+
GROUP:New()
+ DetectionSetGroup = SET_GROUP:New()
DetectionSetGroup:FilterPrefixes( { "DF CCCP AWACS", "DF CCCP EWR" } )
- DetectionSetGroup:FilterStart() -- 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
-- Setup the A2A dispatcher, and initialize it. - A2ADispatcher = AIA2ADISPATCHER:New( DetectionSetGroup, 30000 )
+ -- Setup the A2A dispatcher, and initialize it. + A2ADispatcher = AI_A2A_DISPATCHER:New( DetectionSetGroup, 30000 ) --- Initialize the dispatcher, setting up a border zone. This is a polygon, + -- 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 } )
+ A2ADispatcher:SetBorderZone( { CCCPBorderZone } ) --- Initialize the dispatcher, setting up a radius of 100km where any airborne friendly + -- 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 )
+ A2ADispatcher:SetEngageRadius( 300000 ) --- Setup the squadrons. - A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.MineralnyeVody, { "SQ CCCP SU-27" }, 20 ) - A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.MaykopKhanskaya, { "SQ CCCP MIG-31" }, 20 ) + -- 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 )
+ A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 20 ) --- Setup the overhead + -- 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 )
+ A2ADispatcher:SetSquadronOverhead( "Novo", 1 ) --- Setup the Grouping + -- Setup the Grouping A2ADispatcher:SetSquadronGrouping( "Mineralnye", 2 ) A2ADispatcher:SetSquadronGrouping( "Sochi", 2 ) - A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
+ A2ADispatcher:SetSquadronGrouping( "Novo", 3 ) --- Setup the Takeoff methods - A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AIA2ADISPATCHER.Takeoff.Air ) + -- Setup the Takeoff methods + A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air ) A2ADispatcher:SetSquadronTakeoffInAir( "Sochi" ) A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" ) A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" ) - A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
+ A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" ) --- Setup the Landing methods + -- Setup the Landing methods A2ADispatcher:SetSquadronLandingAtRunway( "Mineralnye" ) A2ADispatcher:SetSquadronLandingNearAirbase( "Sochi" ) A2ADispatcher:SetSquadronLandingAtEngineShutdown( "Mozdok" ) A2ADispatcher:SetSquadronLandingNearAirbase( "Maykop" ) - A2ADispatcher:SetSquadronLanding( "Novo", AIA2ADISPATCHER.Landing.AtRunway )
+ A2ADispatcher:SetSquadronLanding( "Novo", AI_A2A_DISPATCHER.Landing.AtRunway ) --- CAP Squadron execution. + -- 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 )
+ 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: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:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 )
+ A2ADispatcher:SetSquadronCapInterval( "Sochi", 2, 30, 120, 1 ) --- GCI Squadron execution. + -- GCI Squadron execution. A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 ) A2ADispatcher:SetSquadronGci( "Novo", 900, 2100 ) - A2ADispatcher:SetSquadronGci( "Maykop", 900, 1200 )
+ A2ADispatcher:SetSquadronGci( "Maykop", 900, 1200 ) +This table contains the targets detected during patrol.
-Contains the counter how many units are currently alive
+Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.
+Overwrite unit names by default with group name.
+By default, no InitLimit
+When the first Spawn executes, all the Groups need to be made visible before start.
+Flag that indicates if all the Groups of the SpawnGroup need to be visible when Spawned.
+ -- 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 )
+
+
+ -- 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 )
+
+
This table contains the targets detected during patrol.
+Contains the counter how many units are currently alive
-This table contains the targets detected during patrol.
-Contains the counter how many units are currently alive
+Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.
-EWR networks are dynamically constructed, that is, they form part of the Set#SET_GROUP object that is given as the input parameter of the AI_A2A_DISPATCHER class. -By defining in a smart way the names or name prefixes of the groups of EWR capable units, these units will be automatically added or deleted from the EWR network, +By defining in a smart way the names or name prefixes of the groups with EWR capable units, these groups will be automatically added or deleted from the EWR network, increasing or decreasing the radar coverage of the Early Warning System.
See the following example to setup an EWR network containing EWR stations and AWACS.
@@ -708,7 +708,9 @@ A hot war is one where CAP aircraft will intercept any detectedIf it’s a cold war then the borders of red and blue territory need to be defined using a zone object derived from Zone#ZONE_BASE. -If a hot war is chosen then no borders actually need to be defined using the helicopter units other than 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. Set the noborders parameter to 1
+If a hot war is chosen then no borders actually need to be defined using the helicopter units other than +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.Overwrite unit names by default with group name.
-By default, no InitLimit
-