LightVehicles = { "1tnk", "jeep", "apc", "ftrk" } Longrange = { "v2rl", "arty" } Tanks = { "2tnk", "3tnk", "4tnk", "ttnk", "ctnk" } AllInfantry = { "e1", "e2", "e3", "e4", "medi", "mech", "shok" } Multi0entry = { in1, in2 } Multi1entry = { in3, in4 } Multi2entry = { in5, in6 } Multi3entry = { in7, in8 } Enemywaypoints = { Northenemy, Middleenemy, Southenemy } -- Multi0 Multi0Infantry = function() if not PeaceTime then Multi0way = { Multi0move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi0entry) RandomInfantry = Utils.Random(AllInfantry) EnemyInfantry = Actor.Create(RandomInfantry, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyInfantry } GroupPatrol(Enemy, Multi0way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi0Infantry() end) end Multi0Vehicle = function() if not PeaceTime then Multi0way = { Multi0move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi0entry) RandomLight = Utils.Random(LightVehicles) EnemyLight = Actor.Create(RandomLight, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLight } GroupPatrol(Enemy, Multi0way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi0Vehicle() end) end Multi0Tank = function() Multi0way = { Multi0move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi0entry) RandomTank = Utils.Random(Tanks) EnemyTank = Actor.Create(RandomTank, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Multi0way, DateTime.Seconds(0)) end Multi0Tank() end) end Multi0Longrange = function() Multi0way = { Multi0move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi0entry) RandomLong = Utils.Random(Longrange) EnemyLong = Actor.Create(RandomLong, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLong } GroupPatrol(Enemy, Multi0way, DateTime.Seconds(0)) end Multi0Longrange() end) end Multi0Demotruck = function() Multi0way = { Multi0move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() if not PeaceTime then Unitentry = Utils.Random(Multi0entry) Enemynuke = Actor.Create("dtrk", true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { Enemynuke } MovePatrol(Enemy, Multi0way, DateTime.Seconds(0)) end Multi0Demotruck() end) end -- Multi1 Multi1Infantry = function() if not PeaceTime then Multi1way = { Multi1move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi1entry) RandomInfantry = Utils.Random(AllInfantry) EnemyInfantry = Actor.Create(RandomInfantry, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyInfantry } GroupPatrol(Enemy, Multi1way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi1Infantry() end) end Multi1Vehicle = function() if not PeaceTime then Multi1way = { Multi1move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi1entry) RandomLight = Utils.Random(LightVehicles) EnemyLight = Actor.Create(RandomLight, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLight } GroupPatrol(Enemy, Multi1way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi1Vehicle() end) end Multi1Tank = function() Multi1way = { Multi1move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi1entry) RandomTank = Utils.Random(Tanks) EnemyTank = Actor.Create(RandomTank, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Multi1way, DateTime.Seconds(0)) end Multi1Tank() end) end Multi1Longrange = function() Multi1way = { Multi1move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi1entry) RandomLong = Utils.Random(Longrange) EnemyLong = Actor.Create(RandomLong, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLong } GroupPatrol(Enemy, Multi1way, DateTime.Seconds(0)) end Multi1Longrange() end) end Multi1Demotruck = function() Multi1way = { Multi1move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() if not PeaceTime then Unitentry = Utils.Random(Multi1entry) Enemynuke = Actor.Create("dtrk", true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { Enemynuke } MovePatrol(Enemy, Multi1way, DateTime.Seconds(0)) end Multi1Demotruck() end) end -- Multi2 Multi2Infantry = function() if not PeaceTime then Multi2way = { Multi2move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi2entry) RandomInfantry = Utils.Random(AllInfantry) EnemyInfantry = Actor.Create(RandomInfantry, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyInfantry } GroupPatrol(Enemy, Multi2way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi2Infantry() end) end Multi2Vehicle = function() if not PeaceTime then Multi2way = { Multi2move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi2entry) RandomLight = Utils.Random(LightVehicles) EnemyLight = Actor.Create(RandomLight, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLight } GroupPatrol(Enemy, Multi2way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi2Vehicle() end) end Multi2Tank = function() Multi2way = { Multi2move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi2entry) RandomTank = Utils.Random(Tanks) EnemyTank = Actor.Create(RandomTank, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Multi2way, DateTime.Seconds(0)) end Multi2Tank() end) end Multi2Longrange = function() Multi2way = { Multi2move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi2entry) RandomLong = Utils.Random(Longrange) EnemyLong = Actor.Create(RandomLong, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLong } GroupPatrol(Enemy, Multi2way, DateTime.Seconds(0)) end Multi2Longrange() end) end Multi2Demotruck = function() Multi2way = { Multi2move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() if not PeaceTime then Unitentry = Utils.Random(Multi2entry) Enemynuke = Actor.Create("dtrk", true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { Enemynuke } MovePatrol(Enemy, Multi2way, DateTime.Seconds(0)) end Multi2Demotruck() end) end -- Multi3 Multi3Infantry = function() if not PeaceTime then Multi3way = { Multi3move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi3entry) RandomInfantry = Utils.Random(AllInfantry) EnemyInfantry = Actor.Create(RandomInfantry, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyInfantry } GroupPatrol(Enemy, Multi3way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi3Infantry() end) end Multi3Vehicle = function() if not PeaceTime then Multi3way = { Multi3move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Unitentry = Utils.Random(Multi3entry) RandomLight = Utils.Random(LightVehicles) EnemyLight = Actor.Create(RandomLight, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLight } GroupPatrol(Enemy, Multi3way, DateTime.Seconds(0)) end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Multi3Vehicle() end) end Multi3Tank = function() Multi3way = { Multi3move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi3entry) RandomTank = Utils.Random(Tanks) EnemyTank = Actor.Create(RandomTank, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Multi3way, DateTime.Seconds(0)) end Multi3Tank() end) end Multi3Longrange = function() Multi3way = { Multi3move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() if not PeaceTime then Unitentry = Utils.Random(Multi3entry) RandomLong = Utils.Random(Longrange) EnemyLong = Actor.Create(RandomLong, true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { EnemyLong } GroupPatrol(Enemy, Multi3way, DateTime.Seconds(0)) end Multi3Longrange() end) end Multi3Demotruck = function() Multi3way = { Multi3move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() if not PeaceTime then Unitentry = Utils.Random(Multi3entry) Enemynuke = Actor.Create("dtrk", true, { Location = Unitentry.Location + CVec.New(0, Utils.RandomInteger(-1, 1)), Owner = Enemys }) Enemy = { Enemynuke } MovePatrol(Enemy, Multi3way, DateTime.Seconds(0)) end Multi3Demotruck() end) end -- Reinforcements ReinforceInfantry = function() Rndenemywaypoint = Utils.Random(Enemywaypoints) Reinfway = { Rndenemywaypoint.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } RandomInfantry = Utils.Random(AllInfantry) ReinfInfantry = Actor.Create(RandomInfantry, true, { Location = Reinfentry.Location + CVec.New(0, Utils.RandomInteger(0, 74)), Owner = Friends }) Reinf = { ReinfInfantry } GroupPatrol(Reinf, Reinfway, DateTime.Seconds(0)) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 20)), function() ReinforceInfantry() end) end ReinforceVehicle = function() Rndenemywaypoint = Utils.Random(Enemywaypoints) Reinfway = { Rndenemywaypoint.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } RandomVehicle = Utils.Random(LightVehicles) ReinfVehicle = Actor.Create(RandomVehicle, true, { Location = Reinfentry.Location + CVec.New(0, Utils.RandomInteger(0, 74)), Owner = Friends }) Reinf = { ReinfVehicle } GroupPatrol(Reinf, Reinfway, DateTime.Seconds(0)) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 20)), function() ReinforceVehicle() end) end ReinforceTanks = function() Rndenemywaypoint = Utils.Random(Enemywaypoints) Reinfway = { Rndenemywaypoint.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } RandomTanks = Utils.Random(Tanks) ReinfTanks = Actor.Create(RandomInfantry, true, { Location = Reinfentry.Location + CVec.New(0, Utils.RandomInteger(0, 74)), Owner = Friends }) Reinf = { ReinfTanks } GroupPatrol(Reinf, Reinfway, DateTime.Seconds(0)) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 20)), function() ReinforceTanks() end) end ReinforceLongrange = function() Rndenemywaypoint = Utils.Random(Enemywaypoints) Reinfway = { Rndenemywaypoint.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southenemy.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } RandomLongrange = Utils.Random(Longrange) ReinfLongrange = Actor.Create(RandomLongrange, true, { Location = Reinfentry.Location + CVec.New(0, Utils.RandomInteger(0, 74)), Owner = Friends }) Reinf = { ReinfLongrange } GroupPatrol(Reinf, Reinfway, DateTime.Seconds(0)) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 20)), function() ReinforceLongrange() end) end GroupPatrol = function(units, waypoints, delay) local i = 1 local stop = false Utils.Do(units, function(unit) Trigger.OnIdle(unit, function() if stop then return end if unit.Location == waypoints[i] then local bool = Utils.All(units, function(actor) return actor.IsIdle end) if bool then stop = true i = i + 1 if i > #waypoints then i = 1 end Trigger.AfterDelay(delay, function() stop = false end) end else unit.AttackMove(waypoints[i]) end end) end) end MovePatrol = function(units, waypoints, delay) local i = 1 local stop = false Utils.Do(units, function(unit) Trigger.OnIdle(unit, function() if stop then return end if unit.Location == waypoints[i] then local bool = Utils.All(units, function(actor) return actor.IsIdle end) if bool then stop = true i = i + 1 if i > #waypoints then i = 1 end Trigger.AfterDelay(delay, function() stop = false end) end else unit.Move(waypoints[i]) end end) end) end EnemysIncome = function() --Multi0 if Multi0 ~= nil then EnemyHpad1 = Actor.Create("hpad", true, { Location = m0hpad1.Location, Owner = Enemys }) EnemyHind() Multi0Infantry() Multi0Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 30)), function() Multi0Vehicle() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() Multi0Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi0Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi0Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(100, 130)), function() Multi0Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(240, 300)), function() Multi0Demotruck() end) if Map.LobbyOption("difficulty") == "normal" then EnemyHpad = Actor.Create("hpad", true, { Location = m0hpad2.Location, Owner = Enemys }) EnemyLbow() Multi0Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi0Tank() end) elseif Map.LobbyOption("difficulty") == "hard" then EnemyHpad = Actor.Create("hpad", true, { Location = m0hpad2.Location, Owner = Enemys }) EnemyHpad = Actor.Create("hpad", true, { Location = m0hpad3.Location, Owner = Enemys }) EnemyLbow() EnemyLbow() Multi0Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi0Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi0Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(200, 250)), function() Multi0Demotruck() end) end end --Multi1 if Multi1 ~= nil then EnemyHpad = Actor.Create("hpad", true, { Location = m1hpad1.Location, Owner = Enemys }) EnemyHind() Multi1Infantry() Multi1Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 30)), function() Multi1Vehicle() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() Multi1Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi1Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi1Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(100, 130)), function() Multi1Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(240, 300)), function() Multi1Demotruck() end) if Map.LobbyOption("difficulty") == "normal" then EnemyHpad = Actor.Create("hpad", true, { Location = m1hpad2.Location, Owner = Enemys }) EnemyLbow() Multi1Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi1Tank() end) elseif Map.LobbyOption("difficulty") == "hard" then EnemyHpad = Actor.Create("hpad", true, { Location = m1hpad2.Location, Owner = Enemys }) EnemyHpad = Actor.Create("hpad", true, { Location = m1hpad3.Location, Owner = Enemys }) EnemyLbow() EnemyLbow() Multi1Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi1Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi1Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(200, 250)), function() Multi1Demotruck() end) end end --Multi2 if Multi2 ~= nil then EnemyHpad = Actor.Create("hpad", true, { Location = m2hpad1.Location, Owner = Enemys }) EnemyHind() Multi2Infantry() Multi2Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 30)), function() Multi2Vehicle() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() Multi2Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi2Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi2Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(100, 130)), function() Multi2Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(240, 300)), function() Multi2Demotruck() end) if Map.LobbyOption("difficulty") == "normal" then EnemyHpad = Actor.Create("hpad", true, { Location = m2hpad2.Location, Owner = Enemys }) EnemyLbow() Multi2Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi2Tank() end) elseif Map.LobbyOption("difficulty") == "hard" then EnemyHpad = Actor.Create("hpad", true, { Location = m2hpad2.Location, Owner = Enemys }) EnemyHpad = Actor.Create("hpad", true, { Location = m2hpad3.Location, Owner = Enemys }) EnemyLbow() EnemyLbow() Multi2Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi2Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi2Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(200, 250)), function() Multi2Demotruck() end) end end --Multi3 if Multi3 ~= nil then EnemyHpad = Actor.Create("hpad", true, { Location = m3hpad1.Location, Owner = Enemys }) EnemyHind() Multi3Infantry() Multi3Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 30)), function() Multi3Vehicle() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 60)), function() Multi3Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi3Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi3Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(100, 130)), function() Multi3Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(240, 300)), function() Multi3Demotruck() end) if Map.LobbyOption("difficulty") == "normal" then EnemyHpad = Actor.Create("hpad", true, { Location = m3hpad2.Location, Owner = Enemys }) EnemyLbow() Multi3Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi3Tank() end) elseif Map.LobbyOption("difficulty") == "hard" then EnemyHpad = Actor.Create("hpad", true, { Location = m3hpad2.Location, Owner = Enemys }) EnemyHpad = Actor.Create("hpad", true, { Location = m3hpad3.Location, Owner = Enemys }) EnemyLbow() EnemyLbow() Multi3Infantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(50, 80)), function() Multi3Tank() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(70, 100)), function() Multi3Longrange() end) Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(200, 250)), function() Multi3Demotruck() end) end end end Difficulty = Map.LobbyOption("difficulty") if Difficulty == "hard" then TimerTicks = DateTime.Minutes(7) elseif Difficulty == "normal" then TimerTicks = DateTime.Minutes(6) else TimerTicks = DateTime.Minutes(5) end timerStarted = false Tick = function() if TimerTicks >= 0 and not timerStarted then Utils.Do(humans, function(player) if Multi0 ~= nil then TimerColor = Multi0.Color else TimerColor = Friends.Color end end) if TimerTicks <= DateTime.Minutes(4) then if Multi1 ~= nil then TimerColor = Multi1.Color else TimerColor = Friends.Color end end if TimerTicks <= DateTime.Minutes(3) then if Multi2 ~= nil then TimerColor = Multi2.Color else TimerColor = Friends.Color end end if TimerTicks <= DateTime.Minutes(2) then if Multi3 ~= nil then TimerColor = Multi3.Color else TimerColor = Friends.Color end end if TimerTicks <= DateTime.Minutes(1) then TimerColor = Enemys.Color end UserInterface.SetMissionText("Reinforcements arrive in:" .. Utils.FormatTime(TimerTicks), TimerColor) TimerTicks = TimerTicks - 1 elseif not timerStarted then ReinforcementsIncome() timerStarted = true Trigger.AfterDelay(DateTime.Seconds(2), function() UserInterface.SetMissionText("--->", HSLColor.Blue) end) end end ReinforcementsIncome = function() Media.DisplayMessage("You made a good job so far hold on Reinforcements will arrive soon", "General", HSLColor.Blue) ReinforceInfantry() ReinforceInfantry() ReinforceVehicle() ReinforceVehicle() ReinforceVehicle() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(15, 20)), function() ReinforceVehicle() ReinforceTanks() ReinforceTanks() ReinforceInfantry() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 30)), function() ReinforceTanks() ReinforceTanks() ReinforceTanks() ReinforceTanks() ReinforceLongrange() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 40)), function() ReinforceTanks() ReinforceTanks() ReinforceLongrange() ReinforceTanks() ReinforceTanks() ReinforceLongrange() ReinforceLongrange() end) end) end) end TopRNDEntry = { Multi0spawn1, Multi0spawn2 } SneakAttacks = function() if Map.LobbyOption("difficulty") == "normal" then SpecialLightunit = { "e1", "e2", "e3", "e4", "medi", "medi" } SpecialHeavyUnit = { "jeep", "ftrk", "1tnk", "apc", "2tnk", "3tnk" } SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() end) end) end) elseif Map.LobbyOption("difficulty") == "hard" then SpecialLightunit = { "1tnk", "apc", "jeep", "ftrk", "shok", "mech", "mech", "mech", "mech", "mech" } SpecialHeavyUnit = { "2tnk", "3tnk", "4tnk", "ttnk", "v2rl", "arty" } SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(30, 35)), function() SpecialTopMove() SpecialBottomMove() end) end) end) end) end) end end --EnemySpecialmoves TopRNDEntry = { Multi0spawn1, Multi0spawn2 } SpecialTopMove = function() Specialway1 = { Multi0move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Randomspawn1 = Utils.Random(TopRNDEntry) RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 30), function() RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 30), function() RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 30), function() RandomTank = Utils.Random(SpecialHeavyUnit) EnemyTank = Actor.Create(RandomTank, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 30), function() RandomTank = Utils.Random(SpecialHeavyUnit) EnemyTank = Actor.Create(RandomTank, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 30), function() RandomTank = Utils.Random(SpecialHeavyUnit) EnemyTank = Actor.Create(RandomTank, true, { Location = Randomspawn1.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway1, DateTime.Seconds(0)) end) end) end) end) end) end) end BottomRNDEntry = { Multi3spawn1, Multi3spawn2 } SpecialBottomMove = function() Specialway2 = { Multi3move.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(10, 20)), function() Randomspawn2 = Utils.Random(BottomRNDEntry) RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 60), function() RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 60), function() RandomInf = Utils.Random(SpecialLightunit) EnemyTank = Actor.Create(RandomInf, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(60, 80), function() RandomTank = Utils.Random(SpecialHeavyUnit) EnemyTank = Actor.Create(RandomTank, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 60), function() RandomTank = Utils.Random(SpecialHeavyUnit) EnemyTank = Actor.Create(RandomTank, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) Trigger.AfterDelay(Utils.RandomInteger(20, 60), function() RandomTank = Utils.Random(SpecialHeavyUnit) EnemyTank = Actor.Create(RandomTank, true, { Location = Randomspawn2.Location + CVec.New(Utils.RandomInteger(-3, 3) ,0), Owner = Enemys }) Enemy = { EnemyTank } GroupPatrol(Enemy, Specialway2, DateTime.Seconds(0)) end) end) end) end) end) end) end Playerwaypoints = { Multi0move, Multi1move, Multi2move, Multi3move } EnemyHind = function() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 40)), function() RandomHelimove = Utils.Random(Playerwaypoints) Heliway = { RandomHelimove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } EnemyHeli = Actor.Create("hind", true, { Location = heliincome.Location + CVec.New(6, Utils.RandomInteger(0, 74)), Owner = Enemys }) Enemy = { EnemyHeli } GroupPatrol(Enemy, Heliway, DateTime.Seconds(0)) Trigger.OnKilled(EnemyHeli,EnemyHind) end) end EnemyLbow = function() Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(20, 40)), function() RandomHelimove = Utils.Random(Playerwaypoints) Heliway = { RandomHelimove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Southmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)), Northmove.Location + CVec.New(Utils.RandomInteger(-3, 3), Utils.RandomInteger(-3, 3)) } EnemyHeli = Actor.Create("heli", true, { Location = heliincome.Location + CVec.New(6, Utils.RandomInteger(0, 74)), Owner = Enemys }) Enemy = { EnemyHeli } GroupPatrol(Enemy, Heliway, DateTime.Seconds(0)) Trigger.OnKilled(EnemyHeli,EnemyLbow) end) end StartingUnitsCheck = function() WaveInterval = 0 Utils.Do(humans, function(player) Dog = player.GetActorsByType("dog") for p,doggy in pairs(Dog) do if doggy.IsInWorld then WaveInterval = 0 end end E1 = player.GetActorsByType("e1") for p,rifleman in pairs(E1) do if rifleman.IsInWorld then WaveInterval = 1 end end E2 = player.GetActorsByType("e2") for p,nader in pairs(E2) do if nader.IsInWorld then WaveInterval = 2 end end E3 = player.GetActorsByType("e3") for p,rocketman in pairs(E3) do if rocketman.IsInWorld then WaveInterval = 3 end end Medi = player.GetActorsByType("medi") for p,medic in pairs(Medi) do if medic.IsInWorld then WaveInterval = 4 end end Mech = player.GetActorsByType("mech") for p,mechanic in pairs(Mech) do if mechanic.IsInWorld then WaveInterval = 5 end end E6 = player.GetActorsByType("e6") for p,engie in pairs(E6) do if engie.IsInWorld then WaveInterval = 6 end end UnitPercent = 10 - WaveInterval end) end WaveInterrupter = function() PeaceTime = true Trigger.AfterDelay(DateTime.Seconds(WaveInterval), function() PeaceTime = false end) Trigger.AfterDelay(DateTime.Seconds(10), function() WaveInterrupter() end) end WorldLoaded = function() Enemys = Player.GetPlayer("Enemys") Friends = Player.GetPlayer("Friends") Multi0 = Player.GetPlayer("Multi0") Multi1 = Player.GetPlayer("Multi1") Multi2 = Player.GetPlayer("Multi2") Multi3 = Player.GetPlayer("Multi3") humans = { Multi0, Multi1, Multi2, Multi3 } EnemysIncome() Trigger.AfterDelay(1, function() StartingUnitsCheck() end) Trigger.AfterDelay(DateTime.Seconds(3), function() WaveInterrupter() Media.DisplayMessage("Commanders defend The Mainbases against the enemy forces.\nBuild engouh defenses to save our base", "General", HSLColor.Blue) end) Trigger.AfterDelay(DateTime.Seconds(290), function() SneakAttacks() end) end