![]() |
#11
|
|||
|
|||
![]()
Yepp:
Added if (EnemyAirgroups == null) return; to method sendMessagesToAirgroup and if (GamePlay.gpAirGroups(1) != null) in OnTickGame to avoid exception Code:
using System; using System.Collections; using System.Collections.Generic; using maddox.game; using maddox.game.world; using maddox.GP; public class Mission : AMission { public void sendMessagesToAirgroup(AiAirGroup from, double maxDistance) { AiAirGroup[] EnemyAirgroups; Point3d StartPos = new Point3d(from.Pos().x, from.Pos().y, 1.0); EnemyAirgroups = GamePlay.gpAirGroups((from.Army() == 1) ? 2 : 1); if (EnemyAirgroups == null) return; int i = 0; foreach (AiAirGroup aag in EnemyAirgroups) { Point3d enemyPosition = new Point3d(aag.Pos().x, aag.Pos().y, 1.0); if (from.Pos().distance(ref enemyPosition) < maxDistance) { string sectorName = GamePlay.gpSectorName(aag.Pos().x, aag.Pos().y); string[] splittet = sectorName.Split(','); string alpha = splittet[0]; string number = "n" + splittet[1]; AiAircraft LeaderPlane = (from.GetItems()[0] as AiAircraft); Timeout(i, () => { (LeaderPlane as AiAircraft).SayToGroup(from as AiAirGroup, "Enemy_planes"); }); Timeout(i += 2, () => { LeaderPlane.SayToGroup(from, "In_square"); }); Timeout(i += 2, () => { LeaderPlane.SayToGroup(from, alpha); }); Timeout(i += 2, () => { LeaderPlane.SayToGroup(from, number); }); i += 2; } } } public override void OnTickGame() { base.OnTickGame(); if (Time.tickCounter() % 600 == 299) { if (GamePlay.gpAirGroups(1) != null) foreach(AiAirGroup aag in GamePlay.gpAirGroups(1)) sendMessagesToAirgroup(aag, 100000.0); } } } Last edited by FG28_Kodiak; 04-08-2012 at 07:28 PM. |
Thread Tools | |
Display Modes | |
|
|