Показать сообщение отдельно
Старый 31.03.2019, 01:24   #1
carsmaster
Пытающийся полететь
 
Аватар для carsmaster
 
Регистрация: 21.05.2009
Адрес: Сталинград
Сообщений: 2,424
Отправить сообщение для carsmaster с помощью ICQ Отправить сообщение для carsmaster с помощью Skype™
По умолчанию Заготовка мода регулировки SensYaw(управляемость) на земле.

Здравствуйте.
Ну из названия темы видно, что это не мод. Это описание возможного создания мода.
А сделано это из соображений, что я то на версии 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 и нового в кода в классе КОНКРЕТНОГО самолеты .

Последний раз редактировалось carsmaster; 31.03.2019 в 01:32.
carsmaster вне форума   Ответить с цитированием