public void SpawnMercenary(Mobile target) { Map map = target.Map; if (map == null) { return; } int mercenarys = 0; foreach (Mobile m in this.GetMobilesInRange(3)) { if (m is Mercenary) { ++mercenarys; } } if (mercenarys < 2) { BaseCreature mercenary = new Mercenary(); mercenary.Team = this.Team; Point3D loc = target.Location; bool validLocation = false; for (int j = 0; !validLocation && j < 7; ++j) { int x = target.X + Utility.Random(3) - 1; int y = target.Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, this.Z, 16, false, false)) { loc = new Point3D(x, y, this.Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } mercenary.MoveToWorld(loc, map); mercenary.Combatant = target; } }