Заранее оговорюсь: я не претендую на истину в последней инстанции. Я вполне могу ошибаться. Если я ошибся - заранее приношу свои извинения.
Итак, как я вижу исправление ситуации с ИИ в "Ил-2":
1) Любой объект класса "самолёт", а вероятнее всего, даже объект класса "деталь самолёта", в игре имеет динамически изменяющийся набор свойств. Изменяются они, есть такое подозрение, при "выставлении" некоего "флага" (Простите за терминологию, но, хоть я и плохо учился программированию, эти термины помню). Так, при попадании N пуль/снарядов (камней, касок ликующей пехоты), например, в крыло, в его свойствах выставляется флаг "в крыле дырка диаметром M см", после чего это повреждение рисуется на экране, а также меняется модель поведения самолёта.
2) Если утверждение (1) верно, то существуют также флаги "утечка топлива", "пустить чёрный дым из движка", "горит крыло/двигатель" и т.п., вызывающие соответствующее изменение поведения и отображения модели самолёта, вплоть до разрушения на мелкие куски.
3) С учётом (1) и (2) следует подправить сущую (на мой взгляд) мелочь:
а) объект "самолёт", в свойствах которого выставлен флаг "утечка топлива", выходит из боя и уходит на базу. Именно на базу, а не вслед за строем.
б) объект "самолёт", с выставленным флагом "горит крыло/двигатель" выходит из боя, набирает максимальную скорость, дабы сорвать пламя (в общем, пытается сорвать пламя), и уходит на базу, не возвращаясь в бой после срыва пламени. При этом флаг "горит крыло/двигатель" должен быть сброшен, а флаг "уйти на базу" - остаться.
в) указание "вернуться на базу" не может быть отменено.
г) объект "самолёт", с выставленным флагом "пустить чёрный дым из двигателя" уходит на базу и, что самое главное, не является целью для противника. Т.е. бот не должен атаковать объекты противной стороны, в чьих свойствах выставлен данный флаг. (Хотя это, я похоже, загнул. Это будет слишком сложно).
д) Посадочная "коробочка" состоит, кажется, из 5 точек (5-я - касание земли). Автопилот самолёта, идущего на базу с утечкой топлива, чёрным дымом, после срыва пламени, должен выставляться не на 1-ю точку "коробочки", а на предпоследнюю. Типа, посадка с ходу.
е) Зенитные пушки не должны стрелять по самолёту, выпустившему шасси (или уходящему на базу по вышеописанным причинам).
ж) Где-то на форуме мелькало утверждение, что самолёт в воздухе и после посадки обсчитывается по-разному. В таком раскладе, дабы избежать остановки бота на ВПП, имеет смысл в случае аварийной остановки (без капотирования, имеется в виду) просто силой сдвинуть его с полосы. Тягач рисовать не надо - обойдёмся воображением.
Вот, примерно так. Заранее приношу извинения, если совершил какую-то фундаментальную ошибку. Я же, естественно, не лазил по программе дизассемблером. Все высказывания основаны на логических измышлениях.
Прошу г-д модераторов накрыть ветку после ответа команды МГ, а народ - не писать сюда лишнего.
P.S. Приду с работы - проверю, может ли самолёт стороны "А" сесть на аэродром стороны "Б". Если нет - это печально...