AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > Первым делом, первым делом - самолеты

Важная информация

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.07.2023, 21:07   #1381
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

А шаг при этом регулировался?
В ФМ у каких Ла-5ФН прописан металлический лонжерон?

+++++++++

В каких единицах измерения движок игры считает давление наддува?

Последний раз редактировалось Dimas1999; 27.07.2023 в 21:24.
Dimas1999 на форуме   Ответить с цитированием
Старый 27.07.2023, 23:26   #1382
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
Сообщение

Цитата:
Сообщение от Dimas1999 Посмотреть сообщение
А шаг при этом регулировался?
В ФМ у каких Ла-5ФН прописан металлический лонжерон?

+++++++++

В каких единицах измерения движок игры считает давление наддува?
В фм материал лонжерона прописать нет возможности, только перегрузку.
Цитата:
G_class_coeff 21.0
G_class 10.0
Первое - тренированность пилота - Лавке завысил на 1 единицу.
Второе - хрупкость самолёта в целом.
Поскольку в полевых условиях Лавки не любили дожди и снег -
прописал 10.
Хотя Ла-7 можно уже и 10.5/11.
Это нужно проводить тесты без кокпита - на скольких Джи будут хрустеть планер.
Можно первым Лавкам поставить Джи 9.5.
К сожалению в последних патчах крылья не отстёгиваются.
Фока у меня имеет 14 джи. Но там и "кузов чугиниевый".
Пробовал в боях Лавки - мне 10 Джи нормально, на большинстве
маневров превысить сложно, хотя если на 650 резко дёрнуть ручку,
то сломать можно не только Лавку.
У Яков тоже десятка прописана, хотя для 42 года можно и 9 писать -
какчество сборки упало.
По мере поступления дюраля в Яках могли ставить нормальные лонжероны.
У Яка всё крыло съёмное, поэтому при больших повреждениях
крылья на аэродромах могли ставить любые.
Поэтому поставил 10 - типа некий усреднённый коэфициент.
По коду прибора наддува:
Код:
super.mesh.chunkSetAngles("zManifold1a", floatindex(cvt(((FlightModelMain) (super.fm)).EI.engines[0].getManifoldPressure(), 0.399966F, 2.133152F, 3F, 16F), manifoldScale), 0.0F, 0.0F);
Можно пробывать двигать первые две цифры, сначала первую.
И смотреть на соотношение номинал/форсаж(950/1000 мм. рт.ст.).
Переводчик давления, которым пользуюсь.
https://www.translatorscafe.com/unit...я%20атмосфера/
Ил читает техническую атмосферу в моторах.
Например.
При настройке мотора для Д-520 у меня "точно совпали" высоты
и давление наддува как в скринах документов по мотору.
В емд писал в тех.атмосферах, а прибор показывал в мм. рт.ст.

Последний раз редактировалось Vasya; 30.07.2023 в 12:12.
Vasya вне форума   Ответить с цитированием
Старый 28.07.2023, 00:26   #1383
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Разве материал лонжерона не влиял на вес? Вроде, даже центровка на Ла-5ФН тип 41 с металлическим лонжероном поменялась.
Цитата:
На Ла-5ФН из-за смещения центра тяжести вперед углы отклонения увеличили до 27 градусов.
Про наддув.

1 цифра должна быть в ат и соответствовать 300 мм рт. ст., а последняя 1600 мм рт. ст. Сейчас эти цифры никакой атмосфере не соответствуют.
Затем в конце класса есть что-то типа ManifoldScale и много цифр. Каждая цифра соответствует углу поворота стрелки каждые 100 мм рт. ст.

Пока выкладываю версию с неоткалиброванными датчиками.
https://drive.google.com/file/d/1BHq...usp=drive_link

