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 24.12.2015 21:47

Несоответствие хуков и их записей в разделе вооружения.
Может быть так же не правильно переоткрыт и сохранён меш в который добавлялись хуки.

Skvorez 24.12.2015 22:26

Цитата:

Сообщение от Vasya (Сообщение 147616)
Несоответствие хуков и их записей в разделе вооружения.
Может быть так же не правильно переоткрыт и сохранён меш в который добавлялись хуки.

Умеешь ты обнадежить... нечего сказать. Может быть оружие переписать в новую конструкцию?.
зы: хуки не трогал

Asura 25.12.2015 09:25

В лог пишутся все ошибки, надо поиск причины начинать с него. :)

Vasya 26.12.2015 18:33

Цитата:

Сообщение от Skvorez (Сообщение 147617)
Умеешь ты обнадежить... нечего сказать. Может быть оружие переписать в новую конструкцию?.
зы: хуки не трогал

Скинь мне этот мод в личку - я проверю., надеюсь что решу вопрос., уже получаеться немного.
Цитата:

Сообщение от Asura (Сообщение 147626)
В лог пишутся все ошибки, надо поиск причины начинать с него. :)

Не всегда лог можно понять. Дока - конечно - всё прочитает, но самоучки как я, могут спотыкаться. Хотя, да, лог бы очень желательно поглядеть.
---------------------------------------------------------------
Цитата:

Сообщение от Skvorez (Сообщение 147614)
Сделал пару слотов, модель не собирается хоть убейся...

Хоть джава-файлы прикрепи, а.

Skvorez 26.12.2015 20:44

Цитата:

Сообщение от Vasya (Сообщение 147657)
Скинь мне этот мод в личку - я проверю., надеюсь что решу вопрос., уже получаеться немного.

Не всегда лог можно понять. Дока - конечно - всё прочитает, но самоучки как я, могут спотыкаться. Хотя, да, лог бы очень желательно поглядеть.
---------------------------------------------------------------
Хоть джава-файлы прикрепи, а.

классы перекомпелил из под другой среды, и вуаля


качай. ссылку удалю потом

Vasya 26.12.2015 22:46

СПАСИБО!
Скачал уже.

Skvorez 27.12.2015 08:46

Цитата:

Сообщение от Vasya (Сообщение 147663)
СПАСИБО!
Скачал уже.

