Здравствуйте.
Ну из названия темы видно, что это не мод. Это описание возможного создания мода.
А сделано это из соображений, что я то на версии 4_09 развлекаюсь..
Другие же наверное ушли вперед в версия ИЛ-2.
Но все, что будет написано ниже применимо я думаю к любой версии и любой желающий или
сделает мод под разные версии игры или соберет для себя мод и будет
ЕДИНОЛИЧНО летать
на своей версии выше чем 4_09.
В первую очередь хочу поблагодарить коллег по цеху "Авиаскинс"
Дмитрия(Asura) и
Романа(yt2) за
помощь в решении этой проблеммы. Некоторыми подсказками они существенно помогли !!!
О чем же будет речь ? А вот о чем.
Озадачился я как-то излишней управляемостью самолетов при движении по земле во время рулежек
и самое главное во время разбега на взлете и пробега на посадке. Исследования меня привели к необходимости
введения разной чувствительности руля направления на земле и в воздухе.
В итоге родилось мое видение проблеммы и мое решение. Возможно более квалифицированные
программисты решили бы все по другому.
Ну тут прошу принять это как : "Я художник, я так вижу..."
Начнем:
Во всех версия ИЛ-2 имеется класс FlightModelMain он немного отличается от версии к версии,
но те места куда будем вмешиваться я думаю одинаковы у всех версий.
Естественно, если используется класс FlightModelMain из мода DiffFM определенной версии игры,
то и вмешиваться надо именно в него !! Для дефолтных версий игры не использующих мод DiffFM
править надо дефолтный класс FlightModelMain.
В класс FlightModelMain надо добавить код выделенный красным, выше и ниже для ориентира приведены дефолтные строки
VmaxFLAPS = sectfile.get(s2, "VmaxFLAPS", 1.0F);
VminFLAPS = sectfile.get(s2, "VminFLAPS", 1.0F);
SensYaw = sectfile.get(s2, "SensYaw", 1.0F);
SensYawAir = sectfile.get(s2, "SensYaw", 1.0F);
SensYawGround = sectfile.get(s2, "SensYawGround", 0.0F);
if(SensYawGround == 0.0F)
SensYawGround = SensYawAir;
SensPitch = sectfile.get(s2, "SensPitch", 1.0F);
SensRoll = sectfile.get(s2, "SensRoll", 1.0F);
Общая расшифровка и описание кода нового:
SensYawAir = sectfile.get(s2, "SensYaw", 1.0F);
Это фиксация параметра SensYaw из баттонса(или внешней ФМ) для случая самолет поднялся в воздух.
SensYawGround
Это новый параметр добавляемый в баттонс(или внешней ФМ) флайтмодели КОНКРЕТНОГО самолета для случая самолет
находится на земле на взлете или коснулся земли на посадке.
if(SensYawGround == 0.0F)
SensYawGround = SensYawAir;
Это если нет параметра SensYawGround нового во флайтмодели в баттонсе(или внешней ФМ),
то используется ВСЕГДА И ВЕЗДЕ обычный параметр чувствительности руля направления имеющийся в баттонсе(или внешней ФМ).
И управляемость одинакова для земли и воздуха.
Тоесть данный код по идеи не должен никак влиять ни на какие самолеты, у которых нету этого нового параметра SensYawGround и нового в кода в классе КОНКРЕТНОГО самолеты .