Ещё в прошлой версии сделал анимацию совка радиатора для линейки Ла-5.
Добавил забытый скин для позднего Ла-5 ФН.
Для раннего Ла-5 сделал переплёт фонаря от gemgi, а так же из его мода добавил некоторые мелочи в кабины всей линейка Ла-5/7.
Добавил ЛаГГ-3 М-82.
ЛаГГ-5 теперь имеет неубирающееся шасси и нет предкрылок.
Ещё в прошлый раз были добавлены углы отклонения рулей от Васи. Сейчас уточнил немного углы.
Убрал по ошибке добавленный код протектора бака. По имеющимся данным, он пропал в момент перехода на трёхбачную систему.
Отсоединил жалюзи капота от пропеллера.
У ранних Ла-5 Тип 37 теперь нет маленьких воздухозаборников кабины. Только теперь появился шов на стыке меша капота и меша кабины. Такие швы есть между килем и хвостом у "новых" моделей и у Ла-5Ф раннего между кабиной и хвостом. Долго искал как их убрать, нашёл информацию на САС. Пока мне не удалось это исправить. В той или иной степени подобным страдают некоторые старые дефолтные, а так же некоторые модные самолёты. Старался не трогать меши дефолтных моделей, чтобы они были без косяков. Но у Ла-5 теперь шов на капоте, его можно убрать, если закинуть в папку с самолётом меши Engine1 из предыдущей версии, но тогда вернутся лишние воздухозаборники.
Dimas1999 на форуме   Ответить с цитированием
Старый 28.07.2023, 01:11   #1384
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
По умолчанию

Цитата:
Сообщение от Dimas1999 Посмотреть сообщение
Разве материал лонжерона не влиял на вес?
Вроде, даже центровка на Ла-5ФН тип 41 с металлическим лонжероном поменялась.

Про наддув.
1 цифра должна быть в ат и соответствовать 300 мм рт. ст., а последняя 1600 мм рт. ст. Сейчас эти цифры никакой атмосфере не соответствуют.
Затем в конце класса есть что-то типа ManifoldScale и много цифр. Каждая цифра соответствует углу поворота стрелки каждые 100 мм рт. ст.
................
Может и влиять, смотря из чего лонжерон - точно могут сказать только документы.
На сколько изменилась центровка позднего Ла-5ФН(лучше написать САХ в проц.)?
Потому что сейчас у нас наоборот увеличена до 22.6%.
На "ощупь" джоем в игре 22 или 24 проц. - не определить.
Только в реальном самолёте по поведению в маневрах.
По наддуву: прибор показывает в мм. рт. ст.
Смотрим в мотор сколько там АТА, потом в игре на прибор - номинал/форсаж
и думает куда двигать шкалу в коде.
Например - переделывал код шкали наддува в Лео-451, там шкалу
взяли от темературы масла почему то... в модах ещё и не такое бывает.
Вот разница в коде и существенная.

Код:
// mesh.chunkSetAngles("STRELKA_BOOST", cvt(pictManf = 0.91F * pictManf + 0.09F * fm.EI.engines[0].getManifoldPressure(), 0.7242097F, 2.103161F, 60F, -240F), 0.0F, 0.0F);
   mesh.chunkSetAngles("STRELKA_BOOST", cvt(pictManf = 0.91F * pictManf + 0.09F * fm.EI.engines[0].getManifoldPressure(), 0.7242097F, 1.75F, 60F, -360F), 0.0F, 0.0F);
На выходе показания номинала и форсажа получились в мм. рт.ст.
У нас для каждой Лавки прописано в классе давление при форсаже.
Например для Ла-5ФН:
у тебя в моде
Код:
protected void afterburnerhud()
    {
        if(super.FM.isPlayers() && ((FlightModelMain) (super.FM)).EI.engines[0].getControlAfterburner())
            HUD.logRightBottom("\u041D\u0430\u0434\u0434\u0443\u0432 1200 \u043C\u043C!");
    }
[/CODE]
У меня в старом моде Лавок
Код:
protected void afterburnerhud()
    {
        if(super.FM.isPlayers() && ((FlightModelMain) (super.FM)).EI.engines[0].getControlAfterburner())
            HUD.logRightBottom("Supercharging 1200 mm!");
    }
То есть прибор наддува в кокпите Ла-5ФН на номинале/форсаже должен
показывать 1000/1200 мм. рт.ст.

Последний раз редактировалось Vasya; 28.07.2023 в 01:26.
Vasya вне форума   Ответить с цитированием
Старый 29.07.2023, 00:42   #1385
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Откалибровал датчики наддува всей линейки.

https://drive.google.com/file/d/1HCm...ew?usp=sharing

Про САХ нашёл на форуме БзС.
https://forum.il2sturmovik.ru/topic/...D1%8B/page/13/

