StartingUnitsincome = function() newmcv0 = Actor.Create("mcv", true, { Location = Actor113.Location, Owner = Multi0, Facing = SouthEast }) newmcv0.Move(Actor114.Location) Trigger.OnIdle(newmcv0, function() Trigger.ClearAll(newmcv0) Trigger.AfterDelay(4, function() newmcv0.Move(Actor115.Location) Trigger.OnIdle(newmcv0, function() Trigger.ClearAll(newmcv0) Trigger.AfterDelay(4, function() newmcv0.Deploy() m0e11 = Actor.Create("e1", true, { Location = Actor113.Location + CVec.New(0, Utils.RandomInteger(0, 4)), Owner = Multi0 }) m0e11.Move(Actor114.Location) m0e12 = Actor.Create("e3", true, { Location = Actor113.Location + CVec.New(0, Utils.RandomInteger(0, 4)), Owner = Multi0 }) m0e12.Move(Actor114.Location) m0e13 = Actor.Create("e1", true, { Location = Actor113.Location + CVec.New(Utils.RandomInteger(0, 4), 0), Owner = Multi0 }) m0e13.Move(Actor114.Location) m0e14 = Actor.Create("e3", true, { Location = Actor113.Location + CVec.New(Utils.RandomInteger(0, 4), 0), Owner = Multi0 }) m0e14.Move(Actor114.Location) end) end) end) end) newmcv1 = Actor.Create("mcv", true, { Location = Actor116.Location, Owner = Multi1, Facing = South }) newmcv1.Move(Actor117.Location) Trigger.OnIdle(newmcv1, function() Trigger.ClearAll(newmcv1) Trigger.AfterDelay(4, function() newmcv1.Move(Actor118.Location) Trigger.OnIdle(newmcv1, function() Trigger.ClearAll(newmcv1) Trigger.AfterDelay(4, function() newmcv1.Deploy() m1e11 = Actor.Create("e1", true, { Location = Actor116.Location + CVec.New(Utils.RandomInteger(-1, 1), 0), Owner = Multi1 }) m1e11.Move(Actor117.Location) m1e12 = Actor.Create("e3", true, { Location = Actor116.Location + CVec.New(Utils.RandomInteger(-1, 1), 0), Owner = Multi1 }) m1e12.Move(Actor117.Location) m1e13 = Actor.Create("e1", true, { Location = Actor116.Location + CVec.New(Utils.RandomInteger(-1, 1), 0), Owner = Multi1 }) m1e13.Move(Actor117.Location) m1e14 = Actor.Create("e3", true, { Location = Actor116.Location + CVec.New(Utils.RandomInteger(-1, 1), 0), Owner = Multi1 }) m1e14.Move(Actor117.Location) end) end) end) end) newmcv2 = Actor.Create("mcv", true, { Location = Actor119.Location, Owner = Multi2, Facing = North }) newmcv2.Move(Actor120.Location) Trigger.OnIdle(newmcv2, function() Trigger.ClearAll(newmcv2) Trigger.AfterDelay(4, function() newmcv2.Move(Actor121.Location) Trigger.OnIdle(newmcv2, function() Trigger.ClearAll(newmcv2) Trigger.AfterDelay(4, function() newmcv2.Deploy() m2e11 = Actor.Create("e1", true, { Location = Actor119.Location + CVec.New(Utils.RandomInteger(0, 15), 0), Owner = Multi2 }) m2e11.Move(Actor120.Location) m2e12 = Actor.Create("e3", true, { Location = Actor119.Location + CVec.New(Utils.RandomInteger(0, 15), 0), Owner = Multi2 }) m2e12.Move(Actor120.Location) m2e13 = Actor.Create("e1", true, { Location = Actor119.Location + CVec.New(Utils.RandomInteger(0, 15), 0), Owner = Multi2 }) m2e13.Move(Actor120.Location) m2e14 = Actor.Create("e3", true, { Location = Actor119.Location + CVec.New(Utils.RandomInteger(0, 15), 0), Owner = Multi2 }) m2e14.Move(Actor120.Location) end) end) end) end) newmcv3 = Actor.Create("mcv", true, { Location = Actor122.Location, Owner = Multi3, Facing = North }) newmcv3.Move(Actor123.Location) Trigger.OnIdle(newmcv3, function() Trigger.ClearAll(newmcv3) Trigger.AfterDelay(4, function() newmcv3.Move(Actor124.Location) Trigger.OnIdle(newmcv3, function() Trigger.ClearAll(newmcv3) Trigger.AfterDelay(4, function() newmcv3.Deploy() m3e11 = Actor.Create("e1", true, { Location = Actor122.Location + CVec.New(Utils.RandomInteger(-4, 4), 0), Owner = Multi3 }) m3e11.Move(Actor123.Location) m3e12 = Actor.Create("e3", true, { Location = Actor122.Location + CVec.New(Utils.RandomInteger(-4, 4), 0), Owner = Multi3 }) m3e12.Move(Actor123.Location) m3e13 = Actor.Create("e1", true, { Location = Actor122.Location + CVec.New(Utils.RandomInteger(-4, 4), 0), Owner = Multi3 }) m3e13.Move(Actor123.Location) m3e14 = Actor.Create("e3", true, { Location = Actor122.Location + CVec.New(Utils.RandomInteger(-4, 4), 0), Owner = Multi3 }) m3e14.Move(Actor123.Location) end) end) end) end) end ScientistEntry = { Northentry, Westentry, Eastentry, Southentry } ScientistPath = { Actor256, Actor257, Actor258, Actor259, Actor260, Actor261, Actor262, Actor263, Actor264, Actor265, Actor266, Actor267, Actor268, Actor269 } ActivateScientist = function() Rndentry = Utils.Random(ScientistEntry) RndSciway1 = Utils.Random(ScientistPath) RndSciway2 = Utils.Random(ScientistPath) RndSciway3 = Utils.Random(ScientistPath) RndSciway4 = Utils.Random(ScientistPath) RndSciway5 = Utils.Random(ScientistPath) RandomScipatrol = { RndSciway1.Location, RndSciway2.Location, RndSciway3.Location, RndSciway4.Location, RndSciway5.Location } Scientist = Actor.Create("chan", true, { Owner = Neutral, Location = Rndentry.Location }) Scien = { Scientist } GroupPatrol(Scien, RandomScipatrol, DateTime.Seconds(10)) Trigger.OnKilled(Scientist,ActivateScientist) 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.Move(waypoints[i]) end end) end) end AllVehicles = { "v2rl", "1tnk", "2tnk", "3tnk", "4tnk", "arty", "jeep", "apc", "mnly", "truk", "mgg", "mrj", "ttnk", "ftrk", "dtrk", "ctnk", "qtnk", "stnk" } AllInfantry = { "dog", "e1", "e2", "e3", "e4", "e6", "spy", "e7", "medi", "mech", "hijacker", "shok", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8" } Allentry = { Northentry, Southentry, Eastentry, Westentry } NorthSouth = { Northentry, Southentry } EastWest = { Eastentry, Westentry } Midmove = { Northunload, Westunload, Eastunload, Southunload } Middlereinforcements = function() RandomInfantry = Utils.Random(AllVehicles) Randomentry = Utils.Random(Allentry) Randommove = Utils.Random(Midmove) if Middleflag.Owner ~= Neutral then if not Middleflag.IsDead then Tankreinforcements = Actor.Create(RandomInfantry, true, { Location = Randomentry.Location, Owner = Middleflag.Owner }) if not Tankreinforcements.IsDead then Tankreinforcements.Move(Randommove.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))) end end end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 60)), function() Middlereinforcements() end) end LeftMiddlereinforcements = function() RandomInfantry = Utils.Random(AllInfantry) Randomentry = Utils.Random(NorthSouth) Randommove = Utils.Random(Midmove) if Leftflag.Owner ~= Neutral then if not Leftflag.IsDead then Infreinforcements = Actor.Create(RandomInfantry, true, { Location = Randomentry.Location + CVec.New(Utils.RandomInteger(-8, 8), 0), Owner = Leftflag.Owner }) if not Infreinforcements.IsDead then Infreinforcements.Move(Randommove.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))) end end end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 30)), function() LeftMiddlereinforcements() end) end RightMiddlereinforcements = function() RandomInfantry = Utils.Random(AllInfantry) Randomentry = Utils.Random(EastWest) Randommove = Utils.Random(Midmove) if Rightflag.Owner ~= Neutral then if not Rightflag.IsDead then Infreinforcements = Actor.Create(RandomInfantry, true, { Location = Randomentry.Location + CVec.New(0, Utils.RandomInteger(-8, 8)), Owner = Rightflag.Owner }) if not Infreinforcements.IsDead then Infreinforcements.Move(Randommove.Location + CVec.New(Utils.RandomInteger(-1, 1), Utils.RandomInteger(-1, 1))) end end end Trigger.AfterDelay(DateTime.Seconds(Utils.RandomInteger(1, 30)), function() RightMiddlereinforcements() end) end Allfactions = { "ukraine", "russia", "germany", "france", "england" } GetPlayers = function() Neutral = Player.GetPlayer("Neutral") Multi0 = Player.GetPlayer("Multi0") Multi1 = Player.GetPlayer("Multi1") Multi2 = Player.GetPlayer("Multi2") Multi3 = Player.GetPlayer("Multi3") if Multi0 == nil then anyplayer1 = Utils.Random(Allfactions) Multi0 = Player.GetPlayer(anyplayer1) end if Multi1 == nil then anyplayer2 = Utils.Random(Allfactions) Multi1 = Player.GetPlayer(anyplayer2) end if Multi2 == nil then anyplayer3 = Utils.Random(Allfactions) Multi2 = Player.GetPlayer(anyplayer3) end anyplayer4 = Utils.Random(Allfactions) if Multi3 == nil then anyplayer4 = Utils.Random(Allfactions) Multi3 = Player.GetPlayer(anyplayer4) end anyplayer5 = Utils.Random(Allfactions) weap1owner = Player.GetPlayer(anyplayer5) anyplayer6 = Utils.Random(Allfactions) weap2owner = Player.GetPlayer(anyplayer6) anyplayer7 = Utils.Random(Allfactions) weap3owner = Player.GetPlayer(anyplayer7) end WorldLoaded = function() GetPlayers() Flagmaker() RandmActorMaker() RandmActorMaker2() RandmActorMaker3() RandmActorMaker4() StartingUnitsincome() Basecreator() GetandsetFlags() ActivateScientist() if Map.LobbyOption("difficulty") == "normal" then newactor = Actor.Create("mslo", true, { Location = Actor168.Location, Owner = Neutral }) elseif Map.LobbyOption("difficulty") == "hard" then newactor = Actor.Create("mslo", true, { Location = Actor168.Location, Owner = Neutral }) Middlereinforcements() LeftMiddlereinforcements() RightMiddlereinforcements() end Trigger.AfterDelay(DateTime.Seconds(5), function() -- player announcements Media.DisplayMessage("capture flags and receive structures","") ActivateScientist() end) Trigger.AfterDelay(DateTime.Seconds(10), function() Media.DisplayMessage("hi5","") ActivateScientist() end) Trigger.AfterDelay(DateTime.Seconds(3), function() AiControl() end) end