а что с оружием? у меня не все отображается:(

tarakan67 27.12.2015 09:21

ставь это http://www.sas1946.com/main/index.ph...c,48603.0.html
удаляй дубли и будет тебе счастье

Skvorez 27.12.2015 11:29

Цитата:

Сообщение от tarakan67 (Сообщение 147669)
ставь это http://www.sas1946.com/main/index.ph...c,48603.0.html
удаляй дубли и будет тебе счастье

дубли, ты имеешь виду в джет эре и прочих местах?

tarakan67 27.12.2015 12:00

Цитата:

Сообщение от Skvorez (Сообщение 147671)
дубли, ты имеешь виду в джет эре и прочих местах?

По желанию, можешь там, а можешь и в самом паке

deSAD 03.09.2016 13:47

В развитие темы ...
Цитата:

Сообщение от deSAD (Сообщение 156677)
Попробовал было "пересобрать" I_153_M63, добавив туда два дополнительных варианта вооружений с БС'ами из I_153_M62, но - увы и ах - ИЛ после этого даже не запустился, хотя класс скомпилировался без ошибок :DONT_KNOW:

Вот код ...
Код:

package com.maddox.il2.objects.air;

import com.maddox.il2.ai.Regiment;
import com.maddox.il2.engine.*;
import com.maddox.il2.fm.*;
import com.maddox.il2.game.Main;
import com.maddox.il2.net.NetFileServerSkin;
import com.maddox.rts.HomePath;
import com.maddox.rts.Property;
import java.io.*;

public class I_153_M63 extends I_153
{

    public I_153_M63()
    {
    }

    public void onAircraftLoaded()
    {
        if(thisWeaponsName.startsWith("1BS"))
            hierMesh().chunkVisible("MGun02_D0", false);
        else
            hierMesh().chunkVisible("MGun02_D0", true);
    }

    public void missionStarting()
    {
        super.missionStarting();
        customization();
    }

    private void customization()
    {
        if(!Config.isUSE_RENDER())
            return;
        boolean flag = false;
        boolean flag1 = false;
        int i = hierMesh().chunkFindCheck("CF_D0");
        int j = hierMesh().materialFindInChunk("Gloss1D0o", i);
        Mat mat = hierMesh().material(j);
        String s = mat.Name();
        try
        {
            if(s.startsWith("PaintSchemes/Cache"))
            {
                s = s.substring(19);
                s = s.substring(0, s.indexOf("/"));
            } else
            if(s.startsWith("3DO/Plane/I-153/i153m63_summer"))
                s = "summer";
            else
            if(s.startsWith("3DO/Plane/I-153/i153m63_winter"))
                s = "winter";
            customini = false;
            String s1 = Main.cur().netFileServerSkin.primaryPath();
            File file = new File(HomePath.toFileSystemName(s1 + "/I-153M63/Customization.ini", 0));
            BufferedReader bufferedreader = new BufferedReader(new FileReader(file));
            Object obj = null;
            boolean flag2 = false;
            boolean flag3 = false;
            boolean flag4 = false;
            do
            {
                String s2;
                if((s2 = bufferedreader.readLine()) == null)
                    break;
                if(s2.equals("[Show_Antenna]"))
                {
                    flag2 = true;
                    flag3 = false;
                    flag4 = false;
                } else
                if(s2.equals("[Hide_Radiator]"))
                {
                    flag2 = false;
                    flag3 = true;
                    flag4 = false;
                } else
                if(s2.equals("[Hide_WheelCover]"))
                {
                    flag2 = false;
                    flag3 = false;
                    flag4 = true;
                } else
                if(s2.equals(s))
                {
                    if(flag2)
                    {
                        hierMesh().chunkVisible("Wire1_D0", true);
                        hierMesh().chunkVisible("Wire2_D0", true);
                        hierMesh().chunkVisible("Wire3_D0", true);
                    }
                    if(flag3)
                    {
                        hierMesh().chunkVisible("Water_D0", false);
                        hierMesh().chunkVisible("FrontDisk_D0", false);
                        hierMesh().chunkVisible("Ring_D0", true);
                        FM.CT.setRadiatorControl(1.0F);
                        FM.CT.DamageRadiatorControl();
                    }
                    if(flag4)
                    {
                        hierMesh().chunkVisible("GearL7_D0", false);
                        hierMesh().chunkVisible("GearR7_D0", false);
                    }
                    customini = true;
                }
            } while(true);
            bufferedreader.close();
        }
        catch(Exception exception)
        {
            System.out.println(exception);
        }
    }

    public static String getSkinPrefix(String s, Regiment regiment)
    {
        if(regiment == null || regiment.country() == null)
            return "";
        else
            return "i153m63_";
    }

    private boolean customini;

    static
    {
        Class class1 = com.maddox.il2.objects.air.I_153_M63.class;
        new NetAircraft.SPAWN(class1);
        Property.set(class1, "iconFar_shortClassName", "I-153");
        Property.set(class1, "meshName", "3DO/Plane/I-153/hier-M63.him");
        Property.set(class1, "PaintScheme", new PaintSchemeFMPar00());
        Property.set(class1, "yearService", 1939.2F);
        Property.set(class1, "yearExpired", 1944F);
        Property.set(class1, "FlightModel", "FlightModels/I-153-M63.fmd");
        Property.set(class1, "cockpitClass", com.maddox.il2.objects.air.CockpitI_153.class);
        Property.set(class1, "LOSElevation", 0.84305F);
        Aircraft.weaponTriggersRegister(class1, new int[] {
            0, 0, 1, 1, 2, 2, 2, 2, 2, 2,
            2, 2, 3, 3, 3, 3, 9, 9, 9, 9,
            9, 9, 9, 9
        });
        Aircraft.weaponHooksRegister(class1, new String[] {
            "_MGUN01", "_MGUN02", "_MGUN03", "_MGUN04", "_ExternalRock01", "_ExternalRock02", "_ExternalRock03", "_ExternalRock04", "_ExternalRock05", "_ExternalRock06",
            "_ExternalRock07", "_ExternalRock08", "_ExternalBomb01", "_ExternalBomb02", "_ExternalBomb03", "_ExternalBomb04", "_ExternalDev01", "_ExternalDev02", "_ExternalDev03", "_ExternalDev04",
            "_ExternalDev05", "_ExternalDev06", "_ExternalDev07", "_ExternalDev08"
        });
        Aircraft.weaponsRegister(class1, "default", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "4xAO10", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunAO10 1", "BombGunAO10 1", "BombGunAO10 1", "BombGunAO10 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xAO10_2xFAB50", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunAO10 1", "BombGunAO10 1", "BombGunFAB50 1", "BombGunFAB50 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xFAB50", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, "BombGunFAB50 1", "BombGunFAB50 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "4xFAB50", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunFAB50 1", "BombGunFAB50 1", "BombGunFAB50 1", "BombGunFAB50 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xFAB100", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, "BombGunFAB100 1", "BombGunFAB100 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xFAB50_2xFAB100", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunFAB50 1", "BombGunFAB50 1", "BombGunFAB100 1", "BombGunFAB100 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "8xRS82", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1",
            "RocketGunRS82 1", "RocketGunRS82 1", null, null, null, null, "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1",
            "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1"
        });
        Aircraft.weaponsRegister(class1, "1BS+2ShKAS", new String[] {
            "MGunUBsi 230", null, "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "1BS+2ShKAS_8xRS82", new String[] {
            "MGunUBsi 230", null, "MGunShKASsi 500", "MGunShKASsi 520", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1",
            "RocketGunRS82 1", "RocketGunRS82 1", null, null, null, null, "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1",
            "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1"
        });
        Aircraft.weaponsRegister(class1, "none", new String[] {
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null
        });
    }
}