Испытания НИИ ВВС
Ла-5 №37210444 с мотором №65021043 (М-82Ф)
Полётный вес самолёта 3360 кг
При этом центровка - 22,3% САХ


Ла-5ФН №39210104 центровка 18,9% САХ при полётном весе 3305 кг. Вираж 25 сек на 5000м. Фильм НИИ ВВС.
Dimas1999 на форуме   Ответить с цитированием
Старый 29.07.2023, 07:25   #1386
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
По умолчанию

Цитата:
Сообщение от Dimas1999 Посмотреть сообщение
Про САХ нашёл на форуме БзС.
https://forum.il2sturmovik.ru/topic/...D1%8B/page/13/

Испытания НИИ ВВС
Ла-5 №37210444 с мотором №65021043 (М-82Ф)
Полётный вес самолёта 3360 кг
При этом центровка - 22,3% САХ


Ла-5ФН №39210104 центровка 18,9% САХ при полётном весе 3305 кг. Вираж 25 сек на 5000м. Фильм НИИ ВВС.
Исправлю после обеда.
Vasya вне форума   Ответить с цитированием
Старый 30.07.2023, 00:40   #1387
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Слегка обновил сборку ЛаГГ-3.
Добавил коллизию бронестекла для ЛаГГ-3 66 серии.
Добавил код протектора бензобака.
Снова поменял код работы РПК, теперь работает как было изначально задумано.
Сломал работу компаса, буду исправлять.

Последний раз редактировалось Dimas1999; 30.07.2023 в 12:48.
Dimas1999 на форуме   Ответить с цитированием
Старый 30.07.2023, 03:32   #1388
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
Вопрос

Цитата:
Сообщение от Dimas1999 Посмотреть сообщение
.....................
Добавил код протектора бензобака.
Снова поменял код работы РПК, теперь работает как было изначально задумано.
if(s.startsWith("xxtank")) - неадекватно работает?
А "код работы РПК" - а это где можно посмотреть?
-------------------------
Фм с предкрылками, кроме Лагг-5, и у позднего Ла-5ФН сдвинута
вперёд развесовка (САХ 18.9 проц.).
В остальных Лавках выставлял развесовку более-мение правильно.
Вложения
Тип файла: rar LA 30-07-2023 с предкрылками.rar (85.9 Кб, 211 просмотров)
Vasya вне форума   Ответить с цитированием
Старый 30.07.2023, 12:38   #1389
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
if(s.startsWith("xxtank")) - неадекватно работает?
Уже много лет есть дефолтный код для протектора бака. Для Ла-5 ввели где-то в 4.06-4.09.
Код:
    public void rareAction(float dt, boolean bMaster)
    {
        super.rareAction(dt, bMaster);
        if(bMaster)
        {
            for(int i = 0; i < 4; i++)
                if(((FlightModelMain) (super.FM)).AS.astateTankStates[i] > 0 && ((FlightModelMain) (super.FM)).AS.astateTankStates[i] < 5 && World.Rnd().nextFloat() < 0.1F)
                    ((FlightModelMain) (super.FM)).AS.repairTank(i);
        }
    }
Насколько я понял код, если состояние бака меньше 5, то с вероятностью 10% бак может загерметизироваться. Так же в суперклассе есть метод public void rareAction, там задаётся вероятность перехода бака из одного состояния в другое. При некритичных повреждениях бак может перестать дымить или затухнуть, типа система нейтрального газа. Для серии Ла-5/7 это есть с версии 1.0R.

xxtank, насколько я понял, задаёт "энергию попадания" при которой происходит пробитие или пожар.
Протектор бензобаков был только на ранних Ла-5, вроде, только на пятибачных.
Про ЛаГГ-3 у меня нет сведений об упразднении протектора.
На серии Як, насколько я знаю, не было протекторов на учебных машинах, консольных баках Як-9ДД, а так же не было системы нейтрального газа на ранних Яках (вероятно, придётся делать копию класса YAK со своим хитбоном с отличным xxtank чтобы лучше горел). С Яками ещё буду работать, нашёл интересную информацию на форуме про Яки от Karabas-Barabas, надо будет подправить некоторые мелочи.

