![]() |
#5
|
||||
|
||||
![]() Quote:
vanishing from the map, would be a fancy solution for this i think, coupled with a message that the opposite team won. but i guesss i would need your help for that... Edit: i would like to have this function included in my already excisting script: HTML Code:
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using maddox.game; using maddox.game.world; public class Mission : AMission { Stopwatch MissionTimer = new Stopwatch(); public override void OnBattleStarted() { base.OnBattleStarted(); MissionTimer.Start(); MissionNumberListener = -1; } public override void OnActorCreated(int missionNumber, string shortName, AiActor actor) { base.OnActorCreated(missionNumber, shortName, actor); if (actor is AiAircraft) { switch ((actor as AiAircraft).InternalTypeName()) { case "bob:Aircraft.He-111P-2": case "bob:Aircraft.BlenheimMkIV": Timeout(3000, () => // Time in Seconds { (actor as AiAircraft).Destroy(); }); break; } } } public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftCrashLanded(missionNumber, shortName, aircraft); if(IsActorDestroyable(aircraft)) aircraft.Destroy(); } public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft) { base.OnAircraftLanded(missionNumber, shortName, aircraft); if (IsActorDestroyable(aircraft)) aircraft.Destroy(); } private bool IsActorDestroyable(AiActor actor) { bool actorDestroyable = true; //Check if actor is empty (no Player) if (actor is AiAircraft) { if ((actor as AiAircraft).ExistCabin(0)) for (int i = 0; i < (actor as AiAircraft).Places(); i++) { if ((actor as AiAircraft).Player(i) != null) { actorDestroyable = false; break; } } } else if (actor is AiGroundActor) { if ((actor as AiGroundActor).ExistCabin(0)) for (int i = 0; i < (actor as AiGroundActor).Places(); i++) { if ((actor as AiGroundActor).Player(i) != null) { actorDestroyable = false; break; } } } return actorDestroyable; } // to remove GroundActors after their Task is completed public override void OnActorTaskCompleted(int missionNumber, string shortName, AiActor actor) { base.OnActorTaskCompleted(missionNumber, shortName, actor); if (actor is AiGroundActor) if (IsActorDestroyable(actor)) (actor as AiGroundActor).Destroy(); } public int GetSumAllPlanes() { int planeCount = 0; List<AiAirGroup> allAirgroups = new List<AiAirGroup>(); if (GamePlay.gpAirGroups(1) != null) allAirgroups.AddRange(GamePlay.gpAirGroups(1)); if (GamePlay.gpAirGroups(2) != null) allAirgroups.AddRange(GamePlay.gpAirGroups(2)); allAirgroups.ForEach(item => { foreach (AiAircraft ac in item.GetItems()) { planeCount++; } }); return planeCount; } public override void OnTickGame() { if(MissionTimer.Elapsed.TotalSeconds >= 130 && GetSumAllPlanes() < 30) //Loads a mission every 130s and only if the sum of all planes < 30 { Random ZufaelligeMission = new Random(); MissionTimer.Restart(); // Sets timer to 0 and start again switch (ZufaelligeMission.Next(34,35)) { case 1: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission1.mis"); break; case 2: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission2.mis"); break; case 3: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission3.mis"); break; case 4: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission4.mis"); break; case 5: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission5.mis"); break; case 6: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission6.mis"); break; case 7: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission7.mis"); break; case 8: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission8.mis"); break; case 9: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission9.mis"); break; case 10: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission10.mis"); break; case 11: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission11.mis"); break; case 12: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission12.mis"); break; case 13: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission13.mis"); break; case 14: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission14.mis"); break; case 15: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission15.mis"); break; case 16: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission16.mis"); break; case 17: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission17.mis"); break; case 18: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission18.mis"); break; case 19: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission19.mis"); break; case 20: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission20.mis"); break; case 21: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission21.mis"); break; case 22: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission22.mis"); break; case 23: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission23.mis"); break; case 24: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission24.mis"); break; case 25: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission25.mis"); break; case 26: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission26.mis"); break; case 27: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission27.mis"); break; case 28: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission28.mis"); break; case 29: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission29.mis"); break; case 30: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission30.mis"); break; case 31: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission31.mis"); break; case 32: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission32.mis"); break; case 33: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission33.mis"); break; case 34: GamePlay.gpPostMissionLoad("missions\\Blitzkrieg\\mission34.mis"); break; } } } } and maybe with the function included, that after one side has shot down a certain amount of AI planes(bombers), no bombers will spawn anymore.... i know i somehow ask for much, and if its sounding demanding in a way, i apologize, i can fully understand if you have better things to do Last edited by David198502; 06-19-2012 at 04:49 PM. |
|
|