Что я делаю не так? © :I'm_thinking:

tarakan67 03.09.2016 18:12

Цитата:

Сообщение от deSAD (Сообщение 156682)
В развитие темы ...

Вот код ...
Код:

        Aircraft.weaponTriggersRegister(class1, new int[] {
            0, 0, 1, 1, 2, 2, 2, 2, 2, 2,
            2, 2, 3, 3, 3, 3, 9, 9, 9, 9,
            9, 9, 9, 9
        });
        Aircraft.weaponHooksRegister(class1, new String[] {
            "_MGUN01", "_MGUN02", "_MGUN03", "_MGUN04", "_ExternalRock01", "_ExternalRock02", "_ExternalRock03", "_ExternalRock04", "_ExternalRock05", "_ExternalRock06",
            "_ExternalRock07", "_ExternalRock08", "_ExternalBomb01", "_ExternalBomb02", "_ExternalBomb03", "_ExternalBomb04", "_ExternalDev01", "_ExternalDev02", "_ExternalDev03", "_ExternalDev04",
            "_ExternalDev05", "_ExternalDev06", "_ExternalDev07", "_ExternalDev08"
        });
        Aircraft.weaponsRegister(class1, "default", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "4xAO10", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunAO10 1", "BombGunAO10 1", "BombGunAO10 1", "BombGunAO10 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xAO10_2xFAB50", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunAO10 1", "BombGunAO10 1", "BombGunFAB50 1", "BombGunFAB50 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xFAB50", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, "BombGunFAB50 1", "BombGunFAB50 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "4xFAB50", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunFAB50 1", "BombGunFAB50 1", "BombGunFAB50 1", "BombGunFAB50 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xFAB100", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, "BombGunFAB100 1", "BombGunFAB100 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "2xFAB50_2xFAB100", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, "BombGunFAB50 1", "BombGunFAB50 1", "BombGunFAB100 1", "BombGunFAB100 1", null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "8xRS82", new String[] {
            "MGunShKASsi 700", "MGunShKASsi 750", "MGunShKASsi 500", "MGunShKASsi 520", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1",
            "RocketGunRS82 1", "RocketGunRS82 1", null, null, null, null, "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1",
            "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1"
        });
        Aircraft.weaponsRegister(class1, "1BS+2ShKAS", new String[] {
            "MGunUBsi 230", null, "MGunShKASsi 500", "MGunShKASsi 520", null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null
        });
        Aircraft.weaponsRegister(class1, "1BS+2ShKAS_8xRS82", new String[] {
            "MGunUBsi 230", null, "MGunShKASsi 500", "MGunShKASsi 520", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1", "RocketGunRS82 1",
            "RocketGunRS82 1", "RocketGunRS82 1", null, null, null, null, "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1",
            "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1", "PylonRO_82_1 1"
        });
        Aircraft.weaponsRegister(class1, "none", new String[] {
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null, null, null, null, null, null, null,
            null, null, null, null
        });
    }
}

Что я делаю не так? © :I'm_thinking:

Всё делаешь так, но список вооружения этого самолёта дублируется также в папке cod(в зашифрованном виде). Игра сравнивает два списка и при отличиях уходит в крэш. Изменив вооружение в классе самолёта также надо изменить его и в папке cod. Инструмент для дешифровки папки cod есть у SAS-овцев, но они, как всегда, очень трепетно относятся к авторским правам, поэтому делиться им с кем попало не собираются. Можно записать варианты вооружения по другому, создав дубликат класса дефолтного самолёта, Vasya вроде бы этим занимался.

GUZKNIFE 03.09.2016 18:34

deSAD!!!
...и не запуститься.;););)
Нужно поменять
Property.set(class1, "cockpitClass", com.maddox.il2.objects.air.CockpitI_153.class);

на
Property.set(class1, "cockpitClass", new Class[] {
com.maddox.il2.objects.air.CockpitI_153.class
});

а загрузку в классе можно удалить и написать только в коде-не будет дублирования.:)

deSAD 03.09.2016 23:54

Цитата:

Сообщение от tarakan67 (Сообщение 156692)
Всё делаешь так, но список вооружения этого самолёта дублируется также в папке cod(в зашифрованном виде). Игра сравнивает два списка и при отличиях уходит в крэш. Изменив вооружение в классе самолёта также надо изменить его и в папке cod. Инструмент для дешифровки папки cod есть у SAS-овцев, но они, как всегда, очень трепетно относятся к авторским правам, поэтому делиться им с кем попало не собираются.

Цитата:

Сообщение от tarakan67 (Сообщение 156692)
Можно записать варианты вооружения по другому, создав дубликат класса дефолтного самолёта, Vasya вроде бы этим занимался.

Да не хотелось бы :ups:

Цитата:

Сообщение от GUZKNIFE (Сообщение 156694)
Нужно поменять
Property.set(class1, "cockpitClass", com.maddox.il2.objects.air.CockpitI_153.class);

на
Property.set(class1, "cockpitClass", new Class[] {
com.maddox.il2.objects.air.CockpitI_153.class
});

А, да ... lacota в свое время - помнится - на что-то подобное обращал внимание :rtfm: Хотя, если без того, чтобы влезть в cod, все равно не "срастется", то :DONT_KNOW:

Благодарю за "просвещение", камераден :thx:

Vasya 04.09.2016 04:35

В файл cod дописать вооружение не проблемма, вообще то. Но потом и в Д-Ген нужно будет дописьівать вооружение дефолтной Чайки М-63.

tarakan67 04.09.2016 10:50

Цитата:

Сообщение от Vasya (Сообщение 156707)
В файл cod дописать вооружение не проблемма, вообще то. Но потом и в Д-Ген нужно будет дописьівать вооружение дефолтной Чайки М-63.

Расскажи как, и каким инструментом пожалуйста.

Vasya 04.09.2016 17:21

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

Сообщение от tarakan67 (Сообщение 156709)
Расскажи как, и каким инструментом пожалуйста.

Обыкновенным COD_Worx.,
батник:
C:\jdk1.3.1\bin\java -jar loadouteditor.jar I_153_M63.
Я думал что у тебя/вас есть такой.
------------------------------------
Я вот подумываю таки пойти на курсы, конкретно, по джаве., подучиться, так сказать. Мне дал этот COD_Worx один программер., соорудить её не так уж и сложно для граммотного. Так что САСовские секреты - секреты Полишинеля. ОМовский Ил сломали, значит сломать можно всё если захотеть.

tarakan67 04.09.2016 18:59

Цитата:

Сообщение от Vasya (Сообщение 156717)
Обыкновенным COD_Worx.,
батник:
C:\jdk1.3.1\bin\java -jar loadouteditor.jar I_153_M63.
Я думал что у тебя/вас есть такой.
------------------------------------
Я вот подумываю таки пойти на курсы, конкретно, по джаве., подучиться, так сказать. Мне дал этот COD_Worx один программер., соорудить её не так уж и сложно для граммотного. Так что САСовские секреты - секреты Полишинеля. ОМовский Ил сломали, значит сломать можно всё если захотеть.

Нет, COD_Worx у меня нет, где можно скачать?

Vasya 04.09.2016 21:21

Цитата:

Сообщение от tarakan67 (Сообщение 156722)
Нет, COD_Worx у меня нет, где можно скачать?

А волшебное слово?! :ups:

tarakan67 04.09.2016 22:22

"Бегом!" (шутка, "пожалуйста", конечно!)

Vasya 04.09.2016 23:48

Цитата:

Сообщение от tarakan67 (Сообщение 156740)
"Бегом!" (шутка, "пожалуйста", конечно!)

:lol:
Уже побежал доганять и дать. )))

tvister 07.11.2017 00:28

Доброго времени суток. Пытаюсь создать прожектор для подвижных объектов в Ил-е. Если с 3д моделькой чуть разобрался то с классами забуксовал. С моей колокольни, прожектор должен прописываться как орудие. Да он и по строению похож на пушку: основа-Body часть наводящаяся по горизонтали Head, по вертикали-Gun. Но если у орудия есть свой хук _ShellStart, то тут его нет. Зато есть два меша в районе линзы прожектора: Ray_ON и Ray_OFF. Ray_OFF- визуализируется у прожектора в неактивном состоянии, Ray_ON- когда прожектор горит. Есть и два хука coneNear и coneFar, приаттаченных к меш-у Ray_ON.
Есть класс дефолтного прожектора ПВО

/* Searchlight - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
package com.maddox.il2.objects.vehicles.lights;
import com.maddox.il2.ai.ground.TgtFlak;
import com.maddox.il2.objects.vehicles.artillery.AAA;

public abstract class Searchlight
{
/*synthetic*/ static Class class$com$maddox$il2$objects$vehicles$lights$Searc hlight$SL_ManualBlue;

public static class SL_ManualBlue extends SearchlightGeneric
implements TgtFlak, AAA
{
}

/*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 SearchlightGeneric.SPAWN
((class$com$maddox$il2$objects$vehicles$lights$Sea rchlight$SL_ManualBlue
== null)
? (class$com$maddox$il2$objects$vehicles$lights$Sear chlight$SL_ManualBlue
= (class$
("com.maddox.il2.objects.vehicles.lights.Searchlig ht$SL_ManualBlue")))
: class$com$maddox$il2$objects$vehicles$lights$Searc hlight$SL_ManualBlue);
}
}



И подопытный класс зенитки 21-к На основе этого класса пытаюсь создать класс для прожектора.

/* Cannon21K - Decompiled by JODE
* Visit http://jode.sourceforge.net/
*/
package com.maddox.il2.objects.weapons;
import com.maddox.JGP.Vector3d;
import com.maddox.il2.engine.BulletProperties;
import com.maddox.il2.engine.GunGeneric;
import com.maddox.il2.engine.GunProperties;
import com.maddox.il2.engine.Loc;