Цитата:
Сообщение от Vasya Посмотреть сообщение
А "код работы РПК" - а это где можно посмотреть?
В классе кабины в нескольких местах дела правки. В 4.10 сделали чтобы при реалистичной навигации стрелка РПК показывала на выбранный маяк, а при аркадной навигации показывала на следующую точку маршрута. Потом в каком-то патче у советских самолётов сломали эту систему и при реалистичной навигации вместо РПК было отверстие. Сейчас код вставил от A6M, работает как в 4.10.
Код:
        public boolean tick()
        {
...
...
...
                setNew.azimuth.setDeg(setOld.azimuth.getDeg(1.0F), fm.Or.azimut());
                setNew.vspeed = (199F * setOld.vspeed + fm.getVertSpeed()) / 200F;
                float f1 = waypointAzimuth();
                if(useRealisticNavigationInstruments())
                {
                    setNew.waypointAzimuth.setDeg(setOld.waypointAzimuth.getDeg(1.0F), getBeaconDirection());
                } else
                {
                    setNew.waypointAzimuth.setDeg(setOld.waypointAzimuth.getDeg(0.1F), f1 - setOld.azimuth.getDeg(1.0F));
                }
            }
            return true;
        }

Код:
    private class Variables
    {
...
...
...
        AnglesFork azimuth;
        AnglesFork waypointAzimuth;

        private Variables()
        {
            azimuth = new AnglesFork();
            waypointAzimuth = new AnglesFork();
        }
    }

    protected float waypointAzimuth()
    {
        return super.waypointAzimuthInvertMinus(5F);
    }
Код:
    public CockpitLAGG_3SERIES1()
    {
...
...
...
        if(Mission.getMissionDate(false) < 0x1285681) // дата появления РПК в 16-ричной системе счисления (19420801 взял данные для Ла-5, когда начали ставить первые РПК)
        {
            mesh.materialReplace("prib_three", "EmptyGauge");
            mesh.materialReplace("prib_three_dd", "EmptyGaugeD");
            mesh.materialReplace("prib_three_night", "EmptyGauge_night");
            mesh.materialReplace("prib_three_dd_night", "EmptyGaugeD_night");
            mesh.chunkVisible("zRPK10", false);
            setNightMats(true);
            setNightMats(false);
        }
    }
