diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz index 7800bb0..2c5becc 100644 Binary files a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.2.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.3.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.3.miz new file mode 100644 index 0000000..24075d2 Binary files /dev/null and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.3.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.4.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.4.miz new file mode 100644 index 0000000..fdbe102 Binary files /dev/null and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.4.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.5.miz b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.5.miz new file mode 100644 index 0000000..7ad83b3 Binary files /dev/null and b/DCS_Afgainistan/Insurgent_Sandstorm/F99th-Insurgent_Sandstorm_1.1.5.miz differ diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua index 58039f3..8f9ccc3 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_CTLD.lua @@ -14,8 +14,8 @@ blue_ctld.SetOwnSetPilotGroups(blue_helos) red_ctld.useprefix = false -- (DO NOT SWITCH THIS OFF UNLESS YOU KNOW WHAT YOU ARE DOING!) Adjust **before** starting CTLD. If set to false, *all* choppers of the coalition side will be enabled for CTLD. -red_ctld.CrateDistance = 35 -- List and Load crates in this radius only. -red_ctld.PackDistance = 35 -- Pack crates in this radius only +red_ctld.CrateDistance = 50 -- List and Load crates in this radius only. +red_ctld.PackDistance = 50 -- Pack crates in this radius only red_ctld.dropcratesanywhere = true -- Option to allow crates to be dropped anywhere. red_ctld.dropAsCargoCrate = false -- Parachuted herc cargo is not unpacked automatically but placed as crate to be unpacked. Needs a cargo with the same name defined like the cargo that was dropped. red_ctld.maximumHoverHeight = 15 -- Hover max this high to load. @@ -42,8 +42,8 @@ red_ctld.nobuildinloadzones = true -- forbid players to build stuff in LOAD zone red_ctld.movecratesbeforebuild = false -- crates must be moved once before they can be build. Set to false for direct builds. red_ctld.surfacetypes = {land.SurfaceType.LAND,land.SurfaceType.ROAD,land.SurfaceType.RUNWAY,land.SurfaceType.SHALLOW_WATER} -- surfaces for loading back objects. red_ctld.nobuildmenu = false -- if set to true effectively enforces to have engineers build/repair stuff for you. -red_ctld.RadioSound = "beacon.ogg" -- -- this sound will be hearable if you tune in the beacon frequency. Add the sound file to your miz. -red_ctld.RadioSoundFC3 = "beacon.ogg" -- this sound will be hearable by FC3 users (actually all UHF radios); change to something like "beaconsilent.ogg" and add the sound file to your miz if you don't want to annoy FC3 pilots. +red_ctld.RadioSound = "beaconsilent.ogg" -- -- this sound will be hearable if you tune in the beacon frequency. Add the sound file to your miz. +red_ctld.RadioSoundFC3 = "beaconsilent.ogg" -- this sound will be hearable by FC3 users (actually all UHF radios); change to something like "beaconsilent.ogg" and add the sound file to your miz if you don't want to annoy FC3 pilots. red_ctld.enableChinookGCLoading = true -- this will effectively suppress the crate load and drop for CTLD_CARGO.Enum.STATIc types for CTLD for the Chinook red_ctld.TroopUnloadDistGround = 5 -- If hovering, spawn dropped troops this far away in meters from the helo red_ctld.TroopUnloadDistHover = 1.5 -- If grounded, spawn dropped troops this far away in meters from the helo @@ -52,8 +52,8 @@ red_ctld.TroopUnloadDistGroundHook = 15 -- On the ground, unload troops this far red_ctld.EngineerSearch = 2000 -- Search radius for engineers. blue_ctld.useprefix = false -- (DO NOT SWITCH THIS OFF UNLESS YOU KNOW WHAT YOU ARE DOING!) Adjust **before** starting CTLD. If set to false, *all* choppers of the coalition side will be enabled for CTLD. -blue_ctld.CrateDistance = 35 -- List and Load crates in this radius only. -blue_ctld.PackDistance = 35 -- Pack crates in this radius only +blue_ctld.CrateDistance = 50 -- List and Load crates in this radius only. +blue_ctld.PackDistance = 50 -- Pack crates in this radius only blue_ctld.dropcratesanywhere = true -- Option to allow crates to be dropped anywhere. blue_ctld.dropAsCargoCrate = false -- Parachuted herc cargo is not unpacked automatically but placed as crate to be unpacked. Needs a cargo with the same name defined like the cargo that was dropped. blue_ctld.maximumHoverHeight = 15 -- Hover max this high to load. @@ -64,8 +64,8 @@ blue_ctld.smokedistance = 10000 -- Smoke or flares can be request for zones this blue_ctld.movetroopstowpzone = true -- Troops and vehicles will move to the nearest MOVE zone... blue_ctld.movetroopsdistance = 5000 -- .. but only if this far away (in meters) blue_ctld.suppressmessages = false -- Set to true if you want to script your own messages. -blue_ctld.repairtime = 300 -- Number of seconds it takes to repair a unit. -blue_ctld.buildtime = 300 -- Number of seconds it takes to build a unit. Set to zero or nil to build instantly. +blue_ctld.repairtime = 120 -- Number of seconds it takes to repair a unit. +blue_ctld.buildtime = 120 -- Number of seconds it takes to build a unit. Set to zero or nil to build instantly. blue_ctld.cratecountry = country.id.GERMANY -- ID of crates. Will default to country.id.RUSSIA for RED coalition setups. blue_ctld.allowcratepickupagain = true -- allow re-pickup crates that were dropped. blue_ctld.enableslingload = true -- allow cargos to be slingloaded - might not work for all cargo types @@ -172,72 +172,23 @@ blue_ctld:AddCratesCargo("Patriot Site",{"PATRIOT"},CTLD_CARGO.Enum.CRATE, 6, 50 -- Add 6 Red Load Zones -red_ctld:AddCTLDZone("RedLoadZone1", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, true) -red_ctld:AddCTLDZone("RedLoadZone2", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, true) -red_ctld:AddCTLDZone("RedLoadZone3", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, true) -red_ctld:AddCTLDZone("RedLoadZone4", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, true) -red_ctld:AddCTLDZone("RedLoadZone5", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, true) -red_ctld:AddCTLDZone("RedLoadZone6", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, true) +red_ctld:AddCTLDZone("RedLoadZone1", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, false) +red_ctld:AddCTLDZone("RedLoadZone2", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, false) +red_ctld:AddCTLDZone("RedLoadZone3", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, false) +red_ctld:AddCTLDZone("RedLoadZone4", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, false) +red_ctld:AddCTLDZone("RedLoadZone5", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, false) +red_ctld:AddCTLDZone("RedLoadZone6", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Red, true, false) -- Add 6 Blue Load Zones -blue_ctld:AddCTLDZone("BlueLoadZone1", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, true) -blue_ctld:AddCTLDZone("BlueLoadZone2", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, true) -blue_ctld:AddCTLDZone("BlueLoadZone3", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, true) -blue_ctld:AddCTLDZone("BlueLoadZone4", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, true) -blue_ctld:AddCTLDZone("BlueLoadZone5", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, true) -blue_ctld:AddCTLDZone("BlueLoadZone6", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, true) +blue_ctld:AddCTLDZone("BlueLoadZone1", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, false) +blue_ctld:AddCTLDZone("BlueLoadZone2", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, false) +blue_ctld:AddCTLDZone("BlueLoadZone3", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, false) +blue_ctld:AddCTLDZone("BlueLoadZone4", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, false) +blue_ctld:AddCTLDZone("BlueLoadZone5", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, false) +blue_ctld:AddCTLDZone("BlueLoadZone6", CTLD.CargoZoneType.LOAD, SMOKECOLOR.Blue, true, false) - --- FARP Radio. First one has 130AM name London, next 131 name Dallas, and so forth. -local FARPFreq = 129 -local FARPName = 1 --numbers 1..10 - -local FARPClearnames = { - [1]="London", - [2]="Dallas", - [3]="Paris", - [4]="Moscow", - [5]="Berlin", - [6]="Rome", - [7]="Madrid", - [8]="Warsaw", - [9]="Dublin", - [10]="Perth", - } - -function BuildAFARP(Coordinate) - local coord = Coordinate --Core.Point#COORDINATE - - local FarpNameNumber = ((FARPName-1)%10)+1 -- make sure 11 becomes 1 etc - local FName = FARPClearnames[FarpNameNumber] -- get clear namee - - FARPFreq = FARPFreq + 1 - FARPName = FARPName + 1 - - FName = FName .. " FAT COW "..tostring(FARPFreq).."AM" -- make name unique - - -- Get a Zone for loading - local ZoneSpawn = ZONE_RADIUS:New("FARP "..FName,Coordinate:GetVec2(),150,false) - - -- Spawn a FARP with our little helper and fill it up with resources (10t fuel each type, 10 pieces of each known equipment) - UTILS.SpawnFARPAndFunctionalStatics(FName,Coordinate,ENUMS.FARPType.INVISIBLE,my_ctld.coalition,country.id.USA,FarpNameNumber,FARPFreq,radio.modulation.AM,nil,nil,nil,10,10) - - -- add a loadzone to CTLD - my_ctld:AddCTLDZone("FARP "..FName,CTLD.CargoZoneType.LOAD,SMOKECOLOR.Blue,true,true) - local m = MESSAGE:New(string.format("FARP %s in operation!",FName),15,"CTLD"):ToBlue() -end - -function blue_ctld:OnAfterCratesBuild(From,Event,To,Group,Unit,Vehicle) - local name = Vehicle:GetName() - if string.find(name,"FOB",1,true) then - local Coord = Vehicle:GetCoordinate() - Vehicle:Destroy(false) - BuildAFARP(Coord) - end -end - function blue_ctld:OnAfterTroopsDeployed(From,Event,To,Group,Unit,Troops) if Unit then local PlayerName = Unit:GetPlayerName() @@ -308,6 +259,9 @@ function blue_ctld:OnAfterTroopsDeployed(From,Event,To,Group,Unit,Troops) US_Score:_AddPlayerFromUnit( Unit ) US_Score:AddGoalScore(Unit, "CTLD", string.format("Pilot %s has been awarded %d points for the construction of Units!", PlayerName, points), points) + -- Debugging information + env.info("DEBUG: OnAfterCratesBuild called for Unit: " .. PlayerName .. ", Vehicle: " .. vname) + -- Is this a FOB being built? If so add a Load Zone around the deployed crate. env.info("CRATEBUILD: Is this a fob?: " .. vname,false) if string.match(vname,"FOB",1,true) then @@ -318,7 +272,7 @@ function blue_ctld:OnAfterTroopsDeployed(From,Event,To,Group,Unit,Troops) local fobzone = ZONE_RADIUS:New(zonename,Coord,1000) local fobmarker = MARKER:New(mCoord, "FORWARD OPERATING BASE:\nBUILT BY: " .. PlayerName .. "\n\nTransport Helos may pick up troops and equipment from this location."):ReadOnly():ToCoalition(coalition.side.BLUE) fobzone:DrawZone(2,{.25,.63,.79},1,{0,0,0},0.25,2,true) - blue_ctld:AddCTLDZone(zonename,CTLD.CargoZoneType.LOAD,SMOKECOLOR.Blue,true,true) + blue_ctld:AddCTLDZone(zonename,CTLD.CargoZoneType.LOAD,SMOKECOLOR.Blue,true,false) MESSAGE:New("Pilot " .. PlayerName .. " has created a new loading zone for troops and equipment! See your F10 Map for marker!", msgTime, "[ Mission Info ]", false):ToBlue() else env.info("CRATEBUILD: No! Not a FOB: " .. vname,false) @@ -360,7 +314,7 @@ function blue_ctld:OnAfterTroopsDeployed(From,Event,To,Group,Unit,Troops) if string.find(name,"FOB",1,true) then local Coord = Vehicle:GetCoordinate() Vehicle:Destroy(false) - BuildAFARP(Coord) + BuildRedFARP(Coord) end end @@ -434,6 +388,9 @@ function blue_ctld:OnAfterTroopsDeployed(From,Event,To,Group,Unit,Troops) US_Score:_AddPlayerFromUnit( Unit ) US_Score:AddGoalScore(Unit, "CTLD", string.format("Pilot %s has been awarded %d points for the construction of Units!", PlayerName, points), points) + -- Debugging information + env.info("DEBUG: OnAfterCratesBuild called for Unit: " .. PlayerName .. ", Vehicle: " .. vname) + -- Is this a FOB being built? If so add a Load Zone around the deployed crate. env.info("CRATEBUILD: Is this a fob?: " .. vname,false) if string.match(vname,"FOB",1,true) then diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua index 51c4580..4bf56f8 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_DynamicGroundBattle.lua @@ -101,14 +101,13 @@ local ENABLE_CAPTURE_ZONE_MESSAGES = false -- Enable or disable attack messages local MOVING_INFANTRY_PATROLS = false local ENABLE_WAREHOUSE_MARKERS = true -- Enable or disable the warehouse markers on the map. local UPDATE_MARK_POINTS_SCHED = 60 -- Update the map markers for warehouses every 300 seconds. ENABLE_WAREHOUSE_MARKERS must be set to true for this to work. -local MAX_WAREHOUSE_UNIT_LIST_DISTANCE = 5000 -- Maximum distance to search for units near a warehouse to display on map markers. -- Control Spawn frequency and limits of ground units. local INIT_RED_INFANTRY = 5 -- Initial number of Red Infantry groups local MAX_RED_INFANTRY = 100 -- Maximum number of Red Infantry groups local SPAWN_SCHED_RED_INFANTRY = 1800 -- Spawn Red Infantry groups every 1800 seconds -local INIT_RED_ARMOR = 25 -- Initial number of Red Armor groups +local INIT_RED_ARMOR = 15 -- Initial number of Red Armor groups local MAX_RED_ARMOR = 200 -- Maximum number of Red Armor groups local SPAWN_SCHED_RED_ARMOR = 300 -- Spawn Red Armor groups every 300 seconds @@ -116,7 +115,7 @@ local INIT_BLUE_INFANTRY = 5 -- Initial number of Blue Infantry groups local MAX_BLUE_INFANTRY = 100 -- Maximum number of Blue Infantry groups local SPAWN_SCHED_BLUE_INFANTRY = 1800 -- Spawn Blue Infantry groups every 1800 seconds -local INIT_BLUE_ARMOR = 25 -- Initial number of Blue Armor groups0 +local INIT_BLUE_ARMOR = 15 -- Initial number of Blue Armor groups0 local MAX_BLUE_ARMOR = 200 -- Maximum number of Blue Armor groups local SPAWN_SCHED_BLUE_ARMOR = 300 -- Spawn Blue Armor groups every 300 seconds diff --git a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua index 84cbacc..252704f 100644 --- a/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua +++ b/DCS_Afgainistan/Insurgent_Sandstorm/Moose_InsurgentSandstorm.lua @@ -1,5 +1,11 @@ +local ENABLE_SAMS = false -- used for testing purposes. Set to true to enable SAMs, false to disable. local TAC_DISPLAY = true -- Set to false to disable Tacview display for AI flights (default = false) +-- How many red/blue aircraft are in the air by default. +local RedA2ADefaultOverhead = 1.5 +local RedDefaultCAP = 2 +local BlueA2ADefaultOverhead = 1.5 +local BlueDefaultCAP = 2 --Build Command Center and Mission for Blue US_CC = COMMANDCENTER:New( GROUP:FindByName( "BLUEHQ" ), "USA HQ" ) @@ -22,11 +28,6 @@ RU_Score:SetMessagesDestroy(false) RU_Score:SetMessagesScore(false) --- How many red/blue aircraft are in the air by default. -local RedA2ADefaultOverhead = 1.5 -local BlueA2ADefaultOverhead = 1 - - PlayerClients = SET_PLAYER:New():FilterStart() :HandleEvent( EVENTS.Crash ) function PlayerClients:OnEventCrash( EventData ) @@ -99,76 +100,89 @@ local RED_AA_ZONES = { -- but if the group has 5 units, and you put 5, only 1 will spawn..if you only put 4, it will never spawn. -- If you put 10, 2 of them will spawn, etc etc. -RED_SA08 = SPAWN:New("RED EWR SA08") - :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(5, 5) - :SpawnScheduled(1, 0.5) +if ENABLE_SAMS then + RED_SA08 = SPAWN:New("RED EWR SA08") + :InitRandomizeZones(RED_AA_ZONES) + :InitLimit(8, 8) + :SpawnScheduled(1, 0.5) --- There are 18 units in this group. Need space for each one in the numbers. So if I want 3 SA10s i'm just rounding up to 60. -RED_SA10 = SPAWN:New("RED EWR AA-SA10-1") - :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(60, 60) - :SpawnScheduled(1, 0.5) + -- There are 18 units in this group. Need space for each one in the numbers. So if I want 3 SA10s i'm just rounding up to 60. + RED_SA10 = SPAWN:New("RED EWR AA-SA10-1") + :InitRandomizeZones(RED_AA_ZONES) + :InitLimit(60, 60) + :SpawnScheduled(1, 0.5) --- There are 12 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 48 -RED_SA11 = SPAWN:New("RED EWR AA SA112-1") - :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(48, 48) - :SpawnScheduled(1, 0.5) + -- There are 12 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 48 + RED_SA11 = SPAWN:New("RED EWR AA SA112-1") + :InitRandomizeZones(RED_AA_ZONES) + :InitLimit(36, 36) + :SpawnScheduled(1, 0.5) --- There are 11 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 44 -RED_SA06 = SPAWN:New("RED EWR SA6") - :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(44, 44) - :SpawnScheduled(1, 0.5) + -- There are 11 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 44 + RED_SA06 = SPAWN:New("RED EWR SA6") + :InitRandomizeZones(RED_AA_ZONES) + :InitLimit(33, 33) + :SpawnScheduled(1, 0.5) -RED_SA02 = SPAWN:New("RED EWR SA2") - :InitRandomizeZones(RED_AA_ZONES) - :InitLimit(90, 90) - :SpawnScheduled(1, 0.5) + RED_SA02 = SPAWN:New("RED EWR SA2") + :InitRandomizeZones(RED_AA_ZONES) + :InitLimit(60, 60) + :SpawnScheduled(1, 0.5) +end + +--[[ +AI_A2A_GCICAP:New(EWRPrefixes, TemplatePrefixes, CapPrefixes, CapLimit, GroupingRadius, EngageRadius, GciRadius, ResourceCount) +]] -- Setup Air Dispatchers for RED and BLUE BLUEBorderZone = ZONE_POLYGON:New( "BLUE BORDER", GROUP:FindByName( "BLUE BORDER" ) ) -BLUEA2ADispatcher = AI_A2A_GCICAP:New( { "BLUE EWR" }, { "FIGHTER SWEEP BLUE" }, { "BLUE BORDER" }, BLUEBorderZone ) +BLUEA2ADispatcher = AI_A2A_GCICAP:NewWithBorder( { "BLUE EWR" }, { "FIGHTER SWEEP BLUE" }, 'BLUE BORDER', 'BLUE BORDER', BlueDefaultCAP, 10000, 50000, 75000, 100) BLUEA2ADispatcher:SetDefaultLandingAtEngineShutdown() -BLUEA2ADispatcher:SetDefaultTakeoffFromParkingHot() -BLUEA2ADispatcher:SetBorderZone( BLUEBorderZone ) BLUEA2ADispatcher:SetTacticalDisplay(TAC_DISPLAY) BLUEA2ADispatcher:SetDefaultFuelThreshold( 0.20 ) BLUEA2ADispatcher:SetRefreshTimeInterval( 300 ) BLUEA2ADispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) +BLUEA2ADispatcher:SetDisengageRadius( 100000 ) +BLUEA2ADispatcher:SetEngageRadius( 50000 ) +BLUEA2ADispatcher:SetGciRadius( 75000 ) CCCPBorderZone = ZONE_POLYGON:New( "RED BORDER", GROUP:FindByName( "RED BORDER" ) ) -RedA2ADispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "FIGHTER SWEEP RED" }, { "RED BORDER" }, CCCPBorderZone ) +RedA2ADispatcher = AI_A2A_GCICAP:NewWithBorder( { "RED EWR" }, { "FIGHTER SWEEP RED" }, "RED BORDER", "RED BORDER", RedDefaultCAP, 10000, 50000, 75000, 100) RedA2ADispatcher:SetDefaultLandingAtEngineShutdown() -RedA2ADispatcher:SetDefaultTakeoffFromParkingHot() -RedA2ADispatcher:SetBorderZone( CCCPBorderZone ) RedA2ADispatcher:SetTacticalDisplay(TAC_DISPLAY) RedA2ADispatcher:SetDefaultFuelThreshold( 0.20 ) RedA2ADispatcher:SetRefreshTimeInterval( 300 ) RedA2ADispatcher:SetDefaultOverhead(RedA2ADefaultOverhead) +RedA2ADispatcher:SetDisengageRadius( 100000 ) +RedA2ADispatcher:SetEngageRadius( 50000 ) +RedA2ADispatcher:SetGciRadius( 75000 ) + DwyerBorderZone = ZONE_POLYGON:New( "DwyerBorderZone", GROUP:FindByName( "DwyerBorderZone" ) ) -DwyerDispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "DwyerBorderCAP" }, { "DwyerBorderZone" }, DwyerBorderZone ) +DwyerDispatcher = AI_A2A_GCICAP:NewWithBorder( { "RED EWR" }, { "DwyerBorderCAP" }, "DwyerBorderZone", "DwyerBorderZone", RedDefaultCAP, 10000, 50000, 75000, 100) DwyerDispatcher:SetDefaultLandingAtEngineShutdown() -DwyerDispatcher:SetDefaultTakeoffFromParkingHot() DwyerDispatcher:SetBorderZone( DwyerBorderZone ) DwyerDispatcher:SetTacticalDisplay(TAC_DISPLAY) DwyerDispatcher:SetDefaultFuelThreshold( 0.20 ) DwyerDispatcher:SetRefreshTimeInterval( 300 ) -DwyerDispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) +DwyerDispatcher:SetDefaultOverhead(RedA2ADefaultOverhead) +DwyerDispatcher:SetDisengageRadius( 100000 ) +DwyerDispatcher:SetEngageRadius( 50000 ) +DwyerDispatcher:SetGciRadius( 75000 ) BostZone = ZONE_POLYGON:New( "BostBorderZone", GROUP:FindByName( "BostBorderZone" ) ) -BostDispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "BostBorderCAP" }, { "BostBorderZone" }, BostZone ) +BostDispatcher = AI_A2A_GCICAP:NewWithBorder( { "RED EWR" }, { "BostBorderCAP" }, "BostBorderZone", "BostBorderZone", RedDefaultCAP, 10000, 50000, 75000, 100) BostDispatcher:SetDefaultLandingAtEngineShutdown() -BostDispatcher:SetDefaultTakeoffFromParkingHot() BostDispatcher:SetBorderZone(BostZone) BostDispatcher:SetTacticalDisplay(TAC_DISPLAY) BostDispatcher:SetDefaultFuelThreshold( 0.20 ) BostDispatcher:SetRefreshTimeInterval( 300 ) -BostDispatcher:SetDefaultOverhead(BlueA2ADefaultOverhead) +BostDispatcher:SetDefaultOverhead(RedA2ADefaultOverhead) +BostDispatcher:SetDisengageRadius( 100000 ) +BostDispatcher:SetEngageRadius( 50000 ) +BostDispatcher:SetGciRadius( 75000 ) -- There are 12 units in this group. Need space for each one in the numbers. So if I want 4 SA11s i'm just rounding up to 48 Blue_Drone = SPAWN:New("BLUE DRONE") @@ -178,3 +192,12 @@ Blue_Drone = SPAWN:New("BLUE DRONE") -- Create the main mission menu. missionMenu = MENU_MISSION:New("Mission Menu") + +-- Spawn the RED Bunker Buster +Red_Bunker_Buster = SPAWN:New("BUNKER BUSTER") + :InitLimit(1, 99) + :SpawnScheduled(900, 0.5) + +Red_Bunker_Buster2 = SPAWN:New("BUNKER BUSTER-1") + :InitLimit(1, 99) + :SpawnScheduled(1800, 0.5) \ No newline at end of file