------------------------------------------------- -- Jo MOOSE Script - Red Flag v1.3 ------------------------------------------------- --************************ --* BEGIN BLUE COALITION * --************************ ------------------------------------------------- -- BLUE AWACS and TANKERS Spawn and Auto Respawn -- texaco_respawn = SPAWN:New( "[54th] TEXACO KC-135" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) arco_respawn = SPAWN:New( "[54th] ARCO KC-135" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) shell_respawn = SPAWN:New( "[54th] SHELL IL-78M" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) agip_respawn = SPAWN:New( "[54th] AGIP IL-78M" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) sentry_respawn = SPAWN:New( "BLUE_EWR [962nd] AWACS" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) -- END BLUE AWACS and TANKERS Spawn and Auto Respawn -- ------------------------------------------------- ------------------------------------------------- -- BLUE EWR and SAM/AAA Spawn and Auto Respawn -- EWR_Nellis_respawn = SPAWN:New( "BLUE_EWR Nellis SAM Hawk" ):InitLimit(1, 0):SpawnScheduled(600,0) EWR_Creech_respawn = SPAWN:New( "BLUE_EWR Creech SAM Hawk" ):InitLimit(1, 0):SpawnScheduled(600,0) SAM_Nellis_respawn = SPAWN:New( "Nellis SAM Hawk" ):InitLimit(4, 0):SpawnScheduled(600,0) SAM_Creech_respawn = SPAWN:New( "Creech SAM Hawk" ):InitLimit(4, 0):SpawnScheduled(600,0) -- END BLUE EWR and SAM/AAA Spawn and Auto Respawn -- ------------------------------------------------- ------------------------------------------------- -- Blue Coalition Red AI Spawn Functions -- -- Function for spawning RED CAP F5x2 BLU_SpawnRedCAPF5x2 = SPAWN:New("RedCAPF5x2") :InitRandomizePosition(true, 20000, 0) :InitRandomizeRoute(0, 0, 25000) :InitLimit(4, 0) :InitCleanUp(60) local function BLU_RedCAPF5x2SpawnZoneTF() BLU_RedCAPF5x2 = BLU_SpawnRedCAPF5x2:Spawn() if BLU_RedCAPF5x2 == nil then MESSAGE:New( "Zone TF : Max F5 units alive reached", 25):ToBlue() else MESSAGE:New( "Zone TF : Red CAP F5 x 2 spawned", 25):ToBlue() end end -- Function for spawning groups in sector 61B BLU_SpawnRedSMIBAPCRP = SPAWN:New("SMIB APC Recce Platoon") :InitLimit(3, 0) BLU_SpawnRedSMIBAPCRIFC = SPAWN:New("SMIB APC Rifle Company") :InitLimit(11, 0) BLU_SpawnRedSMIBAPCHQ = SPAWN:New("SMIB APC HQ") :InitLimit(4, 0) BLU_SpawnRedSMIBAPCSUPP = SPAWN:New("SMIB APC Supply Platoon") :InitLimit(14, 0) local function BLU_RedSector61BSpawn() BLU_RedSMIBAPCRP = BLU_SpawnRedSMIBAPCRP:Spawn() if BLU_RedSMIBAPCRP == nil then MESSAGE:New( "Sector 61B Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 61B Group 001 - Group spawned", 25):ToBlue() end BLU_RedSMIBAPCRIFC = BLU_SpawnRedSMIBAPCRIFC:Spawn() if BLU_RedSMIBAPCRIFC == nil then MESSAGE:New( "Sector 61B Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 61B Group 002 - Group spawned", 25):ToBlue() end BLU_RedSMIBAPCHQ = BLU_SpawnRedSMIBAPCHQ:Spawn() if BLU_RedSMIBAPCHQ == nil then MESSAGE:New( "Sector 61B Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 61B Group 003 - Group spawned", 25):ToBlue() end BLU_RedSMIBAPCSUPP = BLU_SpawnRedSMIBAPCSUPP:Spawn() if BLU_RedSMIBAPCSUPP == nil then MESSAGE:New( "Sector 61B Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 61B Group 004 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 62A BLU_SpawnRedSOVFORT = SPAWN:New("Soviet Fortifications") :InitLimit(9, 0) BLU_SpawnRedSTB80TC = SPAWN:New("STB80 Tank Company") :InitLimit(10, 0) BLU_SpawnRedSTB80TC001 = SPAWN:New("STB80 Tank Company #001") :InitLimit(10, 0) BLU_SpawnRedSTB80TC002 = SPAWN:New("STB80 Tank Company #002") :InitLimit(10, 0) BLU_SpawnRedSMRL300B = SPAWN:New("SMRL300 MLRS Battery") :InitLimit(4, 0) BLU_SpawnRedSMRL300B001 = SPAWN:New("SMRL300 MLRS Battery #001") :InitLimit(4, 0) BLU_SpawnRedSMRL300BHQ = SPAWN:New("SMRL300 Battery HQ-Control") :InitLimit(7, 0) BLU_SpawnRedSMRL300BHQ001 = SPAWN:New("SMRL300 Battery HQ-Control #001") :InitLimit(7, 0) BLU_SpawnRedSADB = SPAWN:New("Soviet Air Defense Battery") :InitLimit(14, 0) BLU_SpawnRedSTB80HQ = SPAWN:New("STB80 HQ") :InitLimit(3, 0) BLU_SpawnRedSTB80SUPP = SPAWN:New("STB80 Supply Platoon") :InitLimit(16, 0) local function BLU_RedSector62ASpawn() BLU_RedSOVFORT = BLU_SpawnRedSOVFORT:Spawn() if BLU_RedSOVFORT == nil then MESSAGE:New( "Sector 62A Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 001 - Group spawned", 25):ToBlue() end BLU_RedSTB80TC = BLU_SpawnRedSTB80TC:Spawn() if BLU_RedSTB80TC == nil then MESSAGE:New( "Sector 62A Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 002 - Group spawned", 25):ToBlue() end BLU_RedSTB80TC001 = BLU_SpawnRedSTB80TC001:Spawn() if BLU_RedSTB80TC001 == nil then MESSAGE:New( "Sector 62A Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 003 - Group spawned", 25):ToBlue() end BLU_RedSTB80TC002 = BLU_SpawnRedSTB80TC002:Spawn() if BLU_RedSTB80TC002 == nil then MESSAGE:New( "Sector 62A Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 004 - Group spawned", 25):ToBlue() end BLU_RedSMRL300B = BLU_SpawnRedSMRL300B:Spawn() if BLU_RedSMRL300B == nil then MESSAGE:New( "Sector 62A Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 005 - Group spawned", 25):ToBlue() end BLU_RedSMRL300B001 = BLU_SpawnRedSMRL300B001:Spawn() if BLU_RedSMRL300B001 == nil then MESSAGE:New( "Sector 62A Group 006 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 006 - Group spawned", 25):ToBlue() end BLU_RedSMRL300BHQ = BLU_SpawnRedSMRL300BHQ:Spawn() if BLU_RedSMRL300BHQ == nil then MESSAGE:New( "Sector 62A Group 007 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 007 - Group spawned", 25):ToBlue() end BLU_RedSMRL300BHQ001 = BLU_SpawnRedSMRL300BHQ001:Spawn() if BLU_RedSMRL300BHQ001 == nil then MESSAGE:New( "Sector 62A Group 008 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 008 - Group spawned", 25):ToBlue() end BLU_RedSADB = BLU_SpawnRedSADB:Spawn() if BLU_RedSADB == nil then MESSAGE:New( "Sector 62A Group 009 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 009 - Group spawned", 25):ToBlue() end BLU_RedSTB80HQ = BLU_SpawnRedSTB80HQ:Spawn() if BLU_RedSTB80HQ == nil then MESSAGE:New( "Sector 62A Group 010 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 010 - Group spawned", 25):ToBlue() end BLU_RedSTB80SUPP = BLU_SpawnRedSTB80SUPP:Spawn() if BLU_RedSTB80SUPP == nil then MESSAGE:New( "Sector 62A Group 011 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 62A Group 011 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 63B BLU_SpawnRedSRPW001 = SPAWN:New("SRP Wheeled #001") :InitLimit(4, 0) BLU_SpawnRedSRPTK001 = SPAWN:New("SRP Tracked #001") :InitLimit(3, 0) BLU_SpawnRedSRPTK002 = SPAWN:New("SRP Tracked #002") :InitLimit(3, 0) BLU_SpawnRedSRPSIGP001 = SPAWN:New("SRP Signal Platoon #001") :InitLimit(4, 0) BLU_SpawnRedSRPI001 = SPAWN:New("SRP Infantry #001") :InitLimit(12, 0) BLU_SpawnRedSRPHQ001 = SPAWN:New("SRP HQ #001") :InitLimit(1, 0) local function BLU_RedSector63BSpawn() BLU_RedSRPW001 = BLU_SpawnRedSRPW001:Spawn() if BLU_RedSRPW001 == nil then MESSAGE:New( "Sector 63B Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 63B Group 001 - Group spawned", 25):ToBlue() end BLU_RedSRPTK001 = BLU_SpawnRedSRPTK001:Spawn() if BLU_RedSRPTK001 == nil then MESSAGE:New( "Sector 63B Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 63B Group 002 - Group spawned", 25):ToBlue() end BLU_RedSRPTK002 = BLU_SpawnRedSRPTK002:Spawn() if BLU_RedSRPTK002 == nil then MESSAGE:New( "Sector 63B Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 63B Group 003 - Group spawned", 25):ToBlue() end BLU_RedSRPSIGP001 = BLU_SpawnRedSRPSIGP001:Spawn() if BLU_RedSRPSIGP001 == nil then MESSAGE:New( "Sector 63B Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 63B Group 004 - Group spawned", 25):ToBlue() end BLU_RedSRPI001 = BLU_SpawnRedSRPI001:Spawn() if BLU_RedSRPI001 == nil then MESSAGE:New( "Sector 63B Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 63B Group 005 - Group spawned", 25):ToBlue() end BLU_RedSRPHQ001 = BLU_SpawnRedSRPHQ001:Spawn() if BLU_RedSRPHQ001 == nil then MESSAGE:New( "Sector 63B Group 006 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 63B Group 006 - Group spawned", 25):ToBlue() end end -- Function for spawning convoy from sectors 62A to 63B BLU_SpawnRedSMIBAPCRP001 = SPAWN:New("SMIB APC Recce Platoon #001") :InitLimit(3, 0) BLU_SpawnRedSMIBIFVRC001 = SPAWN:New("SMIB IFV Rifle Company #001") :InitLimit(11, 0) BLU_SpawnRedSMIBAPCSUPP001 = SPAWN:New("SMIB APC Supply Platoon #001") :InitLimit(14, 0) BLU_SpawnRedSMIBIFVHQ001 = SPAWN:New("SMIB IFV HQ #001") :InitLimit(4, 0) local function BLU_RedConvoy62ASpawn() BLU_RedSMIBAPCRP001 = BLU_SpawnRedSMIBAPCRP001:Spawn() if BLU_RedSMIBAPCRP001 == nil then MESSAGE:New( "Convoy 62A Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Convoy 62A Group 001 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVRC001 = BLU_SpawnRedSMIBIFVRC001:Spawn() if BLU_RedSMIBIFVRC001 == nil then MESSAGE:New( "Convoy 62A Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Convoy 62A Group 002 - Group spawned", 25):ToBlue() end BLU_RedSMIBAPCSUPP001 = BLU_SpawnRedSMIBAPCSUPP001:Spawn() if BLU_RedSMIBAPCSUPP001 == nil then MESSAGE:New( "Convoy 62A Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Convoy 62A Group 003 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVHQ001 = BLU_SpawnRedSMIBIFVHQ001:Spawn() if BLU_RedSMIBIFVHQ001 == nil then MESSAGE:New( "Convoy 62A Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Convoy 62A Group 004 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 64A BLU_SpawnRedSMIBIFVRP = SPAWN:New("SMIB IFV Recce Platoon") :InitLimit(3, 0) BLU_SpawnRedSMIBIFVRC = SPAWN:New("SMIB IFV Rifle Company") :InitLimit(11, 0) BLU_SpawnRedSMIBIFVRC002 = SPAWN:New("SMIB IFV Rifle Company #002") :InitLimit(11, 0) BLU_SpawnRedSMIBIFVSIGP = SPAWN:New("SMIB IFV Signal Platoon") :InitLimit(4, 0) BLU_SpawnRedSMIBIFVHQ = SPAWN:New("SMIB IFV HQ") :InitLimit(4, 0) BLU_SpawnRedSRPI003 = SPAWN:New("SRP Infantry #003") :InitLimit(12, 0) BLU_SpawnRedSMIBIFVSUPP = SPAWN:New("SMIB IFV Supply Platoon") :InitLimit(12, 0) local function BLU_RedSector64ASpawn() BLU_RedSMIBIFVRP = BLU_SpawnRedSMIBIFVRP:Spawn() if BLU_RedSMIBIFVRP == nil then MESSAGE:New( "Sector 64A Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 001 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVRC = BLU_SpawnRedSMIBIFVRC:Spawn() if BLU_RedSMIBIFVRC == nil then MESSAGE:New( "Sector 64A Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 002 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVRC002 = BLU_SpawnRedSMIBIFVRC002:Spawn() if BLU_RedSMIBIFVRC002 == nil then MESSAGE:New( "Sector 64A Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 003 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVSIGP = BLU_SpawnRedSMIBIFVSIGP:Spawn() if BLU_RedSMIBIFVSIGP == nil then MESSAGE:New( "Sector 64A Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 004 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVHQ = BLU_SpawnRedSMIBIFVHQ:Spawn() if BLU_RedSMIBIFVHQ == nil then MESSAGE:New( "Sector 64A Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 005 - Group spawned", 25):ToBlue() end BLU_RedSRPI003 = BLU_SpawnRedSRPI003:Spawn() if BLU_RedSRPI003 == nil then MESSAGE:New( "Sector 64A Group 006 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 006 - Group spawned", 25):ToBlue() end BLU_RedSMIBIFVSUPP = BLU_SpawnRedSMIBIFVSUPP:Spawn() if BLU_RedSMIBIFVSUPP == nil then MESSAGE:New( "Sector 64A Group 007 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64A Group 007 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 64B BLU_SpawnRedSMIBAPCRP002 = SPAWN:New("SMIB APC Recce Platoon #002") :InitLimit(3, 0) BLU_SpawnRedZU23003 = SPAWN:New("Zu-23 Position #003") :InitLimit(5, 0) BLU_SpawnRedFuelTrucks = SPAWN:New("Fuel Trucks") :InitLimit(7, 0) local function BLU_RedSector64BSpawn() BLU_RedSMIBAPCRP002 = BLU_SpawnRedSMIBAPCRP002:Spawn() if BLU_RedSMIBAPCRP002 == nil then MESSAGE:New( "Sector 64B Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64B Group 001 - Group spawned", 25):ToBlue() end BLU_RedZU23003 = BLU_SpawnRedZU23003:Spawn() if BLU_RedZU23003 == nil then MESSAGE:New( "Sector 64B Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64B Group 002 - Group spawned", 25):ToBlue() end BLU_RedFuelTrucks = BLU_SpawnRedFuelTrucks:Spawn() if BLU_RedFuelTrucks == nil then MESSAGE:New( "Sector 64B Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64B Group 003 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 64C BLU_SpawnRedSTB72TC005 = SPAWN:New("STB72 Tank Company #005") :InitLimit(10, 0) BLU_SpawnRedSTB72TC004 = SPAWN:New("STB72 Tank Company #004") :InitLimit(10, 0) BLU_SpawnRedSTB72HQ002 = SPAWN:New("STB72 HQ #002") :InitLimit(3, 0) BLU_SpawnRedSTB72SP002 = SPAWN:New("STB72 Supply Platoon #002") :InitLimit(16, 0) local function BLU_RedSector64CSpawn() BLU_RedSTB72TC005 = BLU_SpawnRedSTB72TC005:Spawn() if BLU_RedSTB72TC005 == nil then MESSAGE:New( "Sector 64C Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64C Group 001 - Group spawned", 25):ToBlue() end BLU_RedSTB72TC004 = BLU_SpawnRedSTB72TC004:Spawn() if BLU_RedSTB72TC004 == nil then MESSAGE:New( "Sector 64C Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64C Group 002 - Group spawned", 25):ToBlue() end BLU_RedSTB72HQ002 = BLU_SpawnRedSTB72HQ002:Spawn() if BLU_RedSTB72HQ002 == nil then MESSAGE:New( "Sector 64C Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64C Group 003 - Group spawned", 25):ToBlue() end BLU_RedSTB72SP002 = BLU_SpawnRedSTB72SP002:Spawn() if BLU_RedSTB72SP002 == nil then MESSAGE:New( "Sector 64C Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 64C Group 004 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 65A BLU_SpawnRedSA18001 = SPAWN:New("SA-18 Igla Manpad #001") :InitLimit(3, 0) BLU_SpawnRedSRPW002 = SPAWN:New("SRP Wheeled #002") :InitLimit(4, 0) BLU_SpawnRedSRPI002 = SPAWN:New("SRP Infantry #002") :InitLimit(12, 0) BLU_SpawnRedSRPHQ002 = SPAWN:New("SRP HQ #002") :InitLimit(1, 0) BLU_SpawnRedSRPSIGP002 = SPAWN:New("SRP Signal Platoon #002") :InitLimit(4, 0) local function BLU_RedSector65ASpawn() BLU_RedSA18001 = BLU_SpawnRedSA18001:Spawn() if BLU_RedSA18001 == nil then MESSAGE:New( "Sector 65A Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65A Group 001 - Group spawned", 25):ToBlue() end BLU_RedSRPW002 = BLU_SpawnRedSRPW002:Spawn() if BLU_RedSRPW002 == nil then MESSAGE:New( "Sector 65A Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65A Group 002 - Group spawned", 25):ToBlue() end BLU_RedSRPI002 = BLU_SpawnRedSRPI002:Spawn() if BLU_RedSRPI002 == nil then MESSAGE:New( "Sector 65A Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65A Group 003 - Group spawned", 25):ToBlue() end BLU_RedSRPHQ002 = BLU_SpawnRedSRPHQ002:Spawn() if BLU_RedSRPHQ002 == nil then MESSAGE:New( "Sector 65A Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65A Group 004 - Group spawned", 25):ToBlue() end BLU_RedSRPSIGP002 = BLU_SpawnRedSRPSIGP002:Spawn() if BLU_RedSRPSIGP002 == nil then MESSAGE:New( "Sector 65A Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65A Group 005 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 65B BLU_SpawnRedSA18 = SPAWN:New("SA-18 Igla Manpad") :InitLimit(3, 0) local function BLU_RedSector65BSpawn() BLU_RedSA18 = BLU_SpawnRedSA18:Spawn() if BLU_RedSA18 == nil then MESSAGE:New( "Sector 65B Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65B Group 001 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 65C BLU_SpawnRedSMSC = SPAWN:New("Soviet Material Support Company") :InitLimit(14, 0) BLU_SpawnRedSHBAB = SPAWN:New("SHB Artillery Battery") :InitLimit(6, 0) BLU_SpawnRedSHBFC = SPAWN:New("SHB Fire Control") :InitLimit(6, 0) BLU_SpawnRedSHBAB001 = SPAWN:New("SHB Artillery Battery #001") :InitLimit(6, 0) BLU_SpawnRedSHBFC001 = SPAWN:New("SHB Fire Control #001") :InitLimit(6, 0) BLU_SpawnRedSHBHQ = SPAWN:New("SHB HQ") :InitLimit(4, 0) BLU_SpawnRedMI28 = SPAWN:New("Mi-28") :InitLimit(2, 0) BLU_SpawnRedMI8 = SPAWN:New("Mi-8") :InitLimit(2, 0) BLU_SpawnRedZU23005 = SPAWN:New("Zu-23 Position #005") :InitLimit(5, 0) BLU_SpawnRedFARPHQ = SPAWN:New("FARP HQ") :InitLimit(5, 0) local function BLU_RedSector65CSpawn() BLU_RedSMSC = BLU_SpawnRedSMSC:Spawn() if BLU_RedSMSC == nil then MESSAGE:New( "Sector 65C Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 001 - Group spawned", 25):ToBlue() end BLU_RedSHBAB = BLU_SpawnRedSHBAB:Spawn() if BLU_RedSHBAB == nil then MESSAGE:New( "Sector 65C Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 002 - Group spawned", 25):ToBlue() end BLU_RedSHBFC = BLU_SpawnRedSHBFC:Spawn() if BLU_RedSHBFC == nil then MESSAGE:New( "Sector 65C Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 003 - Group spawned", 25):ToBlue() end BLU_RedSHBAB001 = BLU_SpawnRedSHBAB001:Spawn() if BLU_RedSHBAB001 == nil then MESSAGE:New( "Sector 65C Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 004 - Group spawned", 25):ToBlue() end BLU_RedSHBFC001 = BLU_SpawnRedSHBFC001:Spawn() if BLU_RedSHBFC001 == nil then MESSAGE:New( "Sector 65C Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 005 - Group spawned", 25):ToBlue() end BLU_RedSHBHQ = BLU_SpawnRedSHBHQ:Spawn() if BLU_RedSHBHQ == nil then MESSAGE:New( "Sector 65C Group 006 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 006 - Group spawned", 25):ToBlue() end BLU_RedMI28 = BLU_SpawnRedMI28:Spawn() if BLU_RedMI28 == nil then MESSAGE:New( "Sector 65C Group 007 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 007 - Group spawned", 25):ToBlue() end BLU_RedMI8 = BLU_SpawnRedMI8:Spawn() if BLU_RedMI8 == nil then MESSAGE:New( "Sector 65C Group 008 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 008 - Group spawned", 25):ToBlue() end BLU_RedZU23005 = BLU_SpawnRedZU23005:Spawn() if BLU_RedZU23005 == nil then MESSAGE:New( "Sector 65C Group 009 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 009 - Group spawned", 25):ToBlue() end BLU_RedFARPHQ = BLU_SpawnRedFARPHQ:Spawn() if BLU_RedFARPHQ == nil then MESSAGE:New( "Sector 65C Group 010 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 65C Group 010 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 4808E BLU_SpawnRedZU23006 = SPAWN:New("Zu-23 Position #006") :InitLimit(5, 0) BLU_SpawnRedSTB72TC006 = SPAWN:New("STB72 Tank Company #006") :InitLimit(10, 0) BLU_SpawnRedSATBATC = SPAWN:New("SATB Anti Tank Company") :InitLimit(6, 0) BLU_SpawnRedSATBHQ = SPAWN:New("SATB HQ") :InitLimit(4, 0) BLU_SpawnRedSATBSUPP = SPAWN:New("SATB Supply Platoon") :InitLimit(25, 0) local function BLU_RedSector4808ESpawn() BLU_RedZU23006 = BLU_SpawnRedZU23006:Spawn() if BLU_RedZU23006 == nil then MESSAGE:New( "Sector 4808E Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 4808E Group 001 - Group spawned", 25):ToBlue() end BLU_RedSTB72TC006 = BLU_SpawnRedSTB72TC006:Spawn() if BLU_RedSTB72TC006 == nil then MESSAGE:New( "Sector 4808E Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 4808E Group 002 - Group spawned", 25):ToBlue() end BLU_RedSATBATC = BLU_SpawnRedSATBATC:Spawn() if BLU_RedSATBATC == nil then MESSAGE:New( "Sector 4808E Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 4808E Group 003 - Group spawned", 25):ToBlue() end BLU_RedSATBHQ = BLU_SpawnRedSATBHQ:Spawn() if BLU_RedSATBHQ == nil then MESSAGE:New( "Sector 4808E Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 4808E Group 004 - Group spawned", 25):ToBlue() end BLU_RedSATBSUPP = BLU_SpawnRedSATBSUPP:Spawn() if BLU_RedSATBSUPP == nil then MESSAGE:New( "Sector 4808E Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 4808E Group 005 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector LEACH LAKE BLU_SpawnRedSTB72TC003 = SPAWN:New("STB72 Tank Company #003") :InitLimit(10, 0) BLU_SpawnRedSTB72TC002 = SPAWN:New("STB72 Tank Company #002") :InitLimit(10, 0) BLU_SpawnRedSTB72TC001 = SPAWN:New("STB72 Tank Company #001") :InitLimit(10, 0) BLU_SpawnRedZU23004 = SPAWN:New("Zu-23 Position #004") :InitLimit(5, 0) BLU_SpawnRedSADB13SAMB001 = SPAWN:New("SADB13 SAM Battery #001") :InitLimit(8, 0) BLU_SpawnRedSTB72HQ001 = SPAWN:New("STB72 HQ #001") :InitLimit(3, 0) BLU_SpawnRedSTB72SUPP001 = SPAWN:New("STB72 Supply Platoon #001") :InitLimit(16, 0) local function BLU_RedSectorLEACHSpawn() BLU_RedSTB72TC003 = BLU_SpawnRedSTB72TC003:Spawn() if BLU_RedSTB72TC003 == nil then MESSAGE:New( "Sector LEACH LAKE Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 001 - Group spawned", 25):ToBlue() end BLU_RedSTB72TC002 = BLU_SpawnRedSTB72TC002:Spawn() if BLU_RedSTB72TC002 == nil then MESSAGE:New( "Sector LEACH LAKE Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 002 - Group spawned", 25):ToBlue() end BLU_RedSTB72TC001 = BLU_SpawnRedSTB72TC001:Spawn() if BLU_RedSTB72TC001 == nil then MESSAGE:New( "Sector LEACH LAKE Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 003 - Group spawned", 25):ToBlue() end BLU_RedZU23004 = BLU_SpawnRedZU23004:Spawn() if BLU_RedZU23004 == nil then MESSAGE:New( "Sector LEACH LAKE Group 004 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 004 - Group spawned", 25):ToBlue() end BLU_RedSADB13SAMB001 = BLU_SpawnRedSADB13SAMB001:Spawn() if BLU_RedSADB13SAMB001 == nil then MESSAGE:New( "Sector LEACH LAKE Group 005 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 005 - Group spawned", 25):ToBlue() end BLU_RedSTB72HQ001 = BLU_SpawnRedSTB72HQ001:Spawn() if BLU_RedSTB72HQ001 == nil then MESSAGE:New( "Sector LEACH LAKE Group 006 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 006 - Group spawned", 25):ToBlue() end BLU_RedSTB72SUPP001 = BLU_SpawnRedSTB72SUPP001:Spawn() if BLU_RedSTB72SUPP001 == nil then MESSAGE:New( "Sector LEACH LAKE Group 007 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector LEACH LAKE Group 007 - Group spawned", 25):ToBlue() end end -- Function for spawning groups in sector 75E BLU_SpawnRedSADB001 = SPAWN:New("Soviet Air Defense Battery #001") :InitLimit(14, 0) BLU_SpawnRedFUELTRK001 = SPAWN:New("Fuel Trucks #001") :InitLimit(4, 0) BLU_SpawnRedFUELTRK002 = SPAWN:New("Fuel Trucks #002") :InitLimit(4, 0) local function BLU_RedSector75ESpawn() BLU_RedSADB001 = BLU_SpawnRedSADB001:Spawn() if BLU_RedSADB001 == nil then MESSAGE:New( "Sector 75E Group 001 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 75E Group 001 - Group spawned", 25):ToBlue() end BLU_RedFUELTRK001 = BLU_SpawnRedFUELTRK001:Spawn() if BLU_RedFUELTRK001 == nil then MESSAGE:New( "Sector 75E Group 002 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 75E Group 002 - Group spawned", 25):ToBlue() end BLU_RedFUELTRK002 = BLU_SpawnRedFUELTRK002:Spawn() if BLU_RedFUELTRK002 == nil then MESSAGE:New( "Sector 75E Group 003 - Spawn cancelled : still units alive", 25):ToBlue() else MESSAGE:New( "Sector 75E Group 003 - Group spawned", 25):ToBlue() end end -- END Blue Coalition Red AI Spawn Functions -- ------------------------------------------------- ------------------------------------------------- -- Blue Coalition Red AI Spawn Menu -- -- Red AI Spawn -- Red Air AI Spawn -- Zone TF -- Red CAP F5x2 -- Red Ground AI Spawn -- Sectors 61-62-63 -- Sector 61B -- Sector 62A -- Sector 63B -- Convoy 62A-63B -- Sectors 64-65 -- Sector 64A -- Sector 64B -- Sector 64C -- Sector 65A -- Sector 65B -- Sector 65C -- Sectors 4808 -- Sector 4808E -- Sector Leach Lake -- Sectors 75 -- Sector 75E BLU_RedAISpawnMenu = MENU_COALITION:New(coalition.side.BLUE, "Red AI Spawn") BLU_RedAirAISpawnMenu = MENU_COALITION:New(coalition.side.BLUE, "Red Air AI Spawn", BLU_RedAISpawnMenu) BLU_RedGroundAISpawnMenu = MENU_COALITION:New(coalition.side.BLUE, "Red Ground AI Spawn", BLU_RedAISpawnMenu) BLU_RedAirAIZoneTFMenu = MENU_COALITION:New(coalition.side.BLUE, "Zone TF", BLU_RedAirAISpawnMenu) BLU_RedCAPF5x2SpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Red CAP F5x2", BLU_RedAirAIZoneTFMenu, BLU_RedCAPF5x2SpawnZoneTF) BLU_RedGroundAIS616263Menu = MENU_COALITION:New(coalition.side.BLUE, "Sectors 61-62-63", BLU_RedGroundAISpawnMenu) BLU_RedSector61BSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 61B", BLU_RedGroundAIS616263Menu, BLU_RedSector61BSpawn) BLU_RedSector62ASpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 62A", BLU_RedGroundAIS616263Menu, BLU_RedSector62ASpawn) BLU_RedSector63BSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 63B", BLU_RedGroundAIS616263Menu, BLU_RedSector63BSpawn) BLU_RedConvoy62ASpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Convoy 62A-63B", BLU_RedGroundAIS616263Menu, BLU_RedConvoy62ASpawn) BLU_RedGroundAIS6465Menu = MENU_COALITION:New(coalition.side.BLUE, "Sectors 64-65", BLU_RedGroundAISpawnMenu) BLU_RedSector64ASpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 64A", BLU_RedGroundAIS6465Menu, BLU_RedSector64ASpawn) BLU_RedSector64BSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 64B", BLU_RedGroundAIS6465Menu, BLU_RedSector64BSpawn) BLU_RedSector64CSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 64C", BLU_RedGroundAIS6465Menu, BLU_RedSector64CSpawn) BLU_RedSector65ASpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 65A", BLU_RedGroundAIS6465Menu, BLU_RedSector65ASpawn) BLU_RedSector65BSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 65B", BLU_RedGroundAIS6465Menu, BLU_RedSector65BSpawn) BLU_RedSector65CSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 65C", BLU_RedGroundAIS6465Menu, BLU_RedSector65CSpawn) BLU_RedGroundAIS4808Menu = MENU_COALITION:New(coalition.side.BLUE, "Sectors 4808", BLU_RedGroundAISpawnMenu) BLU_RedSector4808ESpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 4808E", BLU_RedGroundAIS4808Menu, BLU_RedSector4808ESpawn) BLU_RedSectorLEACHSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector Leach Lake", BLU_RedGroundAISpawnMenu, BLU_RedSectorLEACHSpawn) BLU_RedGroundAIS75Menu = MENU_COALITION:New(coalition.side.BLUE, "Sectors 75", BLU_RedGroundAISpawnMenu) BLU_RedSector75ESpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Sector 75E", BLU_RedGroundAIS75Menu, BLU_RedSector75ESpawn) -- END Blue Coalition Red AI Spawn Menu ------------------------------------------------- ------------------------------------------------- -- Blue Coalition Blue CSAR Functions -- -- Function for spawning BLUE infantry unit for CSAR in random zone Zone_BlueCSAR_001 = ZONE:New("Zone_BlueCSAR_001") Zone_BlueCSAR_002 = ZONE:New("Zone_BlueCSAR_002") Zone_BlueCSAR_003 = ZONE:New("Zone_BlueCSAR_003") BLU_BlueCSARUnitSpawnRandomNellis_ZoneTable = {Zone_BlueCSAR_001, Zone_BlueCSAR_002, Zone_BlueCSAR_003} BLU_SpawnBlueCSARUnitNellis = SPAWN:New("BlueCSARUnit") :InitRandomizeZones(BLU_BlueCSARUnitSpawnRandomNellis_ZoneTable) :InitLimit(1, 0) local function BLU_BlueCSARUnitSpawnRandomNellis() BLU_BlueCSARUnitNellis_tempo = BLU_SpawnBlueCSARUnitNellis:Spawn() if BLU_BlueCSARUnitNellis_tempo == nil then MESSAGE:New( "Max Blue CSAR units Nellis alive reached", 25):ToBlue() else BLU_BlueCSARUnitNellis = BLU_BlueCSARUnitNellis_tempo if BLU_BlueCSARUnitNellis:IsCompletelyInZone(Zone_BlueCSAR_001) then MESSAGE:New( "CSAR Nellis : US infantry unit to be rescued near Bonelli Bay, Lake Mead, sector QV29, around 30 nm ESE from Nellis", 25):ToBlue() elseif BLU_BlueCSARUnitNellis:IsCompletelyInZone(Zone_BlueCSAR_002) then MESSAGE:New( "CSAR Nellis : US infantry unit to be rescued near Arrow Canyon, sector PA97, around 30 nm NNE from Nellis", 25):ToBlue() elseif BLU_BlueCSARUnitNellis:IsCompletelyInZone(Zone_BlueCSAR_003) then MESSAGE:New( "CSAR Nellis : US infantry unit to be rescued near Northern part of Lake Mead, sector QA34, around 35 nm ENE from Nellis", 25):ToBlue() else MESSAGE:New( "CSAR Nellis : US infantry unit to be rescued around 30 nm from Nellis, unknown location", 25):ToBlue() end BLU_BlueCSARUnitNellis_Radio = BLU_BlueCSARUnitNellis:GetRadio() BLU_BlueCSARUnitNellis_Radio:SetFileName("beacon.ogg") BLU_BlueCSARUnitNellis_Radio:SetFrequency(37) -- frequency in MHz, BLU_BlueCSARUnitNellis_Radio:SetModulation(radio.modulation.FM) -- modulation. BLU_BlueCSARUnitNellis_Radio:SetLoop(true) BLU_BlueCSARUnitNellis_Radio:Broadcast() MESSAGE:New( "CSAR Nellis : US infantry deployed an emergency beacon transmitting on 37 MHz FM", 30):ToBlue() end end -- Function for making BLUE CSAR infantry unit fire a green smoke local function BLU_FCTN_BlueCSARNellis_Smoke() if BLU_BlueCSARUnitNellis == nil then MESSAGE:New( "CASR Nellis : No Blue CSAR unit alive", 25):ToBlue() else BLU_BlueCSARUnitNellis_Unit = BLU_BlueCSARUnitNellis:GetUnit(1) BLU_BlueCSARUnitNellis_Unit:SmokeGreen() MESSAGE:New( "CSAR Nellis : US infantry fired a green smoke", 25):ToBlue() end end -- Function for making BLUE CSAR infantry unit fire a green flare local function BLU_FCTN_BlueCSARNellis_Flare() if BLU_BlueCSARUnitNellis == nil then MESSAGE:New( "CASR Nellis : No Blue CSAR unit alive", 25):ToBlue() else BLU_BlueCSARUnitNellis_Unit = BLU_BlueCSARUnitNellis:GetUnit(1) BLU_BlueCSARUnitNellis_Unit:FlareGreen() MESSAGE:New( "CSAR Nellis : US infantry fired a green flare", 25):ToBlue() end end -- END Blue Coalition Blue CSAR Functions -- ------------------------------------------------- ------------------------------------------------- -- Blue Coalition Blue AI Spawn Menu -- BLU_BlueAISpawnMenu = MENU_COALITION:New(coalition.side.BLUE, "Blue AI Spawn") BLU_BlueGroundAISpawnMenu = MENU_COALITION:New(coalition.side.BLUE, "Blue Ground AI Spawn", BLU_BlueAISpawnMenu) BLU_BlueCSARMenu = MENU_COALITION:New(coalition.side.BLUE, "Blue CSAR", BLU_BlueGroundAISpawnMenu) BLU_BlueCSARUnitSpawnNellis = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Blue CSAR Unit Random spawn Nellis", BLU_BlueCSARMenu, BLU_BlueCSARUnitSpawnRandomNellis) BLU_BlueCSARNellis_Smoke = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Blue CSAR Nellis : Ask for smoke", BLU_BlueCSARMenu, BLU_FCTN_BlueCSARNellis_Smoke) BLU_BlueCSARNellis_Flare = MENU_COALITION_COMMAND:New(coalition.side.BLUE, "Blue CSAR Nellis : Ask for flare", BLU_BlueCSARMenu, BLU_FCTN_BlueCSARNellis_Flare) -- END Blue Coalition Blue AI Spawn Menu ------------------------------------------------- ------------------------------------------------- -- BLUE AI_A2A_DISPATCHER -- -- Setup BLUE EWR network BLUE_DetectionSetGroup = SET_GROUP:New() BLUE_DetectionSetGroup:FilterPrefixes( { "BLUE_EWR" } ) -- Change Prefix with the start of the group names that you will use to build the collection of the EWR network. BLUE_DetectionSetGroup:FilterStart() -- Setup BLUE detection BLUE_Detection = DETECTION_AREAS:New( BLUE_DetectionSetGroup, 30000 ) -- Create BLUE AI_A2A_DISPATCHER object BLUE_A2ADispatcher = AI_A2A_DISPATCHER:New( BLUE_Detection ) -- Setup BLUE border zone (from late activated group "BLUE_BORDER"'s waypoints) and assign it to BLUE AI_A2A_DISPATCHER BLUE_BorderZone = ZONE_POLYGON:New( "BLUE_BORDER", GROUP:FindByName( "BLUE_BORDER" ) ) BLUE_A2ADispatcher:SetBorderZone( BLUE_BorderZone ) -- Set BLUE engage radius BLUE_A2ADispatcher:SetEngageRadius( 100000 ) -- Set Default BLUE squadrons overhead (i.e. balance) BLUE_A2ADispatcher:SetDefaultOverhead( 0.6 ) -- Set Default BLUE squadrons grouping BLUE_A2ADispatcher:SetDefaultGrouping( 2 ) -- Set Default BLUE CAP limit BLUE_A2ADispatcher:SetDefaultCapLimit( 1 ) -- Set Default BLUE CAP time interval BLUE_A2ADispatcher:SetDefaultCapTimeInterval( 300, 600 ) -- Set Default BLUE takeoff and landing methods BLUE_A2ADispatcher:SetDefaultTakeoffFromParkingCold() BLUE_A2ADispatcher:SetDefaultLandingAtEngineShutdown() --BLUE_A2ADispatcher:SetDefaultTakeoffInAirAltitude( 2000 ) -- Altitude in meters above ground --BLUE_A2ADispatcher:SetDefaultLandingNearAirbase() -- Define BLUE squadrons BLUE_A2ADispatcher:SetSquadron( "Nellis CAP W", AIRBASE.Nevada.Nellis_AFB, { "[12th] F-15 Nellis", "[414th] F-16 Nellis" } ) BLUE_A2ADispatcher:SetSquadron( "Nellis CAP N", AIRBASE.Nevada.Nellis_AFB, { "[414th] F-16 Nellis #001", "[44th] F-18 Nellis" } ) BLUE_A2ADispatcher:SetSquadron( "Nellis CAP C", AIRBASE.Nevada.Nellis_AFB, { "[25th] F-18 Nellis", "[AdA25] M-2000 Nellis" } ) -- Define BLUE CAP zones BLUE_CAP_W_Zone = ZONE_POLYGON:New( "BLUE_CAP_W", GROUP:FindByName( "BLUE_CAP_W" ) ) BLUE_CAP_N_Zone = ZONE_POLYGON:New( "BLUE_CAP_N", GROUP:FindByName( "BLUE_CAP_N" ) ) BLUE_CAP_C_Zone = ZONE_POLYGON:New( "BLUE_CAP_C", GROUP:FindByName( "BLUE_CAP_C" ) ) -- Setup BLUE CAP tasks BLUE_A2ADispatcher:SetSquadronCap( "Nellis CAP W", BLUE_CAP_W_Zone, 4000, 8000, 600, 800, 800, 1200, "BARO" ) BLUE_A2ADispatcher:SetSquadronCap( "Nellis CAP N", BLUE_CAP_N_Zone, 5000, 10000, 600, 800, 800, 1400, "BARO" ) BLUE_A2ADispatcher:SetSquadronCap( "Nellis CAP C", BLUE_CAP_C_Zone, 4000, 10000, 600, 800, 800, 1400, "BARO" ) -- END BLUE AI_A2A_DISPATCHER -- ------------------------------------------------- --************************ --* END BLUE COALITION * --************************ --************************ --* BEGIN RED COALITION * --************************ ------------------------------------------------- -- RED AWACS and TANKERS Spawn and Auto Respawn -- gazprom_respawn = SPAWN:New( "[203rd] GAZPROM" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) motherland_respawn = SPAWN:New( "RED_EWR AWACS MOTHERLAND" ):InitLimit(1, 0):InitRepeatOnEngineShutDown():SpawnScheduled(180, 0) -- END RED AWACS and TANKERS Spawn and Auto Respawn -- ------------------------------------------------- ------------------------------------------------- -- RED EWR and SAM/AAA Spawn and Auto Respawn -- EWR_Groom_respawn = SPAWN:New( "RED_EWR Dog Ear" ):InitLimit(1, 0):SpawnScheduled(600,0) EWR_Tonopah_respawn = SPAWN:New( "RED_EWR 55G6" ):InitLimit(1, 0):SpawnScheduled(600,0) AAA1_Groom_respawn = SPAWN:New( "Zu-23 Position" ):InitLimit(5, 0):SpawnScheduled(600,0) AAA2_Groom_respawn = SPAWN:New( "Zu-23 Position #001" ):InitLimit(5, 0):SpawnScheduled(600,0) SAM_Groom_respawn = SPAWN:New( "SADB15 SAM Battery #001" ):InitLimit(5, 0):SpawnScheduled(600,0) AAA_Tonopah_respawn = SPAWN:New( "Zu-23 Position #002" ):InitLimit(5, 0):SpawnScheduled(600,0) SAM_Tonopah_respawn = SPAWN:New( "SADB8 SAM Battery #001" ):InitLimit(8, 0):SpawnScheduled(600,0) -- END RED EWR and SAM/AAA Spawn and Auto Respawn -- ------------------------------------------------- ------------------------------------------------- -- Red Coalition Blue AI Spawn Functions -- -- Function for spawning BLUE CAP F5x2 RED_SpawnBlueCAPF5x2 = SPAWN:New("BlueCAPF5x2") :InitRandomizePosition(true, 20000, 0) :InitRandomizeRoute(0, 0, 25000) :InitLimit(4, 0) :InitCleanUp(60) local function RED_BlueCAPF5x2SpawnZoneMB() RED_BlueCAPF5x2 = RED_SpawnBlueCAPF5x2:Spawn() if RED_BlueCAPF5x2 == nil then MESSAGE:New( "Zone MB : Max F5 units alive reached", 25):ToRed() else MESSAGE:New( "Zone MB : Blue CAP F5 x 2 spawned", 25):ToRed() end end -- Function for spawning groups in sector ALAMO BRAVO RED_SpawnBlueHBCTRTRP001 = SPAWN:New("USA HBCT Recon Troop Recce Platoon #001") :InitLimit(8, 0) RED_SpawnBlueHBCTRTRP002 = SPAWN:New("USA HBCT Recon Troop Recce Platoon #002") :InitLimit(8, 0) RED_SpawnBlueHBCTRTHQ = SPAWN:New("USA HBCT Recon Troop HQ") :InitLimit(5, 0) local function RED_BlueSectorALAMOBSpawn() RED_BlueHBCTRTRP001 = RED_SpawnBlueHBCTRTRP001:Spawn() if RED_BlueHBCTRTRP001 == nil then MESSAGE:New( "Sector ALAMO BRAVO Group 001 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector ALAMO BRAVO Group 001 - Group spawned", 25):ToRed() end RED_BlueHBCTRTRP002 = RED_SpawnBlueHBCTRTRP002:Spawn() if RED_BlueHBCTRTRP002 == nil then MESSAGE:New( "Sector ALAMO BRAVO Group 002 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector ALAMO BRAVO Group 002 - Group spawned", 25):ToRed() end RED_BlueHBCTRTHQ = RED_SpawnBlueHBCTRTHQ:Spawn() if RED_BlueHBCTRTHQ == nil then MESSAGE:New( "Sector ALAMO BRAVO Group 003 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector ALAMO BRAVO Group 003 - Group spawned", 25):ToRed() end end -- Function for spawning groups in sector COYOTE BRAVO RED_SpawnBlueHCTSP = SPAWN:New("USA Heavy Cavalry Troop Scout Platoon") :InitLimit(6, 0) RED_SpawnBlueHCTTP = SPAWN:New("Heavy Cavalry Troop Tank Platoon") :InitLimit(4, 0) RED_SpawnBlueHCTTP001 = SPAWN:New("Heavy Cavalry Troop Tank Platoon #001") :InitLimit(4, 0) RED_SpawnBlueHCTHQS = SPAWN:New("Heavy Cavalry Troop Headquarters Section") :InitLimit(7, 0) RED_SpawnBlueHCTMS = SPAWN:New("Heavy Cavalry Troop Maintenance Section") :InitLimit(5, 0) local function RED_BlueSectorCOYOTEBSpawn() RED_BlueHCTSP = RED_SpawnBlueHCTSP:Spawn() if RED_BlueHCTSP == nil then MESSAGE:New( "Sector COYOTE BRAVO Group 001 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector COYOTE BRAVO Group 001 - Group spawned", 25):ToRed() end RED_BlueHCTTP = RED_SpawnBlueHCTTP:Spawn() if RED_BlueHCTTP == nil then MESSAGE:New( "Sector COYOTE BRAVO Group 002 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector COYOTE BRAVO Group 002 - Group spawned", 25):ToRed() end RED_BlueHCTTP001 = RED_SpawnBlueHCTTP001:Spawn() if RED_BlueHCTTP001 == nil then MESSAGE:New( "Sector COYOTE BRAVO Group 003 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector COYOTE BRAVO Group 003 - Group spawned", 25):ToRed() end RED_BlueHCTHQS = RED_SpawnBlueHCTHQS:Spawn() if RED_BlueHCTHQS == nil then MESSAGE:New( "Sector COYOTE BRAVO Group 004 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector COYOTE BRAVO Group 004 - Group spawned", 25):ToRed() end RED_BlueHCTMS = RED_SpawnBlueHCTMS:Spawn() if RED_BlueHCTMS == nil then MESSAGE:New( "Sector COYOTE BRAVO Group 005 - Spawn cancelled : still units alive", 25):ToRed() else MESSAGE:New( "Sector COYOTE BRAVO Group 005 - Group spawned", 25):ToRed() end end -- END Red Coalition Blue AI Spawn Functions -- ------------------------------------------------- ------------------------------------------------- -- Red Coalition Blue AI Spawn Menu -- -- Blue AI Spawn -- Blue Air AI Spawn -- Zone MB -- Blue CAP F5x2 -- Blue Ground AI Spawn -- Sectors ALAMO -- Sector ALAMO BRAVO -- Sectors COYOTE -- Sector COYOTE BRAVO RED_BlueAISpawnMenu = MENU_COALITION:New(coalition.side.RED, "Blue AI Spawn") RED_BlueAirAISpawnMenu = MENU_COALITION:New(coalition.side.RED, "Blue Air AI Spawn", RED_BlueAISpawnMenu) RED_BlueGroundAISpawnMenu = MENU_COALITION:New(coalition.side.RED, "Blue Ground AI Spawn", RED_BlueAISpawnMenu) RED_BlueAirAIZoneMBMenu = MENU_COALITION:New(coalition.side.RED, "Zone MB", RED_BlueAirAISpawnMenu) RED_BlueCAPF5x2Spawn = MENU_COALITION_COMMAND:New(coalition.side.RED, "Blue CAP F5x2", RED_BlueAirAIZoneMBMenu, RED_BlueCAPF5x2SpawnZoneMB) RED_BlueGroundAIALAMOMenu = MENU_COALITION:New(coalition.side.RED, "Sectors ALAMO", RED_BlueGroundAISpawnMenu) RED_BlueSectorALAMOBSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.RED, "Sector ALAMO BRAVO", RED_BlueGroundAIALAMOMenu, RED_BlueSectorALAMOBSpawn) RED_BlueGroundAICOYOTEMenu = MENU_COALITION:New(coalition.side.RED, "Sectors COYOTE", RED_BlueGroundAISpawnMenu) RED_BlueSectorCOYOTEBSpawnCmd = MENU_COALITION_COMMAND:New(coalition.side.RED, "Sector COYOTE BRAVO", RED_BlueGroundAICOYOTEMenu, RED_BlueSectorCOYOTEBSpawn) -- END Red Coalition Blue AI Spawn Menu ------------------------------------------------- ------------------------------------------------- -- RED AI_A2A_DISPATCHER -- -- Setup RED EWR network RED_DetectionSetGroup = SET_GROUP:New() RED_DetectionSetGroup:FilterPrefixes( { "RED_EWR" } ) -- Change Prefix with the start of the group names that you will use to build the collection of the EWR network. RED_DetectionSetGroup:FilterStart() -- Setup RED detection RED_Detection = DETECTION_AREAS:New( RED_DetectionSetGroup, 30000 ) -- Create RED AI_A2A_DISPATCHER object RED_A2ADispatcher = AI_A2A_DISPATCHER:New( RED_Detection ) -- Setup RED border zone (from late activated group "RED_BORDER"'s waypoints) and assign it to RED AI_A2A_DISPATCHER RED_BorderZone = ZONE_POLYGON:New( "RED_BORDER", GROUP:FindByName( "RED_BORDER" ) ) RED_A2ADispatcher:SetBorderZone( RED_BorderZone ) -- Set RED engage radius RED_A2ADispatcher:SetEngageRadius( 100000 ) -- Set Default RED squadrons overhead (i.e. balance) RED_A2ADispatcher:SetDefaultOverhead( 0.6 ) -- Set Default RED squadrons grouping RED_A2ADispatcher:SetDefaultGrouping( 2 ) -- Set Default RED CAP limit RED_A2ADispatcher:SetDefaultCapLimit( 1 ) -- Set Default RED CAP time interval RED_A2ADispatcher:SetDefaultCapTimeInterval( 300, 600 ) -- Set Default RED takeoff and landing methods RED_A2ADispatcher:SetDefaultTakeoffFromParkingCold() RED_A2ADispatcher:SetDefaultLandingAtEngineShutdown() --RED_A2ADispatcher:SetDefaultTakeoffInAirAltitude( 2000 ) -- Altitude in meters above ground --RED_A2ADispatcher:SetDefaultLandingNearAirbase() -- Define RED squadrons RED_A2ADispatcher:SetSquadron( "[65th] Groom", AIRBASE.Nevada.Groom_Lake_AFB, { "[65th] F5 Groom", "[65th] MiG-21 Groom" } ) RED_A2ADispatcher:SetSquadron( "[65th] MiG-29-Su-27 Tonopah", AIRBASE.Nevada.Tonopah_Test_Range_Airfield, { "[65th] MiG-29 Tonopah", "[65th] Su-27 Tonopah" } ) RED_A2ADispatcher:SetSquadron( "[65th] MiG-23-25 Tonopah", AIRBASE.Nevada.Tonopah_Test_Range_Airfield, { "[65th] MiG-23 Tonopah", "[65th] MiG-25 Tonopah" } ) -- Set RED squadrons overhead (i.e. balance) --RED_A2ADispatcher:SetSquadronOverhead( "[65th] Groom", 0.6 ) --RED_A2ADispatcher:SetSquadronOverhead( "[65th] MiG-29-Su-27 Tonopah", 0.6 ) --RED_A2ADispatcher:SetSquadronOverhead( "[65th] MiG-23-25 Tonopah", 0.6 ) -- Set RED squadrons grouping --RED_A2ADispatcher:SetSquadronGrouping( "[65th] Groom", 2 ) --RED_A2ADispatcher:SetSquadronGrouping( "[65th] MiG-29-Su-27 Tonopah", 2 ) --RED_A2ADispatcher:SetSquadronGrouping( "[65th] MiG-23-25 Tonopah", 2 ) -- Define RED CAP zones RED_CAP_NE_Zone = ZONE_POLYGON:New( "RED_CAP_NE", GROUP:FindByName( "RED_CAP_NE" ) ) RED_CAP_SE_Zone = ZONE_POLYGON:New( "RED_CAP_SE", GROUP:FindByName( "RED_CAP_SE" ) ) RED_CAP_W_Zone = ZONE_POLYGON:New( "RED_CAP_W", GROUP:FindByName( "RED_CAP_W" ) ) -- Setup RED CAP tasks RED_A2ADispatcher:SetSquadronCap( "[65th] Groom", RED_CAP_SE_Zone, 4000, 8000, 600, 800, 800, 1200, "BARO" ) --RED_A2ADispatcher:SetSquadronCapInterval( "[65th] Groom", 1, 300, 600 ) RED_A2ADispatcher:SetSquadronCap( "[65th] MiG-29-Su-27 Tonopah", RED_CAP_NE_Zone, 5000, 10000, 600, 800, 800, 1400, "BARO" ) --RED_A2ADispatcher:SetSquadronCapInterval( "[65th] MiG-29-Su-27 Tonopah", 1, 300, 600 ) RED_A2ADispatcher:SetSquadronCap( "[65th] MiG-23-25 Tonopah", RED_CAP_W_Zone, 4000, 10000, 600, 800, 800, 1400, "BARO" ) --RED_A2ADispatcher:SetSquadronCapInterval( "[65th] MiG-23-25 Tonopah", 1, 300, 600 ) -- END RED AI_A2A_DISPATCHER -- ------------------------------------------------- --************************ --* END RED COALITION * --************************ --****************************** --* BEGIN GLOBAL MENU OPTIONS * --****************************** -- Function for deactivating BLUFOR AI CAPs local function GLOBAL_BlueAirAICAPOff() -- Set BLUFOR engage radius to 1 km BLUE_A2ADispatcher:SetEngageRadius( 1000 ) -- Set BLUFOR squadrons CAP limit to zero BLUE_A2ADispatcher:SetSquadronCapInterval( "Nellis CAP W", 0, 300, 600 ) BLUE_A2ADispatcher:SetSquadronCapInterval( "Nellis CAP N", 0, 300, 600 ) BLUE_A2ADispatcher:SetSquadronCapInterval( "Nellis CAP C", 0, 300, 600 ) MESSAGE:New( "BLUFOR AI CAPs OFF", 25):ToAll() end -- Function for activating BLUFOR AI CAPs local function GLOBAL_BlueAirAICAPOn() -- Set BLUFOR engage radius to 100 km BLUE_A2ADispatcher:SetEngageRadius( 100000 ) -- Set BLUFOR squadrons CAP limit to 1 BLUE_A2ADispatcher:SetSquadronCapInterval( "Nellis CAP W", 1, 300, 600 ) BLUE_A2ADispatcher:SetSquadronCapInterval( "Nellis CAP N", 1, 300, 600 ) BLUE_A2ADispatcher:SetSquadronCapInterval( "Nellis CAP C", 1, 300, 600 ) MESSAGE:New( "BLUFOR AI CAPs ON", 25):ToAll() end -- Function for deactivating REDFOR AI CAPs local function GLOBAL_RedAirAICAPOff() -- Set REDFOR engage radius to 1 km RED_A2ADispatcher:SetEngageRadius( 1000 ) -- Set REDFOR squadrons CAP limit to zero RED_A2ADispatcher:SetSquadronCapInterval( "[65th] Groom", 0, 300, 600 ) RED_A2ADispatcher:SetSquadronCapInterval( "[65th] MiG-29-Su-27 Tonopah", 0, 300, 600 ) RED_A2ADispatcher:SetSquadronCapInterval( "[65th] MiG-23-25 Tonopah", 0, 300, 600 ) MESSAGE:New( "REDFOR AI CAPs OFF", 25):ToAll() end -- Function for activating REDFOR AI CAPs local function GLOBAL_RedAirAICAPOn() -- Set REDFOR engage radius to 100 km RED_A2ADispatcher:SetEngageRadius( 100000 ) -- Set REDFOR squadrons CAP limit to 1 RED_A2ADispatcher:SetSquadronCapInterval( "[65th] Groom", 1, 300, 600 ) RED_A2ADispatcher:SetSquadronCapInterval( "[65th] MiG-29-Su-27 Tonopah", 1, 300, 600 ) RED_A2ADispatcher:SetSquadronCapInterval( "[65th] MiG-23-25 Tonopah", 1, 300, 600 ) MESSAGE:New( "REDFOR AI CAPs ON", 25):ToAll() end -- AI Options -- BLUFOR Air AI Options -- BLUFOR CAPs OFF -- REDFOR Air AI Options GLOBAL_AIOptionsMenu = MENU_MISSION:New("AI Options") GLOBAL_BlueAirAIOptionsMenu = MENU_MISSION:New("BLUFOR Air AI Options", GLOBAL_AIOptionsMenu) GLOBAL_RedAirAIOptionsMenu = MENU_MISSION:New("REDFOR Air AI Options", GLOBAL_AIOptionsMenu) GLOBAL_BlueAirAICAPOffMenu = MENU_MISSION_COMMAND:New( "BLUFOR AI CAPs OFF", GLOBAL_BlueAirAIOptionsMenu, GLOBAL_BlueAirAICAPOff) GLOBAL_BlueAirAICAPOnMenu = MENU_MISSION_COMMAND:New( "BLUFOR AI CAPs ON", GLOBAL_BlueAirAIOptionsMenu, GLOBAL_BlueAirAICAPOn) GLOBAL_RedAirAICAPOffMenu = MENU_MISSION_COMMAND:New( "REDFOR AI CAPs OFF", GLOBAL_RedAirAIOptionsMenu, GLOBAL_RedAirAICAPOff) GLOBAL_RedAirAICAPOnMenu = MENU_MISSION_COMMAND:New( "REDFOR AI CAPs ON", GLOBAL_RedAirAIOptionsMenu, GLOBAL_RedAirAICAPOn) --****************************** --* END GLOBAL MENU OPTIONS * --******************************