Код:
    public void reflectWorldToInstruments(float f)
    {
...
...
...
        mesh.chunkSetAngles("zAzimuth1b", setNew.azimuth.getDeg(0.05F), 0.0F, 0.0F); /// заменил эту строчку, т.к. не стыкуется с кодом выше
        mesh.chunkSetAngles("zRPK10", 0.0F, cvt(setNew.waypointAzimuth.getDeg(f * 0.2F), -25F, 25F, -35F, 35F), 0.0F);/// сам код стрелочки РПК
У ЛаГГа теперь сломал обычный компас, недоглядел...

Последний раз редактировалось Dimas1999; 30.07.2023 в 12:47.
Dimas1999 на форуме   Ответить с цитированием
Старый 30.07.2023, 13:19   #1390
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
По умолчанию

Спасибо за пояснения!
Не знал, что на ранних Яках не было протектора.
А на поздних Лавках точно не было протектора?
В коде ххтанк потухание бака можна задать цифрами.
Где то в японцах есть и взрыв бака.
Надо посмотреть код в классах.
Vasya вне форума   Ответить с цитированием
Старый 30.07.2023, 20:52   #1391
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Немного не совсем ясно написал. На ранних Яках был протектор, но не было системы нейтрального газа.

Цитата:
Сообщение от Karabas-Barabas Посмотреть сообщение
На Мигах то же (отвод выхлопных газов с 16 серии, июнь 41). Про ЛаГГи пусть скажут знатоки ЛаГГов.
К стати, на Як-1 нейтральный газ появился со 102 серии (осень 42) и это уже безгаргротный Як-1, по Степанцу "Як-1Б". На Як-7 с 14 серии (эталон SN 14-11, собственно это первая серия боевых Як-7А) примерно конец зимы 42, т.е. можно сказать на все боевые Як-7 и, естественно, Як-9.
Протектора у Як-1 не было на 60 облегчённой серии.

В 1943 выпустили 2 самолёта Як-1 М-105ПФ для ПВО Саратова без протектора, системы нейтрального газа, бронеспинки и бронестёкол.

Про баки читал, что были предложения по облегчению самолёта от лётчиков. Так же вот ещё:
Цитата:
Но к концу года, как следует из отчета завода № 21 за 1942 год, вес Ла-5 снизили до 3200 кг. Этого удалось добиться, в частности, переходом на трехбаковую топливную систему, заменой одной пушки ШВАК пулеметом БС и отказом от протектированных бензобаков (защита последних с помощью резинового протектора оказалась, как показывал опыт войны, неэффективной от снарядов авиационных пушек).
В дефолте код протектора был только у Ла-5 простого, у Ла-7 тоже нет, но в описании к Ла-7 попадалась информация про протектор. Но всё это мурзилки, нужно что-то более официальное.

Последний раз редактировалось Dimas1999; 30.07.2023 в 21:13.
Dimas1999 на форуме   Ответить с цитированием
Старый 30.07.2023, 22:06   #1392
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
Сообщение

Код:
Код:
            if(s.startsWith("xxtank"))
            {
                int k = s.charAt(6) - 49;
                if(getEnergyPastArmor(0.5F, shot) > 0.0F &&  World.Rnd().nextFloat() < 0.45F)
                {
                    if(FM.AS.astateTankStates[k] == 0)
                    {
                        debuggunnery("Fuel Tank (" + k + "): Pierced..");
                        FM.AS.hitTank(shot.initiator, k, 1);
                        FM.AS.doSetTankState(shot.initiator, k, 1);
                    }
                    if(World.Rnd().nextFloat() < 0.08F || shot.powerType == 3 && World.Rnd().nextFloat() < 0.5F)
                    {
                        FM.AS.hitTank(shot.initiator, k, 4);
                        debuggunnery("Fuel Tank (" + k + "): Hit..");
                    }
                }
                return;
            }
Синий - протектор или броня(от 1.2 до 4.0 - первая цифра).
Розовый время горения и потухаемость - типа(опознано опытным путём).
Первую цифру можно увеличивать до 0.4, вторую уменьшать до 0.2.
Всё нужно проверять в тэстах.
Можно комбинировать, в зависимости что есть на конкретной модели
и вписывать прямо в класс самолёта - так видел делают в дефолте.
Розовые цифры(именно эти, которые взял из японца) можно сразу
потэстить на Лавках без нейтрального газа.
Если будут тухнуть, то попробовать увеличить первую цифру до 0.1.
Дополнительный код для протектора для Лавок лучше опустить в классе
ниже хит-бон, что бы Ил читал сначала код ххТанк.

Последний раз редактировалось Vasya; 30.07.2023 в 22:16.
Vasya вне форума   Ответить с цитированием
Старый 31.07.2023, 00:31   #1393
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
Вопрос

У меня не получается собрать дамаж И-180.
Вписал в Хит-бон названия коллизий, но фиг-вам - только крылья отстреливаются и пилот погибает.
Если будет время - посмотри пожалуйста!
https://drive.google.com/file/d/14JL...usp=drive_link
Все веса настроил, фм почистил от очепяток.
Vasya вне форума   Ответить с цитированием
Старый 31.07.2023, 01:16   #1394
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Обновил сборку ЛаГГов.
Починил компас, надеюсь, другое снова не сломал)
Добавил некоторые элементы из мода Ла-5 от gemgi.
Бонус: освежил кабину ЛаГГ-3РД элементами от поршневых ЛаГГов.

https://drive.google.com/file/d/1tw4...ew?usp=sharing

Про ДМ баков вот что я понял.
Сначала отрабатывается код xxtank, т.к. пришло попадание по колижену xxtank.
(пытаюсь читать приведённый выше код, прошу поправить меня знатоков джавы)
если энергия попадания 0.5 (больше нуля?) с вероятностью меньше 0.45
если бак k имеет состояние 0 (целый)
в отладочный лог "бак k пробит"
присвоить баку k состояние 1 (утечка)
с вероятностью меньше 0.08 или тип снаряда равен 3 (зажигательный?) с вероятностью меньше 0.5
присвоить баку k состояние 4
в отладочный лог топливный бак k повреждён
Тут бак получает урон от попадания, а затем метод RareAction добавляет случайные события.
Код:
    public void rareAction(float dt, boolean bMaster)
    {
        super.rareAction(dt, bMaster);
        if(bMaster)
        {
            for(int i = 0; i < 4; i++)
                if(((FlightModelMain) (super.FM)).AS.astateTankStates[i] > 0 && ((FlightModelMain) (super.FM)).AS.astateTankStates[i] < 5 && World.Rnd().nextFloat() < 0.1F)
                    ((FlightModelMain) (super.FM)).AS.repairTank(i);
        }
    }
