AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Первым делом, первым делом - самолеты (http://forum.aviaskins.com/forumdisplay.php?f=20)
-   -   Моды от Димы (http://forum.aviaskins.com/showthread.php?t=5439)

Dimas1999 24.04.2023 08:56

Скомпилировалось?
Всё что про kl, kr, kc - это к GearDamageFX. В исходниках WxTech она стояла там же, где и у меня. Она общая для всех самолётов, и должна стоять в суперклассе.
Return g1_ позволяет Г-1 иметь свой скин, другой хиер.хим не поможет. У него и так отдельный на базе планёра Г-2, но с некоторыми другими мешами.
Выбор скина от нации не везде нужнен, а только там, где в папке с планером есть нужный скин, иначе может быть розовый самолёт, если не ошибаюсь.
Вообще эти конструкции есть в 4.12.2. У Бф-109 выбор по нациям, у П-38 выбор от даты мисии. Для компиляции надо указать com.maddox.il2.ai.Regiment или просто всю папку сразу ai.*

Vasya 24.04.2023 11:20

Цитата:

Сообщение от Dimas1999 (Сообщение 224978)
Скомпилировалось?
Всё что про kl, kr, kc - это к GearDamageFX.
В исходниках WxTech она стояла там же, где и у меня. Она общая для
всех самолётов, и должна стоять в суперклассе.
Return g1_ позволяет Г-1 иметь свой скин, другой хиер.хим не поможет.
У него и так отдельный на базе планёра Г-2, но с некоторыми другими мешами.
Выбор скина от нации не везде нужнен, а только там, где в папке
с планером есть нужный скин, иначе может быть розовый самолёт,
если не ошибаюсь.
Вообще эти конструкции есть в 4.12.2. У Бф-109 выбор по нациям,
у П-38 выбор от даты мисии. Для компиляции надо указать
com.maddox.il2.ai.Regiment или просто всю папку сразу ai.*

Я 21 апреля делал как можно быстрее - задача стояла заставить компиллится в патче 4.12.2.
Про отдельные папки скинов уже посмотрел в 3До.
Часть повторяющегося кода попробую сократить.
Возможно код колёс
public static void moveGear(HierMesh hiermesh, float f)
protected void moveGear(float f)
можно будет вставить в промежуточный класс. :ok:
Цитата:

Сообщение от Vasya (Сообщение 224976)
........................
Всё (твои исходники + недостающее) в 4.12.2 компиллится, завтра попробую завершить шлифовку. :ok:


Dimas1999 24.04.2023 13:38

У Густавов код для шасси не везде одинаковый. Г-1 и 2 имели убирающееся хвостовое колесо, с Г-4 пошло не убирающееся.

Vasya 27.04.2023 20:28

Цитата:

Сообщение от Dimas1999 (Сообщение 224981)
У Густавов код для шасси не везде одинаковый. Г-1 и 2 имели убирающееся хвостовое колесо, с Г-4 пошло не убирающееся.

Гипертония немного ударила - не было сил пару дней смотреть классы.
Возник вопрос по Мессерам:
у тебя в основном классе такой код
Код:

    protected void moveFlap(float f)
    {
        float f1 = -45F * f;
        hierMesh().chunkSetAngles("Flap01_D0", 0.0F, f1, 0.0F);
        hierMesh().chunkSetAngles("Flap02_D0", 0.0F, f1, 0.0F);
        if(((FlightModelMain) (super.FM)).CT.getGear() >= 0.4F)  //this and below for gear dmg; in gearDamageFX: ((FlightModelMain) (super.FM)).CT.GearControl = 0.4F;
        {
            kl = 1.0F;
            kr = 1.0F;
            kc = 1.0F;
        }
    }

Для чего код повреждения шасси помещён в метод про закрылки?
Может должен блокироваться выпуск закрылков?
Если нет - то закрылки у нас механические - крутится колёсико в кабине.
Повреждение гидравлики не должно влиять на закрылки.
Правильно ли я понимаю?

Vasya 27.04.2023 20:59

Для пустынных вариантов Е-4/5/6 можна добавить установку фильтра
в зависимости от театра применения.
Код:

    public void onAircraftLoaded()
    {
        super.onAircraftLoaded();
        if(Config.isUSE_RENDER())
            if(World.cur().camouflage == 2 || World.cur().camouflage == 5)
            {
                if(hierMesh().chunkFindCheck("Filter_d0") != -1 && !(this instanceof BF_109E_5TR))
                {
                    hierMesh().chunkVisible("Filter_d0", true);
                    hierMesh().chunkVisible("FilterFlap1_D0", true);
                    hierMesh().chunkVisible("FilterFlap2_D0", true);
                    bHasFilter = true;
                } else
                if(hierMesh().chunkFindCheck("FilterE_D0") != -1)
                {
                    hierMesh().chunkVisible("FilterE_d0", true);
                    hierMesh().chunkVisible("FilterEFlap_D0", true);
                    bHasFilterE = true;
                }
            } else
            if(World.cur().camouflage == 0 && loadingCountry != null && loadingCountry.equals(PaintScheme.countryFinland) && hierMesh().chunkFindCheck("Filter_d0") != -1 && ((this instanceof BF_109E_5TR)))
            {
                int i = Mission.getMissionDate(true);
                if(World.Rnd().nextFloat() > 0.5F && i > 0x128a1e5)
                {
                    hierMesh().chunkVisible("Filter_d0", true);
                    hierMesh().chunkVisible("FilterFlap1_D0", true);
                    hierMesh().chunkVisible("FilterFlap2_D0", true);
                    bHasFilter = true;
                }
            }
    }

Для Ф-3/4 думаю тоже подойдёт. :ok:

Dimas1999 27.04.2023 21:30

Если честно, я и сам почти неделю не прикасался к сборке. Вероятно, продолжение будет в конце мая или в июне только. Успел перебрать пока только все модели серии Ф. За основу взяты планеры от JapanCat с пилотами, шасси и пропеллерами от Barnesy.
Зачем так сделано? Не знаю. Так сделал WxTech, так же сделано и в оригинале мода.
Е-4 можно, а у Е-5/6 есть отдельные тропические модели. Их добавил т.к. были в каком-то моде с САС.

Vasya 27.04.2023 21:31

Хотел было написать про код отказа пушки МЖФФ для линейки еФок...
Но он есть в среднем классе - Молодец!!! :good:

Vasya 27.04.2023 21:34

Цитата:

Сообщение от Dimas1999 (Сообщение 224995)
Если честно, я и сам почти неделю не прикасался к сборке. Вероятно, продолжение будет в конце мая или в июне только. Успел перебрать пока только все модели серии Ф. За основу взяты планеры от JapanCat с пилотами, шасси и пропеллерами от Barnesy.
Зачем так сделано? Не знаю. Так сделал WxTech, так же сделано и в оригинале мода.
Е-4 можно, а у Е-5/6 есть отдельные тропические модели. Их добавил т.к. были в каком-то моде с САС.

Просто этот код можно вписать в средние классы и дефолтные Е и Ф-ки
будут с фильтрами.
В Ультимат-паке у меня тоже отдельный основной класс для Е-шек и там такой код:
Код:

public void update(float f)
    {
        super.update(f);
        CombustionFlame();
        if(bHasFilter)
        {
            if(openFilter && (double)fFilter < 1.0D)
            {
                fFilter += 0.050000000000000003D;
                if(fFilter > 1.0F)
                    fFilter = 1.0F;
            } else
            if(!openFilter && fFilter > 0.0F)
            {
                fFilter -= 0.050000000000000003D;
                if(fFilter < 0.0F)
                    fFilter = 0.0F;
            }
            if(Math.abs(filterFlapps - fFilter) > 0.01F)
            {
                filterFlapps = fFilter;
                hierMesh().chunkSetAngles("FilterFlap1_D0", fFilter * -40F, 0.0F, 0.0F);
                hierMesh().chunkSetAngles("FilterFlap2_D0", fFilter * 40F, 0.0F, 0.0F);
            }
        } else
        if(bHasFilterE)
        {
            if(openFilter && (double)fFilter < 1.0D)
            {
                fFilter += 0.050000000000000003D;
                if(fFilter > 1.0F)
                    fFilter = 1.0F;
            } else
            if(!openFilter && fFilter > 0.0F)
            {
                fFilter -= 0.050000000000000003D;
                if(fFilter < 0.0F)
                    fFilter = 0.0F;
            }
            if(Math.abs(filterFlapps - fFilter) > 0.01F)
            {
                filterFlapps = fFilter;
                hierMesh().chunkSetAngles("FilterEFlap_D0", fFilter * 54F, 0.0F, 0.0F);
            }
        }

Пока ничего вставлять не буду.
Подожду твоего решения - за месяц могут быть новые идеи. :ok:

Vasya 27.04.2023 21:46

Для Г-6АС надпись форсажа поставлю простую.
Там установлен родной мотор АС без впрыска метанола.
На Г-6Ерла мотор от Г-4 - надпись форсажа поправил.
Асы будут летабами. :ok:
В Ультимат-паке они летабы.

Dimas1999 27.04.2023 21:58

Делай, я пока в классах чуть ссылки на планеры поменял.
Свою игрушку, Ладу Калину, сегодня в плановый ремонт сдал, вот и появилось время.
Как тепло стало, начал делать всё, что откладывал зимой. Вроде мелочи, а делать долго. В отпуске собираюсь скататься за 2000 км на родину. Развлекуха у меня такая, нравится водить очень. Делаю всё под себя, с любовью, машина дарит исключительно положительные эмоции. Был бы гараж с подъёмником и опытный наставник, вообще бы не вылезал оттуда)

Vasya 27.04.2023 22:08

Цитата:

Сообщение от Dimas1999 (Сообщение 224999)
Делай, я пока в классах чуть ссылки на планеры поменял.
Свою игрушку, Ладу Калину, сегодня в плановый ремонт сдал,
вот и появилось время.
Как тепло стало, начал делать всё, что откладывал зимой.
Вроде мелочи, а делать долго. В отпуске собираюсь скататься
за 2000 км на родину. Развлекуха у меня такая, нравится водить очень.
Делаю всё под себя, с любовью, машина дарит исключительно
положительные эмоции. Был бы гараж с подъёмником и опытный
наставник, вообще бы не вылезал оттуда)

:good:
--------------------
Возможно завтра фикс-2 выложу.
На водоплавающий и ласточку вернул пока САСовские планеры,
кокпит от Г-2.
Код выпадения шасси из метода флапс убрал, но сам метод в основном классе/главном оставил.
Закрылки будут выпускаться на 49 градусов(типа исторично).
Завтра за город еду по работе.
Ещё нужно наддув поправить в кокпитах.
Думаю, что фикс будет единым для 2.12/4.13++. :ok:
Это пока не выйдет обновление через месяц.
---------------
Я тоже мечтаю о переезде на юг страны - в Киеве 7+ месяцев в году
висит мряка - облака низкие из-за рукотворного моря.
А мне для головы/сердца нужно продуваемое место в селе.

Vasya 29.04.2023 00:03

В код тропического фильтра вписал линейку Густавов.
Код:

    public void onAircraftLoaded()
    {
        super.onAircraftLoaded();
        if(Config.isUSE_RENDER())
            if(World.cur().camouflage == 2 || World.cur().camouflage == 5)
            {
                if(hierMesh().chunkFindCheck("Filter_d0") != -1 && ! ((this instanceof BF_109G2) || (this instanceof BF_109G4) || (this instanceof BF_109G213ATA) || (this instanceof BF_109G613ATA) || (this instanceof BF_109G6) || (this instanceof BF_109G6Late) || (this instanceof BF_109G6Mid) || (this instanceof BF_109G6Erla)))
                {
                    hierMesh().chunkVisible("Filter_d0", true);
                    hierMesh().chunkVisible("FilterFlap1_D0", true);
                    hierMesh().chunkVisible("FilterFlap2_D0", true);
                    bHasFilter = true;
                } else
                if(hierMesh().chunkFindCheck("FilterE_D0") != -1)
                {
                    hierMesh().chunkVisible("FilterE_d0", true);
                    hierMesh().chunkVisible("FilterEFlap_D0", true);
                    bHasFilterE = true;
                }
            } else

Вопрос такой: меши фильтра достаточно положить в папку с планером :I'm_thinking:
или нужно прописывать в хиер-хим?
Сможешь ли прикрепить эти меши вместе с мат-файлами тут?

carsmaster 29.04.2023 00:22

Цитата:

Сообщение от Vasya (Сообщение 225016)
Вопрос такой: меши фильтра [I]достаточно положить в папку с планером..

Своим кодом(hierMesh().chunkVisible("Filter_d0", true);) в классах вы просто включаете видимость мешей.
Без прописки в хер химе движок игры не будет знать куда "пришпандорить":umora: указываемый вами меш на самолет.
Обычно меши в хер химе, что управляются видимостью через классы
имеют прописку "hidden"(скрытые), если они появляются только от управления классом. Во многих дефолных самолетах Вы можете посмотреть как хер химе указывается "hidden"(скрытые).
Так что модель самолета "собирается" полностью со всеми мешами, что указаны в хер химе, только "hidden"(скрытые) меши, не показываются до момента срабатывания кода в классах.

Dimas1999 29.04.2023 00:31

Где-то они есть уже (меши Filter_d0), а где-то нет. Сделал все модели E, F, T, остались G, K, Z. B, C, D почти не трогал, там за основу изначально был взят планер от САС.

Vasya 29.04.2023 01:34

Цитата:

Сообщение от Dimas1999 (Сообщение 225018)
Где-то они есть уже (меши Filter_d0), а где-то нет. Сделал все модели E, F, T,
остались G, K, Z. B, C, D почти не трогал, там за основу изначально был
взят планер от САС.

Перебрал классы самолётов, сравнил с фм, внёс правки в худ.
Написал мотор для К-14.
------------------------------
Добрался до классов кокпитов.
Поправил цифру для прибра АТА:
Код:

mesh.chunkSetAngles("Z_ATA1", 15.5F + cvt(pictManifold = 0.75F * pictManifold + 0.25F * fm.EI.engines[0].getManifoldPressure(), 0.6F, 1.8F, 0.0F, 336F), 0.0F, 0.0F);
У нас есть несколько классов кокпитов, которые не "не работают".
Например CockpitBF_109E, CockpitBF_109Eх.
Они нужны?
Не проще ли сделать два класса кокпитов: для Е-1/3 и для Е-4/7?
В класс CockpitBF_109E уже дописал недостающие модели(и добавил в код меша бронестекла).
Поздние Е-шки имеют одину папку кокпита и один хиер-хим.
Подойдёт ли для них всех класс CockpitBF_109E?
Код:

            else
            if(fm.actor instanceof BF_109T_1)
                type = 6;
            else
            if(fm.actor instanceof BF_109T_2)
                type = 7;

В Ультимат-паке я делал два класса кокпитов для поздних Е-шек:
CockpitBF_109EB и CockpitBF_109ET.
Вобщем вопрос попробую сформулировать так:
какой класс из списка
CockpitBF_109E
CockpitBF_109Ex
CockpitBF_109E4
CockpitBF_109E7
можно взять общим для поздних Е-шек?
----------------------
Так же для тропического фильтра буду ждать набор - меши, маты и хиер-химы. :ok:
-----------------------
Кода для меша бронестекла в классе кокпита Е-7 не нашёл. :DONT_KNOW:

Vasya 29.04.2023 01:43

Цитата:

Сообщение от carsmaster (Сообщение 225017)
Своим кодом(hierMesh().chunkVisible("Filter_d0", true);) в классах вы просто включаете видимость мешей.
Без прописки в хер химе движок игры не будет знать куда
"пришпандорить":umora: указываемый вами меш на самолет.
Обычно меши в хер химе, что управляются видимостью через классы
имеют прописку "hidden"(скрытые), если они появляются только от
управления классом. Во многих дефолных самолетах Вы можете
посмотреть как хер химе указывается "hidden"(скрытые).
Так что модель самолета "собирается" полностью со всеми мешами,
что указаны в хер химе, только "hidden"(скрытые) меши, не показываются до момента срабатывания кода в классах.

Спасибо! :good:
Не знал как работает точно. :I'm_thinking:
Я только немного :ups: научился читать код и конструировать класс из наявных методов.

Dimas1999 29.04.2023 17:14

Цитата:

Сообщение от Vasya (Сообщение 225019)
У нас есть несколько классов кокпитов, которые не "не работают".
Например CockpitBF_109E, CockpitBF_109Eх.
Они нужны?
Не проще ли сделать два класса кокпитов: для Е-1/3 и для Е-4/7?
В класс CockpitBF_109E уже дописал недостающие модели(и добавил в код меша бронестекла).
Поздние Е-шки имеют одину папку кокпита и один хиер-хим.
----------------------
Так же для тропического фильтра буду ждать набор - меши, маты и хиер-химы. :ok:
-----------------------
Кода для меша бронестекла в классе кокпита Е-7 не нашёл. :DONT_KNOW:

А ты попробуй закомпилировать, если и без них закомпилируется - то не надо) Класс CockpitBF_109E не используется, он какой-то кривой, в нём имена не будут стыковаться с моими именами в 3do. Он был с модом на кабины Е4/7, в нём остались кое-какие не реализованные задумки. CockpitBF_109Eх тоже остаток от старых версий.
Сейчас актуальны только E1,3,4,7. Для Е1 и Е3 классы разныме сделал Catsy, не знаю зачем так, но там чуть разный код для счётчика боеприпаосв.
У Е4/7 разные коды повреждения стёкол, у Е7 может появится ещё повреждение бронестекла:
Код:

super.mesh.chunkVisible("Z_HitArmor1", true);
Тропические фильтры где-то вшиты в сфс, если не ошибаюсь. Попробую сегодня линейку G пересобрать.

Vasya 29.04.2023 20:29

Код бронестекла уже перепроверил: в моде не совпадает с дефолтным
набором мешей.
В моде код похожий на код от Ф-2/4.
Уже всё зашил, добавил имена моделей.
И в класс кокпита Ф2 тоже добавил моделей.
Проверить не успел, нужно было бежать
в магазин аж на окружную - появился дефицит,
нитки из хлопка.
Классам вчера и сегодня смог уделить только
по несколько часов.
Если в тесте бронестекло не будет появляться -
прийдётся оставить 2 класса на бронестекло и без.
В классах кокпитов прибор АТА теперь имеет цифру 335.
Пишу, едя в троллейбусе.

Dimas1999 29.04.2023 20:50

Цитата:

Сообщение от Vasya (Сообщение 225029)
Код бронестекла уже перепроверил: в моде не совпадает с дефолтным
набором мешей.
В моде код похожий на код от Ф-2/4.
Уже всё зашил, добавил имена моделей.
И в класс кокпита Ф2 тоже добавил моделей.
Проверить не успел, нужно было бежать
в магазин аж на окружную - появился дефицит,
нитки из хлопка.
Классам вчера и сегодня смог уделить только
по несколько часов.
Если в тесте бронестекло не будет появляться -
прийдётся оставить 2 класса на бронестекло и без.
В классах кокпитов прибор АТА теперь имеет цифру 335.
Пишу, едя в троллейбусе.

А причём здесь дефолт? Классы кабин Е4/7 основал на базе Е3, 3do Е4/7 приводил к варианту E3. Кабины Е4/7 берут 3do из папки Bf-109E-4. Папка Bf-109E-7 используется ТОЛЬКО моделями B, C, D.

Dimas1999 29.04.2023 20:55

Цитата:

Сообщение от Vasya (Сообщение 224992)
Гипертония немного ударила - не было сил пару дней смотреть классы.
Возник вопрос по Мессерам:
у тебя в основном классе такой код
Код:

    protected void moveFlap(float f)
    {
        float f1 = -45F * f;
        hierMesh().chunkSetAngles("Flap01_D0", 0.0F, f1, 0.0F);
        hierMesh().chunkSetAngles("Flap02_D0", 0.0F, f1, 0.0F);
        if(((FlightModelMain) (super.FM)).CT.getGear() >= 0.4F)  //this and below for gear dmg; in gearDamageFX: ((FlightModelMain) (super.FM)).CT.GearControl = 0.4F;
        {
            kl = 1.0F;
            kr = 1.0F;
            kc = 1.0F;
        }
    }

Для чего код повреждения шасси помещён в метод про закрылки?
Может должен блокироваться выпуск закрылков?
Если нет - то закрылки у нас механические - крутится колёсико в кабине.
Повреждение гидравлики не должно влиять на закрылки.
Правильно ли я понимаю?

Так сделано было в оригинале мода, так сделал WxTech. Мод работает в таком виде уже более 10 лет, не думаю ,что надо там что-то менять. Если вчитаться в код, то там видно, что закрылки отдельно, шасси отдельно.

Код:

if(((FlightModelMain) (super.FM)).CT.getGear() >= 0.4F)  //this and below for gear dmg; in gearDamageFX: ((FlightModelMain) (super.FM)).CT.GearControl = 0.4F;
        {
            kl = 1.0F;
            kr = 1.0F;
            kc = 1.0F;

Этот кусок выкидывать нельзя, он нужен для работы мода выпадения стоек.


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

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot