mirror of
https://github.com/FlightControl-Master/MOOSE_MISSIONS.git
synced 2025-08-15 10:37:46 +00:00
MOOSE demonstration missions [skip ci]
This commit is contained in:
parent
1567faebff
commit
1f2365941c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
-- Name: AID-A2A-100 - Demonstration
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 30 May 2017
|
||||||
|
|
||||||
|
local HQ_Group = GROUP:FindByName( "HQ" )
|
||||||
|
local HQ_CC = COMMANDCENTER:New( HQ_Group, "HQ" )
|
||||||
|
|
||||||
|
-- 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.
|
||||||
|
local DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "DF CCCP AWACS", "DF CCCP EWR" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
local Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
||||||
|
A2ADispatcher:SetCommandCenter( HQ_CC )
|
||||||
|
|
||||||
|
-- Enable the tactical display panel.
|
||||||
|
A2ADispatcher:SetTacticalDisplay( false )
|
||||||
|
A2ADispatcher:SetTacticalMenu( "Dispatchers", "A2A" )
|
||||||
|
|
||||||
|
-- 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( 120000 )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27", "SQ CCCP SU-33", "SQ CCCP MIG-23MLD", "SQ CCCP MIG-25PD" }, 16 )
|
||||||
|
A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 20 )
|
||||||
|
A2ADispatcher:SetSquadron( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 16 )
|
||||||
|
A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27", "SQ CCCP SU-33", "SQ CCCP MIG-23MLD", "SQ CCCP MIG-25PD", "SQ CCCP SU-34", "SQ CCCP MIG-31", "SQ CCCP MIG-29S" }, 40 )
|
||||||
|
A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 16 )
|
||||||
|
|
||||||
|
-- Setup the overhead
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Maykop", 1 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Mozdok", 1 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Sochi", 2 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Novo", 1.5 )
|
||||||
|
|
||||||
|
-- Setup the Grouping
|
||||||
|
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 4 )
|
||||||
|
A2ADispatcher:SetSquadronGrouping( "Sochi", 2 )
|
||||||
|
A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
|
||||||
|
|
||||||
|
-- Setup the Takeoff methods
|
||||||
|
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Hot )
|
||||||
|
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "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", 6, 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:SetSquadronGci2( "Mozdok", 900, 1200, 100, 100, "RADIO" )
|
||||||
|
A2ADispatcher:SetSquadronGci2( "Novo", 900, 2100, 100, 100, "RADIO" )
|
||||||
|
A2ADispatcher:SetSquadronGci2( "Maykop", 900, 1200, 200, 200, "RADIO" )
|
||||||
|
|
||||||
|
-- Set the language of the squadrons to Russian.
|
||||||
|
A2ADispatcher:SetSquadronLanguage( "Mozdok", "RU" )
|
||||||
|
A2ADispatcher:SetSquadronLanguage( "Novo", "RU" )
|
||||||
|
A2ADispatcher:SetSquadronLanguage( "Maykop", "RU" )
|
||||||
|
|
||||||
|
A2ADispatcher:SetSquadronRadioFrequency( "Mozdok", 127.5 )
|
||||||
|
A2ADispatcher:SetSquadronRadioFrequency( "Novo", 127.5 )
|
||||||
|
A2ADispatcher:SetSquadronRadioFrequency( "Maykop", 127.5 )
|
||||||
|
|
||||||
|
|
||||||
|
-- Set the squadrons visible before startup.
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Mineralnye" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Sochi" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Mozdok" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Maykop" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Novo" )
|
||||||
|
|
||||||
|
|
||||||
|
--CleanUp = CLEANUP_AIRBASE:New( { AIRBASE.Caucasus.Novorossiysk } )
|
||||||
|
|
||||||
|
|
||||||
|
-- Blue attack simulation
|
||||||
|
local Frequency = 300
|
||||||
|
|
||||||
|
BlueSpawn1 = SPAWN
|
||||||
|
:New( "RT NATO 1" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
|
BlueSpawn2 = SPAWN
|
||||||
|
:New( "RT NATO 2" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
|
BlueSpawn3 = SPAWN
|
||||||
|
:New( "RT NATO 3" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
|
BlueSpawn4 = SPAWN
|
||||||
|
:New( "RT NATO 4" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
@ -29,13 +29,13 @@ A2ADispatcher:SetTacticalDisplay( true )
|
|||||||
|
|
||||||
A2ADispatcher:SetSquadron( "Kras1", AIRBASE.Caucasus.Krasnodar_Pashkovsky, { "SQ CCCP SU-27" }, 20 )
|
A2ADispatcher:SetSquadron( "Kras1", AIRBASE.Caucasus.Krasnodar_Pashkovsky, { "SQ CCCP SU-27" }, 20 )
|
||||||
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( "Kras1", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
A2ADispatcher:SetSquadronCap( "Kras1", 800, 1200, 4000, 8000, CAPZoneWest, 600, 800, 4000, 8000, "BARO" )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Kras1", 4, 30, 120, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "Kras1", 4, 30, 120, 1 )
|
||||||
|
|
||||||
A2ADispatcher:SetSquadron( "May", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP SU-27" }, 20 )
|
A2ADispatcher:SetSquadron( "May", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP SU-27" }, 20 )
|
||||||
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( "May", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
A2ADispatcher:SetSquadronCapV2( "May", 800, 1200, 400, 500, "RADIO", CAPZoneWest, 600, 800, 4000, 8000, "BARO" )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "May", 4, 30, 120, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "May", 1, 30, 120, 1 )
|
||||||
|
|
||||||
A2ADispatcher:SetDefaultTakeoffInAir()
|
A2ADispatcher:SetDefaultTakeoffInAir()
|
||||||
A2ADispatcher:SetDefaultLandingNearAirbase()
|
A2ADispatcher:SetDefaultLandingNearAirbase()
|
||||||
|
|||||||
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
@ -25,10 +25,10 @@ CAPZoneWest = ZONE_POLYGON:New( "CAP Zone West", GROUP:FindByName( "CAP Zone Wes
|
|||||||
A2ADispatcher:SetSquadronCap( "Kras1", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
A2ADispatcher:SetSquadronCap( "Kras1", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
||||||
A2ADispatcher:SetSquadronCapInterval( "Kras1", 1, 30, 120, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "Kras1", 1, 30, 120, 1 )
|
||||||
|
|
||||||
--A2ADispatcher:SetSquadron( "May", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP SU-27" }, 20 )
|
A2ADispatcher:SetSquadron( "May", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP SU-27" }, 20 )
|
||||||
--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( "May", CAPZoneWest, 4000, 8000, 600, 800, 800, 1200, "BARO" )
|
A2ADispatcher:SetSquadronCapV2( "May", 1000, 1200, 30, 30, "RADIO", CAPZoneWest, 600, 800, 4000, 8000, "BARO" )
|
||||||
--A2ADispatcher:SetSquadronCapInterval( "May", 1, 30, 120, 1 )
|
A2ADispatcher:SetSquadronCapInterval( "May", 1, 30, 120, 1 )
|
||||||
|
|
||||||
A2ADispatcher:SetDefaultTakeoffInAir()
|
A2ADispatcher:SetDefaultTakeoffInAir()
|
||||||
A2ADispatcher:SetDefaultLandingNearAirbase()
|
A2ADispatcher:SetDefaultLandingNearAirbase()
|
||||||
|
|||||||
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -38,30 +38,31 @@ A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
|||||||
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 1 )
|
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 1 )
|
||||||
|
|
||||||
-- Setup the Takeoff methods
|
-- Setup the Takeoff methods
|
||||||
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air )
|
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Hot )
|
||||||
|
|
||||||
-- Setup the Landing methods
|
-- Setup the Landing methods
|
||||||
A2ADispatcher:SetSquadronLandingAtRunway( "Mineralnye" )
|
A2ADispatcher:SetSquadronLandingAtEngineShutdown( "Mineralnye" )
|
||||||
|
|
||||||
|
|
||||||
|
-- Setup the visibility before start.
|
||||||
|
A2ADispatcher:SetSquadronVisible( "Mineralnye" )
|
||||||
|
|
||||||
-- 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", 1, 30, 60, 1 )
|
||||||
|
A2ADispatcher:SetSquadronFuelThreshold( "Mineralnye", 0.20 )
|
||||||
|
|
||||||
-- GCI Squadron execution.
|
-- GCI Squadron execution.
|
||||||
A2ADispatcher:SetSquadronGci( "Mineralnye", 900, 1200 )
|
--A2ADispatcher:SetSquadronGci( "Mineralnye", 900, 1200 )
|
||||||
|
|
||||||
CleanUp = CLEANUP_AIRBASE:New( { AIRBASE.Caucasus.Novorossiysk } )
|
|
||||||
|
|
||||||
|
|
||||||
-- Blue attack simulation
|
-- Blue attack simulation
|
||||||
local Frequency = 60
|
local Frequency = 60
|
||||||
|
|
||||||
BlueSpawn1 = SPAWN
|
--BlueSpawn1 = SPAWN
|
||||||
:New( "RT NATO 1" )
|
-- :New( "RT NATO 1" )
|
||||||
:InitLimit( 2, 10 )
|
-- :InitLimit( 2, 10 )
|
||||||
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
-- :InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
:InitRandomizeRoute( 0, 0, 30000 )
|
-- :InitRandomizeRoute( 0, 0, 30000 )
|
||||||
--:InitDelayOn()
|
-- --:InitDelayOn()
|
||||||
:SpawnScheduled( Frequency, 0.4 )
|
-- :SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|||||||
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -26,30 +26,30 @@ 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.
|
-- without an assignment within 100km radius from a detected target, will engage that target.
|
||||||
A2ADispatcher:SetEngageRadius( 80000 )
|
A2ADispatcher:SetEngageRadius( 120000 )
|
||||||
|
|
||||||
-- Setup the squadrons.
|
-- Setup the squadrons.
|
||||||
A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27" }, 20 )
|
A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27", "SQ CCCP SU-33", "SQ CCCP MIG-23MLD", "SQ CCCP MIG-25PD" }, 16 )
|
||||||
A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 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( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 16 )
|
||||||
A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27" }, 20 )
|
A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27", "SQ CCCP SU-33", "SQ CCCP MIG-23MLD", "SQ CCCP MIG-25PD", "SQ CCCP SU-34", "SQ CCCP MIG-31", "SQ CCCP MIG-29S" }, 40 )
|
||||||
A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 20 )
|
A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 16 )
|
||||||
|
|
||||||
-- Setup the overhead
|
-- Setup the overhead
|
||||||
A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
||||||
A2ADispatcher:SetSquadronOverhead( "Maykop", 1 )
|
A2ADispatcher:SetSquadronOverhead( "Maykop", 1 )
|
||||||
A2ADispatcher:SetSquadronOverhead( "Mozdok", 1 )
|
A2ADispatcher:SetSquadronOverhead( "Mozdok", 1 )
|
||||||
A2ADispatcher:SetSquadronOverhead( "Sochi", 1 )
|
A2ADispatcher:SetSquadronOverhead( "Sochi", 2 )
|
||||||
A2ADispatcher:SetSquadronOverhead( "Novo", 1.5 )
|
A2ADispatcher:SetSquadronOverhead( "Novo", 1.5 )
|
||||||
|
|
||||||
-- Setup the Grouping
|
-- Setup the Grouping
|
||||||
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 1 )
|
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 4 )
|
||||||
A2ADispatcher:SetSquadronGrouping( "Sochi", 2 )
|
A2ADispatcher:SetSquadronGrouping( "Sochi", 2 )
|
||||||
A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
|
A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
|
||||||
|
|
||||||
-- Setup the Takeoff methods
|
-- Setup the Takeoff methods
|
||||||
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Air )
|
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Hot )
|
||||||
A2ADispatcher:SetSquadronTakeoffInAir( "Sochi" )
|
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Sochi" )
|
||||||
A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" )
|
A2ADispatcher:SetSquadronTakeoffFromRunway( "Mozdok" )
|
||||||
A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" )
|
A2ADispatcher:SetSquadronTakeoffFromParkingCold( "Maykop" )
|
||||||
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
|
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "Novo" )
|
||||||
@ -65,7 +65,7 @@ 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" ) )
|
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", 6, 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" )
|
||||||
@ -80,7 +80,15 @@ A2ADispatcher:SetSquadronGci( "Mozdok", 900, 1200 )
|
|||||||
A2ADispatcher:SetSquadronGci( "Novo", 900, 2100 )
|
A2ADispatcher:SetSquadronGci( "Novo", 900, 2100 )
|
||||||
A2ADispatcher:SetSquadronGci( "Maykop", 900, 1200 )
|
A2ADispatcher:SetSquadronGci( "Maykop", 900, 1200 )
|
||||||
|
|
||||||
CleanUp = CLEANUP_AIRBASE:New( { AIRBASE.Caucasus.Novorossiysk } )
|
-- Set the squadrons visible before startup.
|
||||||
|
A2ADispatcher:SetSquadronVisible( "Mineralnye" )
|
||||||
|
A2ADispatcher:SetSquadronVisible( "Sochi" )
|
||||||
|
A2ADispatcher:SetSquadronVisible( "Mozdok" )
|
||||||
|
A2ADispatcher:SetSquadronVisible( "Maykop" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Novo" )
|
||||||
|
|
||||||
|
|
||||||
|
--CleanUp = CLEANUP_AIRBASE:New( { AIRBASE.Caucasus.Novorossiysk } )
|
||||||
|
|
||||||
|
|
||||||
-- Blue attack simulation
|
-- Blue attack simulation
|
||||||
|
|||||||
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
@ -0,0 +1,131 @@
|
|||||||
|
---
|
||||||
|
-- Name: AID-A2A-100 - Demonstration
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 30 May 2017
|
||||||
|
|
||||||
|
|
||||||
|
local CommandCenter = COMMANDCENTER:New( GROUP:FindByName( "HQ" ), "HQ" )
|
||||||
|
|
||||||
|
-- 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()
|
||||||
|
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 30000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2ADispatcher = AI_A2A_DISPATCHER:New( Detection )
|
||||||
|
A2ADispatcher:SetCommandCenter(CommandCenter)
|
||||||
|
|
||||||
|
-- Enable the tactical display panel.
|
||||||
|
A2ADispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
-- 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( 120000 )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
A2ADispatcher:SetSquadron( "Mineralnye", AIRBASE.Caucasus.Mineralnye_Vody, { "SQ CCCP SU-27", "SQ CCCP SU-33", "SQ CCCP MIG-23MLD", "SQ CCCP MIG-25PD" }, 16 )
|
||||||
|
A2ADispatcher:SetSquadron( "Maykop", AIRBASE.Caucasus.Maykop_Khanskaya, { "SQ CCCP MIG-31" }, 20 )
|
||||||
|
A2ADispatcher:SetSquadron( "Mozdok", AIRBASE.Caucasus.Mozdok, { "SQ CCCP MIG-31" }, 16 )
|
||||||
|
A2ADispatcher:SetSquadron( "Sochi", AIRBASE.Caucasus.Sochi_Adler, { "SQ CCCP SU-27", "SQ CCCP SU-33", "SQ CCCP MIG-23MLD", "SQ CCCP MIG-25PD", "SQ CCCP SU-34", "SQ CCCP MIG-31", "SQ CCCP MIG-29S" }, 40 )
|
||||||
|
A2ADispatcher:SetSquadron( "Novo", AIRBASE.Caucasus.Novorossiysk, { "SQ CCCP SU-27" }, 16 )
|
||||||
|
|
||||||
|
-- Setup the overhead
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Mineralnye", 1.2 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Maykop", 1 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Mozdok", 1 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Sochi", 2 )
|
||||||
|
A2ADispatcher:SetSquadronOverhead( "Novo", 1.5 )
|
||||||
|
|
||||||
|
-- Setup the Grouping
|
||||||
|
A2ADispatcher:SetSquadronGrouping( "Mineralnye", 4 )
|
||||||
|
A2ADispatcher:SetSquadronGrouping( "Sochi", 2 )
|
||||||
|
A2ADispatcher:SetSquadronGrouping( "Novo", 3 )
|
||||||
|
|
||||||
|
-- Setup the Takeoff methods
|
||||||
|
A2ADispatcher:SetSquadronTakeoff( "Mineralnye", AI_A2A_DISPATCHER.Takeoff.Hot )
|
||||||
|
A2ADispatcher:SetSquadronTakeoffFromParkingHot( "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", 6, 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 )
|
||||||
|
|
||||||
|
-- Set the squadrons visible before startup.
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Mineralnye" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Sochi" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Mozdok" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Maykop" )
|
||||||
|
--A2ADispatcher:SetSquadronVisible( "Novo" )
|
||||||
|
|
||||||
|
|
||||||
|
--CleanUp = CLEANUP_AIRBASE:New( { AIRBASE.Caucasus.Novorossiysk } )
|
||||||
|
|
||||||
|
|
||||||
|
-- Blue attack simulation
|
||||||
|
local Frequency = 300
|
||||||
|
|
||||||
|
BlueSpawn1 = SPAWN
|
||||||
|
:New( "RT NATO 1" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
|
BlueSpawn2 = SPAWN
|
||||||
|
:New( "RT NATO 2" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
|
BlueSpawn3 = SPAWN
|
||||||
|
:New( "RT NATO 3" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
|
BlueSpawn4 = SPAWN
|
||||||
|
:New( "RT NATO 4" )
|
||||||
|
:InitLimit( 2, 10 )
|
||||||
|
:InitRandomizeTemplate( { "SQ NATO A-10C", "SQ NATO F-15C", "SQ NATO F-16A", "SQ NATO F/A-18", "SQ NATO F-16C" } )
|
||||||
|
:InitRandomizeRoute( 0, 0, 30000 )
|
||||||
|
--:InitDelayOn()
|
||||||
|
:SpawnScheduled( Frequency, 0.4 )
|
||||||
|
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
Binary file not shown.
@ -1,10 +1,6 @@
|
|||||||
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
cd $dir
|
cd $dir
|
||||||
$file = Split-Path $dir -leaf
|
$file = Split-Path $dir -leaf
|
||||||
|
|
||||||
$dir
|
|
||||||
$file
|
|
||||||
|
|
||||||
cd "_unpacked"
|
cd "_unpacked"
|
||||||
. 7z a -r -y -tzip "..\$file.miz" *
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,56 @@
|
|||||||
|
--- Detect and attack a set of enemy units.
|
||||||
|
-- Name: AID-A2G-001 - Detection and Attack Helicopters
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 02 Nov 2018
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
local DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
local Detection = DETECTION_AREAS:New( DetectionSetGroup, 5000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- The Command Center (HQ) is the defense point and will also handle the communication to the coalition.
|
||||||
|
local HQ_Group = GROUP:FindByName( "HQ" )
|
||||||
|
local HQ_CC = COMMANDCENTER:New( HQ_Group, "HQ" )
|
||||||
|
|
||||||
|
-- The HQ is the defense point, so this point will be defended.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", HQ_Group:GetCoordinate() )
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh() -- High defense reactivity. So far proximity of a threat will trigger a defense action.
|
||||||
|
A2GDispatcher:SetDefenseRadius( 200000 ) -- Defense radius wide enough to also trigger defenses far away.
|
||||||
|
|
||||||
|
-- Communication to the players within the coalition. The HQ services the communication of the defense actions.
|
||||||
|
A2GDispatcher:SetCommandCenter( HQ_CC )
|
||||||
|
|
||||||
|
-- Show a tactical display.
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCas2( "Maykop CAS", 200, 250, 300, 500, "RADIO" )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP MIL-8MTV" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronBai2( "Maykop BAI", 200, 250, 300, 500, "RADIO" )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Krasnodar", AIRBASE.Caucasus.Krasnodar_Pashkovsky, { "CCCP SU-25TM" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSead2( "Krasnodar", 600, 800, 2000, 2000, "RADIO" )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Krasnodar" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Krasnodar", 0.2 )
|
||||||
|
|
||||||
|
|
||||||
|
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
|
||||||
|
-- This to prevent helicopters to clutter.
|
||||||
|
-- Each helicopter group is taking off the FARP in hot start.
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Krasnodar", 10 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
--- Detect and attack a set of enemy units using helicopters.
|
||||||
|
-- Name: AID-A2G-001 - Detection and Attack Helicopters
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 02 Nov 2018
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
local DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
local Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- The Command Center (HQ) is the defense point and will also handle the communication to the coalition.
|
||||||
|
local HQ_Group = GROUP:FindByName( "HQ" )
|
||||||
|
local HQ_CC = COMMANDCENTER:New( HQ_Group, "HQ" )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", HQ_Group:GetCoordinate() )
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh() -- High defense reactivity. So far proximity of a threat will trigger a defense action.
|
||||||
|
A2GDispatcher:SetDefenseRadius( 200000 ) -- Defense radius wide enough to also trigger defenses far away.
|
||||||
|
|
||||||
|
-- Communication to the players within the coalition. The HQ services the communication of the defense actions.
|
||||||
|
A2GDispatcher:SetCommandCenter( HQ_CC )
|
||||||
|
|
||||||
|
-- Show a tactical display.
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
|
||||||
|
-- Setup the patrols.
|
||||||
|
|
||||||
|
-- The patrol zone.
|
||||||
|
local PatrolZone = ZONE:New( "PatrolZone" )
|
||||||
|
|
||||||
|
|
||||||
|
-- SEADing from Krasnodar.
|
||||||
|
A2GDispatcher:SetSquadron( "Krasnodar", AIRBASE.Caucasus.Krasnodar_Pashkovsky, { "CCCP SU-25TM" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSeadPatrol2( "Krasnodar", PatrolZone, 500, 550, 2000, 2000, "BARO", 750, 800, 30, 30, "RADIO" ) -- New API
|
||||||
|
A2GDispatcher:SetSquadronSeadPatrolInterval( "Krasnodar", 2, 30, 60, 1 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Krasnodar" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Krasnodar", 0.2 )
|
||||||
|
|
||||||
|
|
||||||
|
-- Close Air Support from the CAS farp.
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCasPatrol2( "Maykop CAS", PatrolZone, 50, 80, 600, 700, "BARO", 200, 230, 30, 30, "RADIO" ) -- New API
|
||||||
|
A2GDispatcher:SetSquadronCasPatrolInterval( "Maykop CAS", 2, 30, 60, 1 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
|
|
||||||
|
-- Battlefield Air Interdiction from the BAI farp.
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP MIL-8MTV" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronBaiPatrol2( "Maykop BAI", PatrolZone, 50, 80, 600, 700, "BARO", 200, 230, 800, 900, "RADIO" ) -- New API
|
||||||
|
A2GDispatcher:SetSquadronBaiPatrolInterval( "Maykop BAI", 5, 30, 60, 1 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.75 )
|
||||||
|
|
||||||
|
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
|
||||||
|
-- This to prevent helicopters to clutter.
|
||||||
|
-- Each helicopter group is taking off the FARP in hot start.
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Krasnodar", 10 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
--- Detect and attack a set of enemy units using helicopters.
|
||||||
|
-- Name: AID-A2G-001 - Detection and Attack Helicopters
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 02 Nov 2018
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 5000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh()
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseRadius( 200000 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
|
||||||
|
|
||||||
|
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
|
||||||
|
-- This to prevent helicopters to clutter.
|
||||||
|
-- Each helicopter group is taking off the FARP in hot start.
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
--- Detect and attack a set of enemy units using helicopters.
|
||||||
|
-- Name: AID-A2G-001 - Detection and Attack Helicopters
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 02 Nov 2018
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh()
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseRadius( 100000 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
local PatrolZone = ZONE:New( "PatrolZone" )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop SEAD", "SEAD", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 300, 500, 50, 80, 250, 300 )
|
||||||
|
A2GDispatcher:SetSquadronPatrolInterval( "Maykop SEAD", 2, 30, 60, 1, "SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCasPatrol( "Maykop CAS", PatrolZone, 600, 700, 50, 80, 250, 300 )
|
||||||
|
A2GDispatcher:SetSquadronPatrolInterval( "Maykop CAS", 2, 30, 60, 1, "CAS" )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronBaiPatrol( "Maykop BAI", PatrolZone, 800, 900, 50, 80, 250, 300 )
|
||||||
|
A2GDispatcher:SetSquadronPatrolInterval( "Maykop BAI", 2, 30, 60, 1, "BAI" )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
|
||||||
|
|
||||||
|
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
|
||||||
|
-- This to prevent helicopters to clutter.
|
||||||
|
-- Each helicopter group is taking off the FARP in hot start.
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
--- Detect and attack a set of enemy units using helicopters.
|
||||||
|
-- Name: AID-A2G-001 - Detection and Attack Helicopters
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 02 Nov 2018
|
||||||
|
|
||||||
|
|
||||||
|
CC = COMMANDCENTER:New( GROUP:FindByName( "HQ" ), "HQ" )
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
A2GDispatcher:SetCommandCenter( CC )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh()
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseRadius( 200000 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
|
||||||
|
|
||||||
|
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
|
||||||
|
-- This to prevent helicopters to clutter.
|
||||||
|
-- Each helicopter group is taking off the FARP in hot start.
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
--- Detect and attack a set of enemy units using helicopters.
|
||||||
|
-- Name: AID-A2G-001 - Detection and Attack Helicopters
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 02 Nov 2018
|
||||||
|
|
||||||
|
|
||||||
|
CC = COMMANDCENTER:New( GROUP:FindByName( "HQ" ), "HQ" )
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
DetectionSetGroup = SET_GROUP:New()
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } )
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
A2GDispatcher:SetCommandCenter( CC )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh()
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseRadius( 200000 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.2 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", "CAS", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCas( "Maykop CAS", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop BAI", "BAI", { "CCCP KA-50" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronBai( "Maykop BAI", 120, 250 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffFromParkingHot( "Maykop BAI" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop BAI", 0.25 )
|
||||||
|
|
||||||
|
-- We set for each squadron a takeoff interval, as each helicopter will launch from a FARP.
|
||||||
|
-- This to prevent helicopters to clutter.
|
||||||
|
-- Each helicopter group is taking off the FARP in hot start.
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop SEAD", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop CAS", 60 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInterval( "Maykop BAI", 60 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,50 @@
|
|||||||
|
--- Test the defense radius.
|
||||||
|
-- Defenses should pickup targets within the defense radius, but not outside of it!
|
||||||
|
-- Defenses should engage targets closer to the HQ with higher probability than targets at longer distance from the HQ.
|
||||||
|
-- The tests are with SEAD only.
|
||||||
|
-- Name: AID-A2G-003 - DefenseRadius
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 11 Nov 2018
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
|
||||||
|
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
|
||||||
|
|
||||||
|
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
|
||||||
|
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
-- This command defines the reconnaissance network.
|
||||||
|
-- It will group any detected ground enemy targets within a radius of 1km.
|
||||||
|
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh()
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseRadius( 100000 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
local PatrolZone = ZONE:New( "PatrolZone" )
|
||||||
|
|
||||||
|
-- Setup the SEAD squadrons.
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
|
||||||
|
A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 1, 30, 60, 1 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
|
||||||
|
|
||||||
|
-- Setup the CAS squadrons.
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop CAS", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T CAS" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronCasPatrol( "Maykop CAS", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
|
||||||
|
A2GDispatcher:SetSquadronCasPatrolInterval( "Maykop CAS", 1, 30, 60, 1 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop CAS" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop CAS", 0.25 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
Remove-Item .\_unpacked -Force -Recurse
|
||||||
|
md "_unpacked"
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z x -r -y "..\$file.miz" *
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
--- Test the default engage limit.
|
||||||
|
-- Defenses should engage enemy units, but not more defenses than the defense limit!
|
||||||
|
-- Name: AID-A2G-110 - Default DefenseLimit
|
||||||
|
-- Author: FlightControl
|
||||||
|
-- Date Created: 15 Nov 2018
|
||||||
|
|
||||||
|
-- Define a SET_GROUP object that builds a collection of groups that define the recce network.
|
||||||
|
-- Here we build the network with all the groups that have a name starting with CCCP Recce.
|
||||||
|
DetectionSetGroup = SET_GROUP:New() -- Defene a set of group objects, caled DetectionSetGroup.
|
||||||
|
|
||||||
|
DetectionSetGroup:FilterPrefixes( { "CCCP Recce" } ) -- The DetectionSetGroup will search for groups that start with the name "CCCP Recce".
|
||||||
|
|
||||||
|
-- This command will start the dynamic filtering, so when groups spawn in or are destroyed,
|
||||||
|
-- which have a group name starting with "CCCP Recce", then these will be automatically added or removed from the set.
|
||||||
|
DetectionSetGroup:FilterStart()
|
||||||
|
|
||||||
|
-- This command defines the reconnaissance network.
|
||||||
|
-- It will group any detected ground enemy targets within a radius of 1km.
|
||||||
|
-- It uses the DetectionSetGroup, which defines the set of reconnaissance groups to detect for enemy ground targets.
|
||||||
|
Detection = DETECTION_AREAS:New( DetectionSetGroup, 1000 )
|
||||||
|
|
||||||
|
-- Setup the A2A dispatcher, and initialize it.
|
||||||
|
A2GDispatcher = AI_A2G_DISPATCHER:New( Detection )
|
||||||
|
|
||||||
|
-- Add defense coordinates.
|
||||||
|
A2GDispatcher:AddDefenseCoordinate( "HQ", GROUP:FindByName( "HQ" ):GetCoordinate() )
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseReactivityHigh()
|
||||||
|
|
||||||
|
A2GDispatcher:SetDefenseRadius( 100000 )
|
||||||
|
|
||||||
|
-- This is the test, not more than 4 defenses in total should engage!
|
||||||
|
A2GDispatcher:SetDefaultEngageLimit( 6 )
|
||||||
|
|
||||||
|
A2GDispatcher:SetTacticalDisplay( true )
|
||||||
|
|
||||||
|
local PatrolZone = ZONE:New( "PatrolZone" )
|
||||||
|
|
||||||
|
-- Setup the squadrons.
|
||||||
|
A2GDispatcher:SetSquadron( "Maykop SEAD", AIRBASE.Caucasus.Maykop_Khanskaya, { "CCCP SU-25T SEAD" }, 10 )
|
||||||
|
A2GDispatcher:SetSquadronSead( "Maykop SEAD", 250, 350 )
|
||||||
|
--A2GDispatcher:SetSquadronSeadPatrol( "Maykop SEAD", PatrolZone, 1000, 2500, 400, 600, 1100, 1500 )
|
||||||
|
--A2GDispatcher:SetSquadronSeadPatrolInterval( "Maykop SEAD", 4, 30, 60, 1 )
|
||||||
|
A2GDispatcher:SetSquadronTakeoffInAir( "Maykop SEAD" )
|
||||||
|
A2GDispatcher:SetSquadronOverhead( "Maykop SEAD", 0.25 )
|
||||||
Binary file not shown.
@ -0,0 +1,6 @@
|
|||||||
|
$dir = split-path -parent $MyInvocation.MyCommand.Definition
|
||||||
|
cd $dir
|
||||||
|
$file = Split-Path $dir -leaf
|
||||||
|
cd "_unpacked"
|
||||||
|
. 7z a -r -y -tzip "..\$file.miz" *
|
||||||
|
cd ..
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user