Если состояние бака больше 0 и меньше 5 с вероятностью меньше 0.1
починить бак i (сработал протектор)

Про этот код дошло до меня, это не имитация нейтрального газа, попутал немного с другим модом)

Код:
        if(paramBoolean)
        {
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[0] + "0", 0, this);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 1, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 2, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[1] + "0", 0, this);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[2] + "0", 0, this);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
        }
Если состояние бака 0 более 4, с вероятностью 0.07 присвоить какой-то там эффект (типа разнообразие)
Если состояние бака 0 более 4, с вероятностью 0.14 присвоить баку 1 состояние 1 (типа распространение огня)
...
...
...

Подобный код, но для затухания видел у WxTech в моде для Б-17.
https://www.sas1946.com/main/index.p...c,66857.0.html

Надо ещё подумать про всё это.

По И-180.
У него коллизии очень посредственные и кривые, есть дыры и несовпадения с очертаниями фюзеляжа.
Есть бак, стойки шасси, блок цилиндров, картер, маслорадиатор, "оборудование" (вероятно, магнето).
Dimas1999 на форуме   Ответить с цитированием
Старый 31.07.2023, 01:33   #1395
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
По умолчанию

Дело в том, что эти коллизи не работают вообще и никак.
В хиер-хим они есть, конечно.
Хотя бы что бы бак и маслорадиатор тёк...
Потому что в упор глотает пару снарядов в нос/фюзеляж... и ничего... воюет дальше.
shot.powerType == 3 пишут для всех баков.
Возможно имеется в виду сила воспламенения?
Потому как эта строка отвечает(выяснил на практике) за какчество горения и частоту/возможность затухания.
При большой первой розовой цифре бак взрывается - так буд то на японцах.
Когда тестил пару лет назад код для Яка - бак тоже взрывался.
Сейчас бак Яка может проглотить 7-10 пуль 12.7, в зависимости от ракурса.
Vasya вне форума   Ответить с цитированием
Старый 31.07.2023, 08:35   #1396
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Надо смотреть имена коллизий в самом планере и думать что там не так.

Для всех т.к. логично что от зажигательного будут гореть баки (выстрел тип мощности 3).
Розовые цифры - это вероятности.
Как я понял, вероятность 0.08 (первая розовая) воспламенения от любого попадания с энергией выше 0.5 (первая синяя) или если тип выстрела 3, то вероятность возгорания 0.5 (вторая розовая) .
Ниже строчка
... k, 4 ...
K номер бака
4 тип повреждения присваиваемый Б
баку k
Dimas1999 на форуме   Ответить с цитированием
Старый 31.07.2023, 10:44   #1397
KimCh
Местный
 
Регистрация: 23.03.2018
Сообщений: 330
По умолчанию

Простой редактор, Лагг-3 серия 66 нет кабины, в логе:

[7:38:44] INTERNAL ERROR: Can't open file '3do/plane/LaGG-3series66/Cockpit_D0_Glass2.mat'
[7:38:44] WARNING: object '3do/plane/LaGG-3series66/Cockpit_D0_Glass2.mat' of class 'TMaterial' not loaded
[7:38:44] INTERNAL ERROR: Material: Can't load 'Cockpit_D0_Glass2.mat'
[7:38:44] Mission error, ID_04: java.lang.RuntimeException: INTERNAL ERROR: Material: Can't load 'Cockpit_D0_Glass2.mat'
KimCh вне форума   Ответить с цитированием
Старый 31.07.2023, 15:51   #1398
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,293
По умолчанию

