2024-11-12 14:18:28 -06:00

754 lines
31 KiB
Lua

--[[
Iron Hand by F99Th-TracerFacer
This is a DSMC Compatible Mission. Persitance will be enabled on servers with the
DSMC mod installed. No saving is done while players are on the server. All players must log off!
and the server shutdown before a new mission file is made.
Due to the way triggers don't work quiet right we have to come up with another way of
loading the ground units ONLY ONCE - and never again on subsequent mission loads. I've tried
various automated ways of doing this but in the end it has to be controlled manually by 1 of 2 ways.
1. I run the mission, save the scenery once, open newly created mission file in ME and remove setup script.
upload this to the server and this is what gets played on a daily basis. This causes several problems
but mostly with ground units who will lose their routes in the new mission. I don't like this.
OR (THE WAY WE WILL DO IT FOR NOW UNTIL I GET SMARTER)
2. We use some F10 menus to present 1 player (F99th-MISSION COMMANDER) with a special menu. Only F99th- players will be allowed into this slot.
This menu will have 2 options:
1. Warn the Players they should all log off. (shut down the server after this and a new
mission file will be created with time/date/weather reset) Do this on a populated server that
you want to shut down.
2. Populate the mission with initial objects. You must do this at least once on first mission run.
This should only be done once. Once you use this option the menu item is removed, however on
subsequent mission loads .002, .003, .004, etc - this menu item will still show up.
DO NOT USE IT IF IT'S NOT THE FIRST RUN OF THE MISSION. IT WILL POPULATE THE MAP AGAIN.
MENU WILL AUTOMATICALLY DISAPPEAR AFTER 5 MINS TO PREVENT IDIOCY.
** If you do this on accident, just load the previous mission file and don't be stupid twice. =] **
--]]
_SETTINGS:SetPlayerMenuOff()
HQ = GROUP:FindByName( "HQ", "Bravo HQ" )
CommandCenter = COMMANDCENTER:New( HQ, "Bravo" )
RedHQ = GROUP:FindByName( "RedHQ", "RedHQ" )
RedCC = COMMANDCENTER:New( HQ, "RedHQ" )
Scoring = SCORING:New( "Iron Hand" )
SoundRadioMsg = USERSOUND:New("l10n/DEFAULT/beeps-and-clicks.wav")
--Setup the RedA2A dispatcher, and initialize it.
CCCPBorderZone = ZONE_POLYGON:New( "RED BORDER", GROUP:FindByName( "RED BORDER" ) )
RedA2ADispatcher = AI_A2A_GCICAP:New( { "RED EWR" }, { "FIGHTER SWEEP RED" }, { "RED BORDER" }, 6 )
RedA2ADispatcher:SetDefaultLandingAtRunway()
RedA2ADispatcher:SetDefaultTakeoffFromParkingCold()
RedA2ADispatcher:SetBorderZone( CCCPBorderZone )
RedA2ADispatcher:SetTacticalDisplay(false)
RedA2ADispatcher:SetDefaultFuelThreshold( 0.35 )
RedA2ADispatcher:SetRefreshTimeInterval( 420 )
RedA2ADispatcher:SetDefaultOverhead(.75)
RedA2ADispatcher:SetDefaultCapLimit(6)
-- Spawn Some Trains
Spawn_TanksFromTrainGudauta = SPAWN:New("TANKSFROMTRAINTOGUDAUTA")
:InitLimit(6,6)
Spawn_Train_TOGUDAUTA = SPAWN:New("TRAINTOGUDAUTA")
:InitLimit(1,5)
:SpawnScheduled( 8000, .3 )
-- Spawned via mission trigger with :Spawn()
Spawn_Train_ArtyKobuleti = SPAWN:New("Train_ArtyKobuleti")
Spawn_ArtyKobuleti = SPAWN:New("ARTY-KOBULETI")
:InitLimit(7,7)
-- Spawn Batumi Speed Boat
Spawn_Batumi_Speedboat = SPAWN:New("RU-BATUMI-SPEEDBOAT")
:InitRandomizeRoute(1,103,1000)
:InitLimit(5,25)
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_1 = SPAWN:New("WAREHOUSE CONVOY-1")
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_2 = SPAWN:New("WAREHOUSE CONVOY-2")
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_3 = SPAWN:New("WAREHOUSE CONVOY-3")
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_4 = SPAWN:New("WAREHOUSE CONVOY-4")
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_5 = SPAWN:New("WAREHOUSE CONVOY-5")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_6 = SPAWN:New("WAREHOUSE CONVOY-6")
:InitRandomizeRoute(0,17,2000)
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_7 = SPAWN:New("WAREHOUSE CONVOY-7")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_8 = SPAWN:New("WAREHOUSE CONVOY-8")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 2400, .3 )
--Spawn Moving Ground Units - Stop these from spawning if warehouse is blown up.
Spawn_Moving_CONVOY_SOCHI_1 = SPAWN:New("CONVOY-SOCHI-1")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 5000, .3 )
Spawn_Moving_CONVOY_SOCHI_2 = SPAWN:New("CONVOY-SOCHI-2")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 5000, .3 )
Spawn_Moving_CONVOY_SUKUMI_1 = SPAWN:New("CONVOY-SUKHUMI-1")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 5000, .3 )
Spawn_Moving_CONVOY_SUKUMI_2 = SPAWN:New("CONVOY-SUKHUMI-2")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 5000, .3 )
Spawn_Moving_CONVOY_GUDAUTA_1 = SPAWN:New("CONVOY-GUDAUTA-1")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 5000, .3 )
Spawn_Moving_CONVOY_GUDAUTA_2 = SPAWN:New("CONVOY-GUDAUTA-2")
:InitRandomizeRoute(0,14,2000)
:InitLimit(6, 50)
:SpawnScheduled( 5000, .3 )
-- C130 PROTECTION MISSION STATUS MESSAGES- this mission starts when Sochi, Gudauta and Sukumi are taken by Blue.
local TankerPilotSupply = UNIT:FindByName("TANKER PILOT SUPPLY")
TankerPilotSupply:HandleEvent(EVENTS.Birth)
function TankerPilotSupply:OnEventBirth(EventData)
TankerPilotSupply:MessageToBlue("[ ESCORT MISSION ]\n\nTHIS IS CAPT. OBVIOUS, REQUESTING IMMEDIATE ESCORT FROM KRASNADOR TO SOCHI.\n\nCARGO ONBOARD: PILOTS FOR THE TANKERS LOCATED AT SOCHI!\n\n", 15)
SoundRadioMsg:ToCoalition(coalition.side.BLUE)
end
-- TankerPilotSupply:HandleEvent(EVENTS.EngineStartup)
-- function TankerPilotSupply:OnEventEngineStartup(EventData)
-- TankerPilotSupply:MessageToBlue("[ CAPT. OBVIOUS KRASNADOR C-130 ]\n\nEngines are running, we are taxing.\n\nETA: 30 mins.\nCargo: Tanker Pilots\nDestination: Sochi\n", 15)
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
TankerPilotSupply:HandleEvent(EVENTS.Hit)
function TankerPilotSupply:OnEventHit(EventData)
TankerPilotSupply:MessageToBlue("[ CAPT. OBVIOUS C-130 INBOUND TO SOCHI]\n\nWe are taking fire!! Mayday Mayday!", 15)
SoundRadioMsg:ToCoalition(coalition.side.BLUE)
end
TankerPilotSupply:HandleEvent(EVENTS.Crash)
function TankerPilotSupply:OnEventCrash(EventData)
TankerPilotSupply:MessageToBlue("[ TANKER MISSION FAILURE ]\n\nThe C-130 that was carrying the pilots for our tankers has been shot down! No tankers will be available for the remainder of the mission!", 30)
SoundRadioMsg:ToCoalition(coalition.side.BLUE)
end
TankerPilotSupply:HandleEvent(EVENTS.Land)
function TankerPilotSupply:OnEventLand(EventData)
TankerPilotSupply:MessageToBlue("[ CAPT. OBVIOUS C130 @ SOCHI ]\n\nWe have landed. Tanker pilots have been delivered. Tankers will be starting up soon!", 15)
SoundRadioMsg:ToCoalition(coalition.side.BLUE)
end
-----------Spawn AWACS------------------------------
Spawn_BlueEWR = SPAWN:New("BLUE EWR"):InitLimit( 1, 50 )
:InitRepeatOnEngineShutDown()
:InitCleanUp(120)
:SpawnScheduled(300,.3)
-----------Spawn AWACS CVN---------------------------
Spawn_BlueEWR = SPAWN:New("BLUE EWR MAGIC"):InitLimit( 1, 50 )
:InitRepeatOnEngineShutDown()
:InitCleanUp(120)
:SpawnScheduled(300,.3)
Spawn_RedEWR = SPAWN:New("RED EWR"):InitLimit( 1, 50 )
:InitRepeatOnEngineShutDown()
:InitCleanUp(120)
:SpawnScheduled(300,.4)
-- Spawn Tankers (after Sochi, Gudauta and Sukhumi are captured.
Spawn_Blue135 = SPAWN:New("Shell SHL 42 X 253am"):InitLimit( 1, 50 )
:InitRepeatOnEngineShutDown()
:InitCleanUp(120)
Spawn_Blue135MPRS = SPAWN:New("Texaco TEX 41 X 252am"):InitLimit( 1, 50 )
:InitRepeatOnEngineShutDown()
:InitCleanUp(120)
--:SpawnScheduled(300,.3) -- TURN ON WITH MISSION TRIGGER INSTEAD
Spawn_MaykopBombers = SPAWN:New("MAYKOP BOMBER")
:InitLimit(4, 50)
:InitCleanUp(120)
-- Spawn_MaykopBombers:SpawnScheduled(1200,.2) -- TURN ON IN ME WHEN MAYKOP IS TAKEN
-- Recovery Tanker
-- S-3B at USS Stennis spawning on deck.
local CVNRecoveryTanker=RECOVERYTANKER:New("CVN-71 Theodore Roosevelt", "Arco ARC 43 Y 253am")
-- Custom settings for radio frequency, TACAN, callsign and modex.
CVNRecoveryTanker:SetRadio(253)
CVNRecoveryTanker:SetTACAN(43, "ARC")
CVNRecoveryTanker:SetCallsign(CALLSIGN.Tanker.Arco, 3)
CVNRecoveryTanker:SetModex(0) -- "Triple nuts"
-- Start recovery tanker.
-- NOTE: If you spawn on deck, it seems prudent to delay the spawn a bit after the mission starts.
CVNRecoveryTanker:__Start(1)
-- Base Capture Events & Functions
-- Beslan
CaptureBeslan = AIRBASE:FindByName("Beslan")
CaptureBeslan:HandleEvent(EVENTS.BaseCaptured)
function CaptureBeslan:OnEventBaseCaptured(EventData)
local coa = CaptureBeslan:GetCoalition()
-- To a specific coalition.
if coa == 1 then -- red
--SoundRadioMsg:ToCoalition(coalition.side.RED)
local RadioMessage = MESSAGE:New("Failure! Beslan has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
--SoundRadioMsg:ToCoalition(coalition.side.BLUE)
local RadioMessage = MESSAGE:New("Beslan has been captured by NATO! You may now use the Aircraft at this Airbase. ",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("Beslan-1",0)
trigger.action.setUserFlag("Beslan-2",0)
trigger.action.setUserFlag("Beslan-3",0)
trigger.action.setUserFlag("Beslan-4",0)
trigger.action.setUserFlag("Beslan-5",0)
trigger.action.setUserFlag("Beslan-6",0)
trigger.action.setUserFlag("Beslan-7",0)
trigger.action.setUserFlag("Beslan-8",0)
trigger.action.setUserFlag("BESLAN-UH1-1",0)
trigger.action.setUserFlag("BESLAN-UH1-2",0)
trigger.action.setUserFlag("BESLAN-MI8-1",0)
trigger.action.setUserFlag("BESLAN-MI8-2",0)
trigger.action.setUserFlag("BESLAN-HIND-1",0)
trigger.action.setUserFlag("BESLAN-HIND-2",0)
trigger.action.setUserFlag("BESLAN-APACHE-1",0)
trigger.action.setUserFlag("BESLAN-APACHE-2",0)
trigger.action.setUserFlag("BESLAN-GAZ-1",0)
trigger.action.setUserFlag("BESLAN-GAZ-2",0)
trigger.action.setUserFlag("BESLAN-GAZ-3",0)
trigger.action.setUserFlag("BESLAN-GAZ-4",0)
trigger.action.setUserFlag("BESLAN-KA50-1",0)
trigger.action.setUserFlag("BESLAN-KA50-2",0)
-- Figure out how to add smoke effects?
end
end
-- Kolkhi
CaptureKolkhi = AIRBASE:FindByName("Senaki-Kolkhi")
CaptureKolkhi:HandleEvent(EVENTS.BaseCaptured)
function CaptureKolkhi:OnEventBaseCaptured(EventData)
local coa = CaptureKolkhi:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Kolkhi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Congratulations! Kolkhi has been captured by NATO! You may now use the Aircraft at this Airbase.",5,"[ MISSION PROGRESS ]", false):ToBlue()
--Enable Blue
trigger.action.setUserFlag("KOLKHI-MI8-1",0)
trigger.action.setUserFlag("KOLKHI-MI8-2",0)
trigger.action.setUserFlag("KOLKHI-UH1-1",0)
trigger.action.setUserFlag("KOLKHI-UH1-2",0)
--Disable Red
trigger.action.setUserFlag("Kolkhi-1",100)
trigger.action.setUserFlag("Kolkhi-2",100)
trigger.action.setUserFlag("Kolkhi-3",100)
trigger.action.setUserFlag("Kolkhi-4",100)
trigger.action.setUserFlag("Kolkhi-5",100)
trigger.action.setUserFlag("Kolkhi-6",100)
end
end
-- Kobuleti
CaptureKobuleti = AIRBASE:FindByName("Kobuleti")
CaptureKobuleti:HandleEvent(EVENTS.BaseCaptured)
function CaptureKobuleti:OnEventBaseCaptured(EventData)
local coa = CaptureKobuleti:GetCoalition()
-- To a specific coalition.
if coa == 1 then -- red
--SoundRadioMsg:ToCoalition(coalition.side.RED)
local RadioMessage = MESSAGE:New("Failure! Kobuleti has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
--SoundRadioMsg:ToCoalition(coalition.side.BLUE)
local RadioMessage = MESSAGE:New("Congratulations! Kobuleti has been captured by NATO! You may now use the Aircraft at this Airbase.",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("KOBULETI-MI8-1",0)
trigger.action.setUserFlag("KOBULETI-MI8-2",0)
trigger.action.setUserFlag("KOBULETI-UH1-1",0)
trigger.action.setUserFlag("KOBULETI-UH1-2",0)
-- Figure out how to add smoke effects?
end
end
-- Sukhumi
CaptureSukhumi = AIRBASE:FindByName("Sukhumi-Babushara")
CaptureSukhumi:HandleEvent(EVENTS.BaseCaptured)
function CaptureSukhumi:OnEventBaseCaptured(EventData)
local coa = CaptureSukhumi:GetCoalition()
-- To a specific coalition.
if coa == 1 then -- red
--SoundRadioMsg:ToCoalition(coalition.side.RED)
local RadioMessage = MESSAGE:New("Failure! Sukhumi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
--SoundRadioMsg:ToCoalition(coalition.side.BLUE)
local RadioMessage = MESSAGE:New("Sukhumi has been captured by NATO! You may now use the Aircraft at this Airbase.",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("Sukhumi-1",0)
trigger.action.setUserFlag("Sukhumi-2",0)
trigger.action.setUserFlag("Sukhumi-3",0)
trigger.action.setUserFlag("Sukhumi-4",0)
trigger.action.setUserFlag("Sukhumi-5",0)
trigger.action.setUserFlag("Sukhumi-6",0)
trigger.action.setUserFlag("Sukhumi-7",0)
trigger.action.setUserFlag("Sukhumi-8",0)
trigger.action.setUserFlag("Sukhumi-9",0)
trigger.action.setUserFlag("Sukhumi-10",0)
trigger.action.setUserFlag("Sukhumi-11",0)
trigger.action.setUserFlag("SUKHUMI-MI8-1",0)
trigger.action.setUserFlag("SUKHUMI-MI8-2",0)
trigger.action.setUserFlag("SUKHUMI-UH1-1",0)
trigger.action.setUserFlag("SUKHUMI-UH1-2",0)
-- Figure out how to add smoke effects?
end
end
-- Gudauta
CaptureGudauta = AIRBASE:FindByName("Gudauta")
CaptureGudauta:HandleEvent(EVENTS.BaseCaptured)
function CaptureGudauta:OnEventBaseCaptured(EventData)
local coa = CaptureGudauta:GetCoalition()
-- To a specific coalition.
if coa == 1 then -- red
--SoundRadioMsg:ToCoalition(coalition.side.RED)
local RadioMessage = MESSAGE:New("Failure! Gudauta has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
--SoundRadioMsg:ToCoalition(coalition.side.BLUE)
local RadioMessage = MESSAGE:New("Gudauta has been captured by NATO! You may now use the Aircraft at this Airbase.",5,"[ MISSION PROGRESS ]", false):ToBlue()
--Enable Blue
trigger.action.setUserFlag("GUDAUTA-MI8-1",0)
trigger.action.setUserFlag("GUDAUTA-MI8-2",0)
trigger.action.setUserFlag("GUDAUTA-UH1-1",0)
trigger.action.setUserFlag("GUDAUTA-UH1-2",0)
trigger.action.setUserFlag("GUDAUTA-MIRAGE-1",0)
trigger.action.setUserFlag("GUDAUTA-MIRAGE-2",0)
--Diable Red
trigger.action.setUserFlag("Gudauta-1",100)
trigger.action.setUserFlag("Gudauta-2",100)
trigger.action.setUserFlag("Gudauta-3",100)
trigger.action.setUserFlag("Gudauta-4",100)
end
end
-- Sochi
CaptureSochi = AIRBASE:FindByName("Sochi-Adler")
CaptureSochi:HandleEvent(EVENTS.BaseCaptured)
function CaptureSochi:OnEventBaseCaptured(EventData)
local coa = CaptureSochi:GetCoalition()
-- To a specific coalition.
if coa == 1 then -- red
--SoundRadioMsg:ToCoalition(coalition.side.RED)
local RadioMessage = MESSAGE:New("Failure! Sochi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
--SoundRadioMsg:ToCoalition(coalition.side.BLUE)
local RadioMessage = MESSAGE:New("Sochi has been captured by NATO! You may now use the Aircraft at this Airbase.",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("Sochi-1",0)
trigger.action.setUserFlag("Sochi-2",0)
trigger.action.setUserFlag("Sochi-3",0)
trigger.action.setUserFlag("Sochi-4",0)
trigger.action.setUserFlag("Sochi-5",0)
trigger.action.setUserFlag("Sochi-6",0)
trigger.action.setUserFlag("Sochi-7",0)
trigger.action.setUserFlag("Sochi-8",0)
trigger.action.setUserFlag("Sochi-9",0)
trigger.action.setUserFlag("Sochi-10",0)
trigger.action.setUserFlag("Sochi-11",0)
trigger.action.setUserFlag("SOCHI-APACHE-1",0)
trigger.action.setUserFlag("SOCHI-APACHE-2",0)
trigger.action.setUserFlag("SOCHI-APACHE-3",0)
trigger.action.setUserFlag("SOCHI-APACHE-4",0)
trigger.action.setUserFlag("SOCHI-HIND-1",0)
trigger.action.setUserFlag("SOCHI-HIND-2",0)
trigger.action.setUserFlag("SOCHI-HIND-3",0)
trigger.action.setUserFlag("SOCHI-HIND-4",0)
trigger.action.setUserFlag("SOCHI-MI8-1",0)
trigger.action.setUserFlag("SOCHI-MI8-2",0)
trigger.action.setUserFlag("SOCHI-UH1-1",0)
trigger.action.setUserFlag("SOCHI-UH1-2",0)
trigger.action.setUserFlag("SOCHI-GAZ-1",0)
trigger.action.setUserFlag("SOCHI-GAZ-2",0)
trigger.action.setUserFlag("SOCHI-GAZ-3",0)
trigger.action.setUserFlag("SOCHI-GAZ-4",0)
trigger.action.setUserFlag("SOCHI-KA50-1",0)
trigger.action.setUserFlag("SOCHI-KA50-2",0)
trigger.action.setUserFlag("SOCHI-KA50-3",0)
trigger.action.setUserFlag("SOCHI-KA50-4",0)
-- Figure out how to add smoke effects?
end
end
-- Mozdok
CaptureMozdok = AIRBASE:FindByName("Mozdok")
CaptureMozdok:HandleEvent(EVENTS.BaseCaptured)
function CaptureMozdok:OnEventBaseCaptured(EventData)
local coa = CaptureMozdok:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Mozdok has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Mozdok has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
end
end
-- Nalchik
CaptureNalchik = AIRBASE:FindByName("Nalchik")
CaptureNalchik:HandleEvent(EVENTS.BaseCaptured)
function CaptureNalchik:OnEventBaseCaptured(EventData)
local coa = CaptureNalchik:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Nalchik has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Nalchik has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
end
end
-- Kobuleti
CaptureKobuleti = AIRBASE:FindByName("Kobuleti")
CaptureKobuleti:HandleEvent(EVENTS.BaseCaptured)
function CaptureKobuleti:OnEventBaseCaptured(EventData)
local coa = CaptureKobuleti:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Kobuleti has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Kobuleti has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("KOBULETI-MI8-1",0)
trigger.action.setUserFlag("KOBULETI-MI8-2",0)
trigger.action.setUserFlag("KOBULETI-UH1-1",0)
trigger.action.setUserFlag("KOBULETI-UH1-2",0)
end
end
-- Maykop
CaptureMaykop = AIRBASE:FindByName("Maykop-Khanskaya")
CaptureMaykop:HandleEvent(EVENTS.BaseCaptured)
function CaptureMaykop:OnEventBaseCaptured(EventData)
local coa = CaptureMaykop:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Maykop has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Maykop has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("Maykop-1",0)
trigger.action.setUserFlag("Maykop-2",0)
trigger.action.setUserFlag("Maykop-3",0)
trigger.action.setUserFlag("Maykop-4",0)
trigger.action.setUserFlag("Maykop-5",0)
trigger.action.setUserFlag("Maykop-6",0)
end
end
-- Kutaisi
CaptureKutaisi = AIRBASE:FindByName("Kutaisi")
CaptureKutaisi:HandleEvent(EVENTS.BaseCaptured)
function CaptureKutaisi:OnEventBaseCaptured(EventData)
local coa = CaptureKutaisi:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Kutaisi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Kutaisi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("Kutaisi-1",0)
trigger.action.setUserFlag("Kutaisi-2",0)
trigger.action.setUserFlag("Kutaisi-3",0)
trigger.action.setUserFlag("Kutaisi-4",0)
trigger.action.setUserFlag("Kutaisi-5",0)
trigger.action.setUserFlag("Kutaisi-6",0)
trigger.action.setUserFlag("Kutaisi-7",0)
trigger.action.setUserFlag("Kutaisi-8",0)
trigger.action.setUserFlag("Kutaisi-9",0)
trigger.action.setUserFlag("Kutaisi-10",0)
trigger.action.setUserFlag("Kutaisi-11",0)
trigger.action.setUserFlag("Kutaisi-12",0)
end
end
-- Mineralnye Vody
CaptureVody = AIRBASE:FindByName("Mineralnye Vody")
CaptureVody:HandleEvent(EVENTS.BaseCaptured)
function CaptureVody:OnEventBaseCaptured(EventData)
local coa = CaptureVody:GetCoalition()
if coa == 1 then -- red
local RadioMessage = MESSAGE:New("Failure! Mineralnye Vody has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
local RadioMessage = MESSAGE:New("Mineralnye Vody has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
end
end
-- Batumi
CaptureBatumi = AIRBASE:FindByName("Batumi")
CaptureBatumi:HandleEvent(EVENTS.BaseCaptured)
function CaptureBatumi:OnEventBaseCaptured(EventData)
local coa = CaptureBatumi:GetCoalition()
-- To a specific coalition.
if coa == 1 then -- red
--SoundRadioMsg:ToCoalition(coalition.side.RED)
local RadioMessage = MESSAGE:New("Failure! Batumi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToRed()
elseif coa == 2 then -- blue
--SoundRadioMsg:ToCoalition(coalition.side.BLUE)
local RadioMessage = MESSAGE:New("Batumi has been captured by NATO!",5,"[ MISSION PROGRESS ]", false):ToBlue()
trigger.action.setUserFlag("Batumi-1",0)
trigger.action.setUserFlag("Batumi-2",0)
trigger.action.setUserFlag("Batumi-3",0)
trigger.action.setUserFlag("Batumi-4",0)
trigger.action.setUserFlag("Batumi-5",0)
trigger.action.setUserFlag("Batumi-6",0)
trigger.action.setUserFlag("BATUMI-APACHE-1",0)
trigger.action.setUserFlag("BATUMI-APACHE-2",0)
trigger.action.setUserFlag("BATUMI-APACHE-3",0)
trigger.action.setUserFlag("BATUMI-APACHE-4",0)
trigger.action.setUserFlag("BATUMI-HIND-1",0)
trigger.action.setUserFlag("BATUMI-HIND-2",0)
trigger.action.setUserFlag("BATUMI-HIND-3",0)
trigger.action.setUserFlag("BATUMI-HIND-4",0)
trigger.action.setUserFlag("BATUMI-UH1-1",0)
trigger.action.setUserFlag("BATUMI-UH1-2",0)
trigger.action.setUserFlag("BATUMI-UH1-3",0)
trigger.action.setUserFlag("BATUMI-UH1-4",0)
trigger.action.setUserFlag("BATUMI-GAZ-1",0)
trigger.action.setUserFlag("BATUMI-GAZ-2",0)
trigger.action.setUserFlag("BATUMI-GAZ-3",0)
trigger.action.setUserFlag("BATUMI-GAZ-4",0)
trigger.action.setUserFlag("BATUMI-MI8-1",0)
trigger.action.setUserFlag("BATUMI-MI8-2",0)
trigger.action.setUserFlag("BATUMI-MI8-3",0)
trigger.action.setUserFlag("BATUMI-MI8-4",0)
trigger.action.setUserFlag("BATUMI-KA50-1",0)
trigger.action.setUserFlag("BATUMI-KA50-2",0)
trigger.action.setUserFlag("BATUMI-KA50-3",0)
trigger.action.setUserFlag("BATUMI-KA50-4",0)
-- Figure out how to add smoke effects?
end
end
-- Clean = CLEANUP_AIRBASE:New( AIRBASE.Caucasus.Batumi )
-- Clean:SetCleanMissiles( false )
-- I don't know why this crap doesn't work. Well it works, but the onbrith or startup events keep happening
-- even though the plane is already alive. Update: happens when each new player logs in - all the events fire. =/ lame.
---- Messages for AWACS
-- Spawn_BlueEWR:HandleEvent(EVENTS.Birth)
-- function Spawn_BlueEWR:OnEventBirth(EventData)
-- local RadioMessage = MESSAGE:New("A new AWACS has spawned.",15,"[ AWACS STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
--
-- Spawn_BlueEWR:HandleEvent(EVENTS.EngineStartup)
-- function Spawn_BlueEWR:OnEventEngineStartup(EventData)
-- local RadioMessage = MESSAGE:New("AWACS Startup Complete.",15,"[ AWACS STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
--
-- Spawn_BlueEWR:HandleEvent(EVENTS.EngineShutdown)
-- function Spawn_BlueEWR:OnEventEngineShutdown(EventData)
-- local RadioMessage = MESSAGE:New("AWACS Shutdown. Swapping Pilots, restarting soon..",15,"[ AWACS STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
--
-- Spawn_BlueEWR:HandleEvent(EVENTS.Land)
-- function Spawn_BlueEWR:OnEventLand(EventData)
-- local RadioMessage = MESSAGE:New("AWACS has landed. Taxing to parking.",15,"[ AWACS STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
--
-- Spawn_BlueEWR:HandleEvent(EVENTS.Takeoff)
-- function Spawn_BlueEWR:OnEventTakeoff(EventData)
-- local RadioMessage = MESSAGE:New("AWACS has taken off, AWACS Services Online.",15,"[ AWACS STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
--
-- -- Messages for RED AWACS
-- Spawn_RedEWR:HandleEvent(EVENTS.Birth)
-- function Spawn_RedEWR:OnEventBirth(EventData)
-- local RadioMessage = MESSAGE:New("A new AWACS has spawned..",15,"[ AWACS STATUS ]", true):ToRed()
-- SoundRadioMsg:ToCoalition(coalition.side.RED)
-- end
---- Spawn_RedEWR:HandleEvent(EVENTS.EngineStartup)
---- function Spawn_RedEWR:OnEventEngineStartup(EventData)
---- local RadioMessage = MESSAGE:New("AWACS Startup Complete.",15,"[ AWACS STATUS ]", true):ToRed()
---- SoundRadioMsg:ToCoalition(coalition.side.RED)
---- end
-- Spawn_RedEWR:HandleEvent(EVENTS.EngineShutdown)
-- function Spawn_RedEWR:OnEventEngineShutdown(EventData)
-- local RadioMessage = MESSAGE:New("AWACS Shuting down..",15,"[ AWACS STATUS ]", true):ToRed()
-- SoundRadioMsg:ToCoalition(coalition.side.RED)
-- end
-- Spawn_RedEWR:HandleEvent(EVENTS.Land)
-- function Spawn_RedEWR:OnEventLand(EventData)
-- local RadioMessage = MESSAGE:New("AWACS has landed..",15,"[ AWACS STATUS ]", true):ToRed()
-- SoundRadioMsg:ToCoalition(coalition.side.RED)
-- end
-- Spawn_RedEWR:HandleEvent(EVENTS.Takeoff)
-- function Spawn_RedEWR:OnEventTakeoff(EventData)
-- local RadioMessage = MESSAGE:New("AWACS has taken off..",15,"[ AWACS STATUS ]", true):ToRed()
-- SoundRadioMsg:ToCoalition(coalition.side.RED)
-- end
--
---- Messages for Shell SHL 42 X 253
-- Spawn_Blue135:HandleEvent(EVENTS.Birth)
-- function Spawn_Blue135:OnEventBirth(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Shell on 42x 253am has spawned..",15,"[ 135 TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
---- Spawn_Blue135:HandleEvent(EVENTS.EngineStartup)
---- function Spawn_Blue135:OnEventEngineStartup(EventData)
---- local RadioMessage = MESSAGE:New("Tanker Shell on 42x 253am has started up..",15,"[ 135 TANKER STATUS ]", true):ToBlue()
---- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
---- end
-- Spawn_Blue135:HandleEvent(EVENTS.EngineShutdown)
-- function Spawn_Blue135:OnEventEngineShutdown(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Shell on 42x 253am has shut down..",15,"[ 135 TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
-- Spawn_Blue135:HandleEvent(EVENTS.Land)
-- function Spawn_Blue135:OnEventLand(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Shell on 42x 253am has Landed..",15,"[ 135 TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
-- Spawn_Blue135:HandleEvent(EVENTS.Takeoff)
-- function Spawn_Blue135:OnEventTakeoff(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Shell on 42x 253am has taken off..",15,"[ 135 TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
--
-- -- Messages for Texaco TEX 41 X 252
-- Spawn_Blue135MPRS:HandleEvent(EVENTS.Birth)
-- function Spawn_Blue135MPRS:OnEventBirth(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Texaco TEX 41x 252am has spawned..",15,"[ 135MPRS TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
---- Spawn_Blue135MPRS:HandleEvent(EVENTS.EngineStartup)
---- function Spawn_Blue135MPRS:OnEventEngineStartup(EventData)
---- local RadioMessage = MESSAGE:New("Tanker Texaco TEX 41x 252am has started up..",15,"[ 135MPRS TANKER STATUS ]", true):ToBlue()
---- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
---- end
-- Spawn_Blue135MPRS:HandleEvent(EVENTS.EngineShutdown)
-- function Spawn_Blue135MPRS:OnEventEngineShutdown(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Texaco TEX 41x 252am has shut down..",15,"[ 135MPRS TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
-- Spawn_Blue135MPRS:HandleEvent(EVENTS.Land)
-- function Spawn_Blue135MPRS:OnEventLand(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Texaco TEX 41x 252am has Landed..",15,"[ 135MPRS TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end
-- Spawn_Blue135MPRS:HandleEvent(EVENTS.Tkeoff)
-- function Spawn_Blue135MPRS:OnEventTakeoff(EventData)
-- local RadioMessage = MESSAGE:New("Tanker Texaco TEX 41x 252am has taken off..",15,"[ 135MPRS TANKER STATUS ]", true):ToBlue()
-- SoundRadioMsg:ToCoalition(coalition.side.BLUE)
-- end