AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Моделирование и конструирование (http://forum.aviaskins.com/forumdisplay.php?f=18)
-   -   Несколько вопросов по Java (http://forum.aviaskins.com/showthread.php?t=3499)

Vasya 01.04.2019 15:25

Конечно хуки.
Без хуков 3До в окне простого редактора не соберётся.
На нахер вар_класс.
Только Property.set(class1.
Я всегда исправляю, что бы Ил не сходил с ума от разночтений в коде.

Vasya 15.10.2019 11:14

У меня большая прозьба:
нужно организовать ручное управление радиатором при автомате шага.
Такой вид кода не компилится.
Код:

public void onAircraftLoaded()
    {
        super.onAircraftLoaded();
        if(super.FM.isPlayers())
            ((FlightModelMain) (super.FM)).EI.engines[0].setControlRadiatorAuto(false);       
    }

Как правильно записать ручное управление радиатором?
При том, что в классе уже есть метод радиатора.
Код:

public void update(float f)
    {
        if(Math.abs(flapps - kangle) > 0.01F)
        {
            flapps = kangle;
            hierMesh().chunkSetAngles("Oil1_D0", 0.0F, -20F * kangle, 0.0F);
        }
        kangle = 0.95F * kangle + 0.05F * FM.EI.engines[0].getControlRadiator();
        if(kangle > 1.0F)
            kangle = 1.0F;
        afterburnerhud();
        super.update(f);
    }


tvister 15.10.2019 21:21

Вложений: 1
Василий, я не специалист и у нас разные компиляторы-декомпиляторы, но постараюсь помочь.
Первое, у меня не компилировался код с двумя методами управления чем либо, створки юбки капота, или масляный радиатор, управляющие поверхности, не важно. Метод управления для данной части должен быть один.
Вот как на Ки-30 (на скрине).
Требуется уточнение, для каких частей системы охлаждения мотора нужна анимация? К примеру на Гамма-5 или R-5 есть анимация только масляного радиатора. Вот пример выдвижного радиатора Р-5
Код:

   
    public void update(float f) {
        float f_6_ = FM.EI.engines[0].getControlRadiator();
        Aircraft.xyz[0] = 0.0F;
        Aircraft.xyz[1] = 0.0F;
        Aircraft.xyz[2] = f_6_ * -0.45F;
        Aircraft.ypr[0] = 0.0F;
        Aircraft.ypr[1] = 0.0F;
        Aircraft.ypr[2] = 0.0F;
        if (Math.abs(flapps - xyz[2]) > 0.01F) {
            flapps = xyz[2];
            hierMesh().chunkSetLocate("Water_D0", Aircraft.xyz, Aircraft.ypr);
        }


tvister 15.10.2019 21:35

Вот пример Ки-51, у этой модели анимированы и створки юбки капота и масляный радиатор.
Код:

   
    public void update(float f) {
        super.update(f);
        float f_2_ = FM.EI.engines[0].getControlRadiator();
        if (Math.abs(flapps - f_2_) > 0.01F) {
            flapps = f_2_;
            hierMesh().chunkSetAngles("Oil_radiat_D0", 0.0F, -15.0F * f_2_,
                                      0.0F);
            for (int i = 1; i < 11; i++)
                hierMesh().chunkSetAngles("Water" + i + "_D0", 0.0F,
                                          22.0F * f_2_, 0.0F);
        }

Причем масляный радиатор не опускается под прямым углом к корпусу как у Р-5, а поворачивается на -15 градусов поперек оси движения самолета.

Vasya 15.10.2019 22:28

Цитата:

Сообщение от tvister (Сообщение 201816)
Василий, я не специалист и у нас разные компиляторы-декомпиляторы, но постараюсь помочь.
................

Спасибо за отклик!
Мне не анимация нужна.
Анимацию я вписывать немного умею - несколько створок заставить двигаться - не проблема.
У меня другой вопрос:
нужно заставить работать радиатор именно в ручном режиме.,
сейчас радиатор в автоматическом режиме.,
пропеллер тип-8(лучше - конечно - тип 7, так будет оригиналнее).,
у Фоки-4-8 нет раздела анимации створок, поэтому радиатор ручной.,
у Фоки-9 есть в классе код анимации, поэтому шаг автоматический.,
для Темпеста нужно заставить кодом работать радиатор в ручном режиме
при автомате винта, а они увязаны в коде в глубинах классов.
Если поставить шаг винта ручной - то и радиатор будет ручной.
Но.... у мотора Темпеста обороты 3700 и винт весом 225 кг.
При сбросе газа самолёт переворачивается и устремляется к земле,
никакие манипуляции русом не помогают, только добавление тяги до 100 проц.
Это такой баг в игре - сильно большие обороты - не стандартные для Ила.
В дефолте обороты снизили до 3150, что бы не было бага переворачивания самолёта.
Поэтому и спрашивал тут как вписать принудительное регулирование радиатора именно кодом в классе.
Есть код на тип афтербуннера - и он работает.
Причём тип и название афтербуннера пишется двумя разными методами
и они прекрасно уживаются в одном классе.
Такие пояснения относительного моего вопроса. :ok:

tvister 15.10.2019 23:15

Цитата:

Сообщение от Vasya (Сообщение 201822)
У меня другой вопрос:
нужно заставить работать радиатор именно в ручном режиме.,
сейчас радиатор в автоматическом режиме.,

Увы Василий, я немножко разобрался с анимацией, но более высокие материи мне не по плечу :I'm_thinking::DONT_KNOW:.
Коллеги, может кто, что дельное подскажет?

Asura 15.03.2021 09:27

Цитата:

Сообщение от ildar (Сообщение 217453)
Вопрос к знатокам:

Как из одного класса запустить другой класс?

Не совсем понятен вопрос... Что конкретно надо сделать?

Asura 17.03.2021 10:54

тут сложный вопрос - как разделить однотипные объекты?
В общем наверно можно в КП читать параметры с объектов (например высоту и удаленность) и после сортировки их выводить на экран.

то есть в RotatingRadarGeneric ты создаешь переменные

public float h;
public float d;

эти переменные внутри класса меняются у каждого объекта по своему

в классе КП

private RotatingRadarGeneric rrg;

и читаешь переменные из класса

rrg.h
rrg.d

остается вопрос - как распознать чьи это переменные? наверно можно при создании объекта генерить его уникальный код и передавать так же в КП

Asura 28.03.2021 13:07

А если попробовать сделать так -

Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric

public class RotatingRadarGeneric extends NewRadarGeneric

и в нем заполнять массив

класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания.

Asura 28.03.2021 13:19

А если попробовать сделать так -

Сделать основной класс NewRadarGeneric, в нем создавать массив целей. Класс RotatingRadarGeneric сделать наследником NewRadarGeneric

public class RotatingRadarGeneric extends NewRadarGeneric

и в нем заполнять массив

класс КП тоже наследник NewRadarGeneric - в нем читать массив и выдавать целеуказания.

Asura 28.03.2021 15:15

А наследником ActorHMesh сделать класс КП. Изменить иерархию.

Asura 28.03.2021 17:39

Я бы все таки попробовал сделать по аналогии классов тех же маяков - поменять иерархию наследования.

tvister 15.10.2021 22:04

Доброго времени суток! Вопрос к знатокам...
Вот класс "Либерти", кораблик с тремя световыми эффектами которые включаются в ночное время суток. Подскажите пожалуйста как добавить еще один эффект, работающий постоянно, не зависимый от времени?
Код:

/* Liberty_cargo_ship - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package com.maddox.il2.objects.ships;
import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.ground.TgtShip;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.il2.engine.HookNamed;
import com.maddox.il2.engine.LightPointActor;
import com.maddox.il2.engine.LightPointWorld;
import com.maddox.il2.engine.Loc;
import com.maddox.rts.SectFile;

public abstract class Liberty_cargo_ship extends Ship
{
    /*synthetic*/ static Class class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty;
   
    public static class Liberty extends BigshipGeneric implements TgtShip
    {
        public LightPointActor light1;
        public LightPointActor light2;
        public LightPointActor light3;
        public LightPointActor light4;
        public LightPointActor[] lightk;
       
        public Liberty() {
            lightk = new LightPointActor[5];
        }
       
        public Liberty(String string, int i, SectFile sectfile,
                          String string_0_, SectFile sectfile_1_,
                          String string_2_) {
            super(string, i, sectfile, string_0_, sectfile_1_, string_2_);
            lightk = new LightPointActor[5];
            Loc loc = new Loc(0.0, 0.0, 0.0, 0.0F, 0.0F, 0.0F);
            Loc loc_3_ = new Loc();
            Loc loc_4_ = new Loc();
            Loc loc_5_ = new Loc();
            Loc loc_6_ = new Loc();
            Loc loc_7_ = new Loc();
            if (World.getTimeofDay() >= 0.5F && World.getTimeofDay() <= 6.0F) {
                for (int i_8_ = 0; i_8_ < 6; i_8_++)
                    Eff3DActor.New(this, findHook("_CLight" + i_8_), null,
                                  1.0F, "3DO/Effects/Lights/FlareWhitek.eff",
                                  -1.0F);
                Eff3DActor.New(this, findHook("_GLigth"), null, 1.0F,
                              "3DO/Effects/Lights/FlareGreenkb.eff", -1.0F);
                Eff3DActor.New(this, findHook("_RLight"), null, 1.0F,
                              "3DO/Effects/Lights/FlareRedkb.eff", -1.0F);
                {
                } 
            }
        }
    }
   
    /*synthetic*/ static Class class$(String string) {
        Class var_class;
        try {
            var_class = Class.forName(string);
        } catch (ClassNotFoundException classnotfoundexception) {
            throw new NoClassDefFoundError(classnotfoundexception
                                              .getMessage());
        }
        return var_class;
    }
   
    static {
        new BigshipGeneric.SPAWN
            (class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty == null
            ? (class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty
                = class$("com.maddox.il2.objects.ships.Liberty_cargo_ship$Liberty"))
            : class$com$maddox$il2$objects$ships$Liberty_cargo_ship$Liberty);
    }
}


tvister 16.10.2021 13:27

Еще бы хорошо, к коду в предыдущем посте, кроме постоянно работающего эффекта, добавить строки вращающегося меша. Подскажите как сделать плз.

andrey65 16.10.2021 14:08

В БАТ есть объекты сигнальные маяки, как раз вращаются, светят в две стороны

tvister 16.10.2021 16:52

Спасибо за идею, но видимо плохо ищу... :cry: чего то не могу найти. За то вскрыл мод паровозов от wcat, с крутящимися колесами и... С явой в общем у меня проблемы.:cry: Разбираемся...

andrey65 16.10.2021 17:31

https://www.sas1946.com/main/index.p...html#msg691231
вот вроде сам мод, а поиском на САС по слову маяк - "Lighthouse" находится и что-то про Яву.

tvister 16.10.2021 21:24

Cпасибо, мод скачал, буду разбираться.

tarakan67 24.10.2021 13:41

Здравствуйте. Прошу помощи в решении следующей задачи:
Имеется некий меш (А). Необходимо создать java код, который при нажатии определённой клавиши заставит этот меш повернуться вокруг оси на определённое количество градусов, а потом (или одновременно с этим) переместить меш на определённое количество метров вдоль какой-либо из осей. Прошу Гуру помочь в решении этой задачи.

Asura 25.10.2021 09:35

resetYPRmodifier(); - обнулить значения

//установить значение смещения по осям
xyz[0] = 0.4f*setNew.fire;
xyz[1] = 0.4f*setNew.fire;
xyz[2] = 0.4f*setNew.fire;

//установить поворот по посям
ypr[0] = 0.4f*setNew.fire;
ypr[1] = 0.4f*setNew.fire;
ypr[2] = 0.4f*setNew.fire;

mesh.chunkSetLocate("Z_Fire", xyz, ypr); //одновременный поворот и смещение указанного меша на ранее заданные значения. Можно только смещать (YPR просто не указываются) или только вращать (но вращать проще mesh.chunkSetAngles)

tarakan67 25.10.2021 12:25

К сожалению не получилось. Меш просто пропадает и всё. Хочу пояснить: я пытаюсь сделать анимацию отката рампы на Ан-26 на внешнем виде. Посмотрев реализацию сдвига фонаря на других самолётах увидел, что везде используется оператор вида:
Aircraft.xyz[1] = Aircraft.cvt((аргумент0)f, (аргумент1)F, (аргумент2)F, (аргумент3)F, (аргумент4)F);
Можете объяснить значения этих аргументов? Правильно ли я делаю, используя переменную cvt?
При попытке использовать Ваш код эклипс ругается на отсутствие переменной setNew

Asura 26.10.2021 12:44

Ну мой код не надо было прям копировать. :) Это был просто пример реализации. Я подозреваю что меш не пропадает, он просто очень сильно сдвигается. Оперировать надо сотыми долями при сдвиге.

Конструкция cvt работает следующим образом (на примере сдвига фонаря):

resetYPRmodifier();
Aircraft.xyz[1] = Aircraft.cvt(f, 0.01F, 0.99F, 0.0F, 0.55F);
hierMesh().chunkSetLocate("Blister1_D0", Aircraft.xyz, Aircraft.ypr);

Aircraft.xyz[1] или Aircraft.xyz[0] или Aircraft.xyz[2] - ось по которой будет происходить сдвиг

дальше можно расшифровать так - при значениях F от 0.01 до 0.99 установить значение Aircraft.xyz[1] (т.е. сдвинуть) от 0.0 до 0.55

оператор cvt устанавливает значение переменной в зависимости от другой переменной используя диапазон изменений.

переменная фонаря изменяется от 0 (закрыт) до 1 (открыт) при этом значения положения меняются плавно от 0 к 1.

с помощью CVT положение меша меняется плавно от 0 до 0.55, то есть происходит визуальное открытие фонаря.

tarakan67 26.10.2021 14:03

Спасибо! Всё получилось. :beer:

tarakan67 17.11.2021 18:35

Вложений: 1
Опять у меня залипуха с Ан-26 (точнее с его рампой). В оригинальном моде открытие рампы "завязано" на управление воздушным тормозом (moveAirBrake). Но тогда у ботов десантирование людей и грузов происходит "сквозь рампу", то есть она(рампа) при десантировании ботами не открывается(откатывается). Я попробовал "привязать" управление рампой на управление створками бомболюка (moveBayDoor). Почти получилось, теперь боты при десантировании исправно открывают и закрывают рампу, но не устраивают два момента:
1. Откат рампы происходит очень быстро, можно ли каким либо образом увеличить время отката (хотя бы вдвое)?
2. У самолёта игрока нет блокировки срабатывания кнопки "сброса бомб"(сброса десантников или груза) при закрытых "створках бомболюка"(рампы). То есть если игрок нажимает кнопку"оружие 4" рампа открывается автоматически и после десантирования половины десантников так же автоматически закрывается и оставшиеся десантники прыгают сквозь рампу. Можно это как то поправить?
Ну и ещё хотелось бы сохранить звук работы гидравлики открытия\закрытия рампы, потому что после "перепривязки" звук исчез.
Если у Вас, уважаемый Asura, найдутся время и желание объяснить "чайнику" нюансы java-кода, прошу помочь мне справиться с этими проблемами.

Asura 18.11.2021 09:56

Вложений: 1
Цитата:

Сообщение от tarakan67 (Сообщение 220334)
1. Откат рампы происходит очень быстро, можно ли каким либо образом увеличить время отката (хотя бы вдвое)?

Придумывается только решение через свою переменную как это делается при подъеме/опускании турелей

private float bcurpos ;

if (FM.CT.BayDoorControl < 0.5f)
{
bcurpos -= 0.2F * f;
if(bcurpos < 0.0F)
bcurpos = 0.0F;
} else {
bcurpos += 0.2F * f;
if(bcurpos > 1.0F)
bcurpos = 1.0F;
}

это вставить в public void update(float f), ту да же вставить код сдвигания рампы. protected void moveBayDoor(float f) не используется.

Это не рабочий код - это пример возможной реализации. Скорость открытия можно регулировать изменением множителя bcurpos -= 0.2F * f;

Цитата:

2. У самолёта игрока нет блокировки срабатывания кнопки "сброса бомб"
Сброс загрузки регулируется через FM. Если там прописать CBombBay 1 то без открытия рампы сброса вообще не будет. Соответственно сброс и открытие только по кнопке. На паратруперов вроде тоже распространяется.

Цитата:

Ну и ещё хотелось бы сохранить звук работы гидравлики открытия\закрытия рампы, потому что после "перепривязки" звук исчез.
Как подменить звук можно посмотреть в классе модных Тандерболтов. Наверно аналогично можно подменить звук бомболюков.

tarakan67 18.11.2021 15:53

Цитата:

Сообщение от Asura (Сообщение 220335)

это вставить в public void update(float f), ту да же вставить код сдвигания рампы. protected void moveBayDoor(float f) не используется.

К сожалению не работает. Если оставить код открытия рампы в
protected void moveBayDoor(float f),
то скорость открытия не изменяется. Если же удалить код открытия рампы из
protected void moveBayDoor(float f),
равно как и закоментить этот оператор, то рампа вообще не открывается.

Asura 19.11.2021 12:23

Вот так с ходу сложно придумать какой нибудь "замедлитель". Скорость открывания есть только у блистера. Как вариант само движение повесить на код открывания кабины и в нем ручками устанавливать открыт бомболюк или нет FM.CT.BayDoorControl = 0 или 1 для управления - можно бросать десант или нет.

tvister 22.11.2021 15:18

Уважаемые коллеги прошу помощи. Вот класс корабля с ходовыми огнями, выделено черным, которые включаются ночью. Что и где нужно прописать что бы добавить эффект работающий круглосуточно?
Код:

/* Old_Gunboat - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package com.maddox.il2.objects.ships;
import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.ground.TgtShip;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.il2.engine.HookNamed;
import com.maddox.il2.engine.LightPointActor;
import com.maddox.il2.engine.LightPointWorld;
import com.maddox.il2.engine.Loc;
import com.maddox.rts.SectFile;

public abstract class Old_Gunboat extends Ship
{
    /*synthetic*/ static Class class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets;
   
    public static class Koreyets extends BigshipGeneric implements TgtShip
    {
        public LightPointActor light1;
        public LightPointActor light2;
        public LightPointActor light3;
        public LightPointActor light4;
        public LightPointActor[] lightk;
       
        public Koreyets() {
            lightk = new LightPointActor[5];
        }
       
        public Koreyets(String string, int i, SectFile sectfile,
                          String string_0_, SectFile sectfile_1_,
                          String string_2_) {
            super(string, i, sectfile, string_0_, sectfile_1_, string_2_);
            lightk = new LightPointActor[5];
            Loc loc = new Loc(0.0, 0.0, 0.0, 0.0F, 0.0F, 0.0F);
            Loc loc_3_ = new Loc();
            Loc loc_4_ = new Loc();
            Loc loc_5_ = new Loc();
            Loc loc_6_ = new Loc();
            Loc loc_7_ = new Loc();
            if (World.Sun().ToSun.z < -0.15F) {
                for (int i_8_ = 0; i_8_ < 6; i_8_++)
                    Eff3DActor.New(this, findHook("_CLight" + i_8_), null,
                                  1.0F, "3DO/Effects/Lights/FlareWhitek.eff",
                                  -1.0F);
                Eff3DActor.New(this, findHook("_GLight"), null, 1.0F,
                              "3DO/Effects/Lights/FlareGreenkb.eff", -1.0F);
                Eff3DActor.New(this, findHook("_RLight"), null, 1.0F,
                              "3DO/Effects/Lights/FlareRedkb.eff", -1.0F);

                {
                } 
            }
        }
    }
   
    /*synthetic*/ static Class class$(String string) {
        Class var_class;
        try {
            var_class = Class.forName(string);
        } catch (ClassNotFoundException classnotfoundexception) {
            throw new NoClassDefFoundError(classnotfoundexception
                                              .getMessage());
        }
        return var_class;
    }
   
    static {
        new BigshipGeneric.SPAWN
            (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets == null
            ? (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets
                = class$("com.maddox.il2.objects.ships.Old_Gunboat$Koreyets"))
            : class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets);
    }
}


tvister 22.11.2021 15:37

Цитата:

Сообщение от Vasya (Сообщение 220394)
Прочитай код и измени градусы для восхода/захода.
Так мне кажется. :I'm_thinking::DONT_KNOW:

Здравствуй Василий. Я неправильно сформулировал просьбу. Эффекты выделенные черным должны работать ночью. Хочу добавить еще один эффект который должен работать круглосуточно.

tvister 22.11.2021 16:05

Цитата:

Сообщение от Vasya (Сообщение 220396)
Я бы добавил в код сам для примера, но с кодом

Мне как не смыслящему в яве как раз пример помог бы...:I'm_thinking:

tvister 22.11.2021 19:42

Вложений: 3
Василий, то что для тебя яснее ясного, для меня темный лес. В яве я чуть меньше чем никак.:( Потому и прошу о помощи.
Спасибо всем откликнувшимся. Помогла вот такая простенькая конструкция. Добавил еще один "паровозный" дымок. Как бы стравливаемый пар. При поражении судна парит постоянно, что то вроде предохранительного клапана.
Теперь научить бы ходовые огни гаснуть при появлении врага и одновременно включать еще один, дополнительный эффект.
Код:

/* Old_Gunboat - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
package com.maddox.il2.objects.ships;
import com.maddox.JGP.Point3d;
import com.maddox.il2.ai.World;
import com.maddox.il2.ai.ground.TgtShip;
import com.maddox.il2.engine.Eff3DActor;
import com.maddox.il2.engine.HookNamed;
import com.maddox.il2.engine.LightPointActor;
import com.maddox.il2.engine.LightPointWorld;
import com.maddox.il2.engine.Loc;
import com.maddox.rts.SectFile;

public abstract class Old_Gunboat extends Ship
{
    /*synthetic*/ static Class class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets;
   
    public static class Koreyets extends BigshipGeneric implements TgtShip
    {
        public LightPointActor light1;
        public LightPointActor light2;
        public LightPointActor light3;
        public LightPointActor light4;
        public LightPointActor[] lightk;
       
        public Koreyets() {
            lightk = new LightPointActor[5];
        }
       
        public Koreyets(String string, int i, SectFile sectfile,
                          String string_0_, SectFile sectfile_1_,
                          String string_2_) {
            super(string, i, sectfile, string_0_, sectfile_1_, string_2_);
            lightk = new LightPointActor[5];
            Loc loc = new Loc(0.0, 0.0, 0.0, 0.0F, 0.0F, 0.0F);
            Loc loc_3_ = new Loc();
            Loc loc_4_ = new Loc();
            Loc loc_5_ = new Loc();
            Loc loc_6_ = new Loc();
                Eff3DActor.New(this, findHook("_SmokeWhite"), null, 1.0F,
                              "3DO/Effects/Smokes/SmokeWhite.eff", -1.0F);

            if (World.Sun().ToSun.z < -0.15F) {
                for (int i_8_ = 0; i_8_ < 6; i_8_++)
                    Eff3DActor.New(this, findHook("_CLight" + i_8_), null,
                                  1.0F, "3DO/Effects/Lights/FlareWhitek.eff",
                                  -1.0F);
                Eff3DActor.New(this, findHook("_GLight"), null, 1.0F,
                              "3DO/Effects/Lights/FlareGreenkb.eff", -1.0F);
                Eff3DActor.New(this, findHook("_RLight"), null, 1.0F,
                              "3DO/Effects/Lights/FlareRedkb.eff", -1.0F);
                {
                } 
            }
        }
    }
   
    /*synthetic*/ static Class class$(String string) {
        Class var_class;
        try {
            var_class = Class.forName(string);
        } catch (ClassNotFoundException classnotfoundexception) {
            throw new NoClassDefFoundError(classnotfoundexception
                                              .getMessage());
        }
        return var_class;
    }
   
    static {
        new BigshipGeneric.SPAWN
            (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets == null
            ? (class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets
                = class$("com.maddox.il2.objects.ships.Old_Gunboat$Koreyets"))
            : class$com$maddox$il2$objects$ships$Old_Gunboat$Koreyets);
    }
}


tvister 23.11.2021 13:44

Уважаемые коллеги подскажите пожалуйста код для включения/ выключения меша. При появлении врага меш должен включится, как только враг улетит/уничтожен, меш должен выключиться. Возможно ли такое в принципе?

tarakan67 29.05.2022 21:16

Здравствуйте. Подскажите, какой класс или переменная отвечает за измерение истинной скорости(та, которая отображается на виде без кабины)?

Asura 30.05.2022 09:15

Если нужны цифровые значения то можно так:

spd = (int)(3.6f*Pitot.Indicator((float)World.getPlayerF M().Loc.z, World.getPlayerFM().getSpeed())*0.1f)*10;
tas = (int)(3.6f*World.getPlayerFM().getSpeed());

Если для прибора то так (для американцев):

mesh.chunkSetAngles("Z_Speed_1", 0.0F, floatindex(cvt(Pitot.Indicator((float) fm.Loc.z, fm.getSpeedKMH()) * 1.131F, 74.07994F,
1222.31894F, 0.0F, 14F), speedometerScale), 0.0F);
mesh.chunkSetAngles("Z_Speed_2", 0.0F, floatindex(cvt(fm.getSpeedKMH() * 1.131F, 74.07994F,
1222.31894F, 0.0F, 14F), speedometerScale), 0.0F);

или для наших:

mesh.chunkSetAngles("zTAS", 0.0F, floatindex(cvt(fm.getSpeedKMH(), 400F, 1100F, 0.0F, 2.0F), tasScale), 0.0F);
mesh.chunkSetAngles("zSpeed", 0.0F, floatindex(cvt(Pitot.Indicator((float)fm.Loc.z, fm.getSpeedKMH()), 0.0F, 750F, 0.0F, 14F), speedometerScale), 0.0F);

tarakan67 30.05.2022 13:02

Спасибо! Всё получилось.

tarakan67 14.08.2022 12:09

Здравствуйте. Интересуют классы радиомаяков системы слепой посадки. Хочу сделать дальность срабатывания курсового и глиссадного маяков разными. Сейчас оба маяка начинают "перемещать планки" на приборе на расстоянии 35 км от них. В реальности глиссадный радиомаяк имеет дальность действия 18-20 км в отличие от курсового с дальностью до 48 км. Если не затруднит, подскажите, куда копать?

pepelatz 13.02.2025 13:03

Подскажите пожалуйста. Согласно этому
https://www.patrulla-azul.com/FreeIL...php?f=45&t=311
руководству добавил в БАТ стационарник. Вроде получилось, самолет в игре есть, в миссиях появляется. Первый блин не комом. Но покоя нет.
В БАТ папке vehicles/planes кроме классов вида Plane$A6M_21.class например, какие создались у меня снова в конечной папке, есть еще просто A6M_21.class. Они не создались. Вопрос. А что это за доп классы? Они нужны? Инструкция то не очень новая. Может чего поменялось?

carsmaster 13.02.2025 15:32

Классы со знаком "Аля доллар" в названии это типа внутренние классы внутри самого основного класса. В зависимости от кода в основном классе они могут создаваться, а могут и не создаваться при компиляции(ещё от среды компиляции зависит). Это я так все упрощённо описал. Каждый конкретный случай очень индивидуален. Мне кажется, что если скомпилировался основной клас без классов " Аля доллар" в названии и при этом все работает, то не заморачивайтесь, не мешайте работать игре. Это уж если все коряво работает, тогда уже и будете изучать "Аля внутренние" классы, в чем я и сам не силен.


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

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