Подтверждаю!
Кокпит не собирается вообще - в папке кокпита нет файла
Can't load 'Cockpit_D0_Glass2.mat
Не нашёл.
Нужен фикс.
Жаль удалил вчера все скачанные ране сборки Лаггов.
В патче 4.13.4 только апрельская сборка.
Vasya вне форума   Ответить с цитированием
Старый 31.07.2023, 18:22   #1399
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Это ошибка в планере, кинуть меш в папку с планером 66 серии.
Вложения
Тип файла: zip Eq_D0.zip (1.1 Кб, 236 просмотров)
Dimas1999 на форуме   Ответить с цитированием
Старый 01.08.2023, 00:22   #1400
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,636
По умолчанию

Играю с кодом повреждения баков. Отладку делаю на ЛаГГ-3 4 серии.

Код:
    public void rareAction(float paramFloat, boolean paramBoolean)
    {
        super.rareAction(paramFloat, paramBoolean);
        if(paramBoolean)
        {
типа какие-то эффекты
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[0] + "0", 0, this);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[1] + "0", 0, this);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[2] + "0", 0, this);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] > 4 && World.Rnd().nextFloat() < 0.07F)
                nextDMGLevel(((FlightModelMain) (super.FM)).AS.astateEffectChunks[3] + "0", 0, this);

код ниже позволяет перекидываться огню на соседний бак
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 1, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 0, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 3, 1);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] > 4 && World.Rnd().nextFloat() < 0.14F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 2, 1);

код ниже позволяет затухать бакам
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[0] > 4 && World.Rnd().nextFloat() < 0.1F)
				((FlightModelMain) (super.FM)).AS.setTankState(this, 0, ((FlightModelMain) (super.FM)).AS.astateTankStates[0] - 2);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[1] > 4 && World.Rnd().nextFloat() < 0.1F)
				((FlightModelMain) (super.FM)).AS.setTankState(this, 1, ((FlightModelMain) (super.FM)).AS.astateTankStates[1] - 2);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[2] > 4 && World.Rnd().nextFloat() < 0.1F)
				((FlightModelMain) (super.FM)).AS.setTankState(this, 2, ((FlightModelMain) (super.FM)).AS.astateTankStates[2] - 2);
            if(((FlightModelMain) (super.FM)).AS.astateTankStates[3] > 4 && World.Rnd().nextFloat() < 0.1F)
				((FlightModelMain) (super.FM)).AS.setTankState(this, 3, ((FlightModelMain) (super.FM)).AS.astateTankStates[3] - 2);
        }
    }
Так же в классе самолёта стоит протектор
Код:
    public void rareAction(float dt, boolean bMaster)
    {
        super.rareAction(dt, bMaster);
        if(bMaster)
        {
            for(int i = 0; i < 4; i++)
                if(((FlightModelMain) (super.FM)).AS.astateTankStates[i] > 0 && ((FlightModelMain) (super.FM)).AS.astateTankStates[i] < 5 && World.Rnd().nextFloat() < 0.1F)
                    ((FlightModelMain) (super.FM)).AS.repairTank(i);
        }
    }
Убирал разные части кода и смотрел что происходит.
Протектор довольно быстро заделывает пробитый бак, код работает.
Огонь перекидывается на соседний бак как и положено, но если нет кода затухания бака, то самолёт обречён, у меня всегда в таком случае ломало консоль.
Если включён код затухания, то соседний бак успевает получить повреждения, но, скорее всего, бак успеет потухнуть, а соседний бак не успеет разгореться.

Так же в классе Ла-5 есть такой код. Особо не понял на что он влияет, будто консоль чаще ломает при горящем баке.
Код:
     protected boolean cutFM(int paramInt1, int paramInt2, Actor paramActor)
    {
        switch(paramInt1)
        {
        case 33: // '!'
            if(World.Rnd().nextFloat() < 0.233F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 1, 6);
            return super.cutFM(34, paramInt2, paramActor);

        case 36: // '$'
            if(World.Rnd().nextFloat() < 0.233F)
                ((FlightModelMain) (super.FM)).AS.hitTank(this, 2, 6);
            return super.cutFM(37, paramInt2, paramActor);

        case 34: // '"'
        case 35: // '#'
        default:
            return super.cutFM(paramInt1, paramInt2, paramActor);
        }
    }
Dimas1999 на форуме   Ответить с цитированием
Ответ


Здесь присутствуют: 11 (пользователей: 0 , гостей: 11)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:44. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Рейтинг@Mail.ru