public class Cannon21K extends CannonAntiAirGeneric
{
protected float Specify(GunProperties gunproperties) {
gunproperties.aimMaxDist = 9200.0F;
gunproperties.sound = "weapon.zenitka_37c";
BulletProperties bulletproperties = gunproperties.bullet[0];
bulletproperties.timeLife = 10.5F;
bulletproperties.addExplTime = 1.5F;
bulletproperties.power = 0.052F;
bulletproperties.powerType = 1;
bulletproperties.powerRadius = 60.0F;
bulletproperties.kalibr = 0.045F;
bulletproperties.massa = 1.065F;
bulletproperties.speed = 880.0F;
bulletproperties.traceMesh = "3do/effects/tracers/20mmBlue/mono.sim";
bulletproperties.traceTrail = null;
bulletproperties.traceColor = -755040256;
bulletproperties = gunproperties.bullet[1];
bulletproperties.power = 0.074F;
bulletproperties.powerType = 0;
bulletproperties.powerRadius = 80.0F;
bulletproperties.kalibr = 0.045F;
bulletproperties.massa = 1.41F;
bulletproperties.speed = 760.0F;
bulletproperties.traceMesh = "3do/effects/tracers/20mmOrange/mono.sim";
bulletproperties.traceTrail = null;
bulletproperties.traceColor = -770532113;
return 46.0F;
}

public Bullet createNextBullet(Vector3d vector3d, int i,
GunGeneric gungeneric, Loc loc,
Vector3d vector3d_0_, long l) {
return new BulletAntiAirBigUSSR(vector3d, i, gungeneric, loc,
vector3d_0_, l, explodeAtHeight);
}
}

Попытки скрестить два класса в один, и заставить работать как единый механизм пока безуспешны.
В принципе "фонарь" может наводиться на цель. Для этого добавляю хук _ShellStart и никаких классов в общем не надо . Но никак не удается заставить фонарь работать только ночью и есть проблема с исчезновением луча прожектора при уходе источника света из поля зрения.:( Может кто то подскажет что делать? Или если есть, подскажите мануал с решением подобной проблемы. Заранее спасибо.

deSAD 07.11.2017 17:23

Цитата:

Сообщение от tvister (Сообщение 170801)
... никак не удается заставить фонарь работать только ночью ...

Посмотрите классы "Летящего дракона" (ужас, летящий на крыльях ночи ©, гы) или "Исэ", у них навигационные огни включаются только в ночное время.
Цитата:

Сообщение от tvister (Сообщение 170801)
... и есть проблема с исчезновением луча прожектора при уходе источника света из поля зрения.:(

Э-э-э ... тобто? :I'm_thinking:

tvister 07.11.2017 20:02

Вложений: 3
Спасибо за идею, посмотрю обязательно. Пока разбираю мод от Штука-40 название вроде "огни паровоза". По исчезновению луча: на скрине1 кораблик плывет, луч светит; на скрине2 камера повернулась в право виден нос крейсера и луч фонаря; скрин3 доворот камеры еще правее-луч света исчез....

Grejf11 08.11.2017 00:49

Цитата:

[Render_OpenGL]
TexQual=3
TexMipFilter=3
TexCompress=2
TexFlags.UseDither=1
TexFlags.UseAlpha=1
TexFlags.UseIndex=1
TexFlags.PolygonStipple=1
TexFlags.UseClampedSprites=1
TexFlags.DrawLandByTriangles=1
TexFlags.UseVertexArrays=1
TexFlags.DisableAPIExtensions=0
TexFlags.ARBMultitextureExt=1
TexFlags.TexEnvCombineExt=1
TexFlags.SecondaryColorExt=1
TexFlags.VertexArrayExt=1
TexFlags.ClipHintExt=1
TexFlags.UsePaletteExt=0
TexFlags.TexAnisotropicExt=1
TexFlags.TexCompressARBExt=1
Выделенное жирным -это параметр управления отсечением за пределами сцены
Просто проверь у себя в конф.ини
0=выкл 1=вкл

tvister 08.11.2017 02:06

Вложений: 1
Спасибо за информацию, но проблема не решена. Полагаю вопрос не в ClipHintEx, потому, что у стокового прожектора такой проблемы не наблюдается. На скрине луч выше крейсера, это луч стокового прожектора. Сам прожектор находится далеко слева, тем не менее его луч виден.

Toobone 09.11.2017 17:48

5 копеек
 
Цитата:

Сообщение от tvister (Сообщение 170822)
проблема не решена.

..есть мод двухлучевого маяка где-то на САС, пару лет назад выкладывали, ставил себе как-то, но что-то не пошло, а потом на другое переключился. Работал строго ночью и лучи вращались на 360.
НАШЕЛ: у нас Злой ссыль выложил в разделе Моды\Не самолетом единым\Новые объекты\пост 292.

tvister 09.11.2017 18:26

Спасибо, буду искать.

tvister 09.11.2017 18:42

Вот тут https://www.sas1946.com/main/index.p...c,33723.0.html Только 3д модель.
Пока рою информацию по яве (не мотоцикл:)). Есть информация о том как создать классы под модель самолета, да и то не много... И понимается она как то туговато. Подправить вооружение самолета, создать класс под новое орудие или слот корабля, как то могу, а что то большее пока никак. То есть со всем, что сложнее правки дефолтных файлов, пока не разобрался. Первоначальные соображения о том, что прожектор нужно прописать как орудие, все больше заходят в тупик. Прожектор не должен стрелять по определению, а если это не орудие, то как его прописать в модели корабля в ини. файлах? С другой стороны зенитные "корни" прожектора прослеживаются в стоковом файле, иначе как бы он мог наводиться? Еще преследует чувство, что у меня не полная информация, к примеру в стоковом файле нет ни слова о времени включения/выключения прожектора. Истина где то рядом... В Ил-е... Продолжаю поиск.

tvister 10.11.2017 18:37

Вложений: 1
Прошу консультативной помощи. Вот класс 21К. Вопрос, где в Ил-е лежат звуки и эффекты выстрелов? Или формулируя вопрос по другому, как добавить новый эффект выстрела?

tarakan67 10.11.2017 19:19

Звук(не сам звук, а пресет) лежит в files.sfs в папке presets/sounds, а эффекты в одной или нескольких сфс-ках fb_3doNN.sfs путь к ним прописан в самом классе на скрине

YurBorR 10.11.2017 20:27

Вы всё указали правильно:
...
gunproperties.sound = "weapon.zenitka_37c";
...
это и есть название prs-файла в котором прописан звук выстрела, так что:
1- замените строку "weapon.zenitka_37c" скажем на "weapon.сannon21K";
2- создайте файл "weapon.сannon21K.prs" (на основе "weapon.zenitka_37.prs", взять из любого звукомода) в котором уже будет прописан ваш звук для 21К;
3- ну и поместите свой звук 21К в папку "my_samples", а prs-файл в "my_presets\sounds\".

А для "нового эффекта выстрела" у себя в звукотрассерах в классе 21К добавил две строки для огня и дыма от выстрела - место расположения любое, как вам надо.
...
public class Cannon21K extends CannonAntiAirGeneric
{
protected float Specify(GunProperties gunproperties) {
gunproperties.fire = "3DO/Effects/GunFireSmoke/Fire45.eff"; // огонь
gunproperties.smoke = "3DO/Effects/GunFireSmoke/Smoke45.eff"; // дым
gunproperties.aimMaxDist = 9200.0F;
...

Наземные зенитки и прожектора на корабле - это для меня новое и такой корабль хотелось бы посмотреть в динамике, а не со скринов и поэтому жду спуска на воду.

tvister 10.11.2017 21:51

Всем БОЛЬШОЕ спасибо за предоставленную информацию.:thx: Есть вот такие соображения: название орудия заменить на скажем Project; звук выстрела на какой нибудь не громкий скрип или скрежет как при работе механизма (а можно попробовать вообще убрать). С эффектом как быть пока не знаю. "Прожектор-орудие" должно наводиться на цель и "выстреливать эффектом"-лучём света. Все это пока большей частью в теории и есть еще вопросы, на пример как сделать, что бы луч-эффект горел на мигая. Сегодня экспериментировал с хешированием файлов, кое какие результаты уже есть, но дело застопорилось на приведенных выше вопросах. Продолжаю работать.

tvister 12.11.2017 02:29

Вопросы, Вопросы, Вопросы... Пересмотрев в Ил-е и перещупав в Блендере большинство модов реагирующих на смену времени суток (корабельные и моды железнодорожной техники), стало ясно, что в этих модах (а значит и в классах) нет специальных мешей отвечающих за свет. Как правило это хуки с соответствующими названиями. По этому эффект в виде луча прожектора использовать не получится, такого эффекта просто нет в природе. Зато нашел строки отвечающие за включение/выключение эффектов, но почему то не у всех модов и совсем не нашел строк отвечающих за отключение света при подлете вражеской авиации. Начал крутить стоковый прожектор. И опять вопросы, во первых в классах прожектора нет времени включения/выключения, во вторых там нет ни строки с мешами Ray_ON, Ray_OFF и о том как ими управлять:I'm_thinking: Однако стоковый прожектор работает, а значит нужно искать дальше... Чем и занимаюсь.

tvister 14.11.2017 01:34

Вложений: 1
Возможно не корректный вопрос, но может кто знающий подскажет. Можно ли "прикрутить" вместо эффекта выстрела, меш луча Ray_ON? И как это сделать.

Grejf11 14.11.2017 04:35

Меш не вопрос заменить пропиши путь к своему mono.sim а в него пропиши свой меш. Вот шаблон что должно быть внутри сим файла.

Цитата:

[_ROOT_]
[Body]
Mesh Ray_ON


и все.
А вот хотелось бы наблюдать эпическую картину как сия дура со скоростью 880м\с унесется у тебя вдаль
Хотя бы traceColor замени на единицы а то еще и перекрасится пока свои 10 и 1/2секунды будет в даль лететь хотя и с силой 45мм снаряда (от жеж не стыдно им зенитка 37 мм а пуляет 45мм снрядами ):lol::lol:

:lol: А если еще параметр Trail значение null замениш на путь к дымному эффекту то полетит еще и с жирным дымным хвостом:beer:

tvister 15.11.2017 00:17

Вложений: 2
[QUOTE=Grejf11;171047 А вот хотелось бы наблюдать эпическую картину как сия дура со скоростью 880м\с унесется у тебя вдаль[/QUOTE]

Не унеслась...:cry:

И так возникла еще одна сумасшедшая идея реализации прожектора в ил-2. Прописать меш луча Ray_ON в классе орудия вместо трассера. Спасибо коллегам по цеху YurBorR&Grejf11 подсказали возможные пути реализации этой идеи. Подумав дважды решил в трассерах ничего не писать, но добавить строки с "эффектом", а уже в эффектах прописать путь к Ray_ON.msh. Подопытный кролЕг-класс 21К . Получилось как на скрине 1. Класс нормально скомпилировался и был прописан в вооружении файла шипс.ини. (копия 21К-замена наименования). Открыл тестово-испытательную миссию и... И масса интересных но совершенно не нужных эффектов. При виде противника (морская цель) "Кавказ" подобно ежу ощетинился орудиями, причем не одно на цель наведено не было, кроме прожектора. Прожектор навелся и открыл огонь с дикой скорострельностью, сплошной поток трассеров :eek: при этом огонь велся не по ближайшей цели а по самолетам находящимся на подлете и находящимся на заведомо недоступном для орудия расстоянии... При атаке ни один самолет сбит не был. При повторной загрузке миссии корабль не определяется...
В логе краткое, но емкое ругательство (2) мол: "меш эффектом не является и не суй его куда не надо".
Сижу смотрю эффекты...:cry:

Grejf11 15.11.2017 00:53

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

tvister 15.11.2017 01:21

Вложений: 3
Это конечно так, но точность со знаком -.
На скринах: положение орудий и скорострельность по сравнению с стоковой 70к- 4 к 1. Падение снарядов и поток трассеров.

tvister 15.11.2017 01:41

Однако это не то что нужно...


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

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