Показать сообщение отдельно
Старый 30.07.2023, 12:38   #1389
Dimas1999
Местный
 
Аватар для Dimas1999
 
Регистрация: 18.11.2015
Адрес: Анапа
Сообщений: 1,662
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием