AviaSkins.Forums

Вернуться   AviaSkins.Forums > Основные разделы > Моды для Ил-2 > Баллада об оружии

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.05.2016, 21:00   #1
LeaderAI
Местный
 
Регистрация: 20.03.2016
Сообщений: 275
По умолчанию weaponsRegister

Куда прописывается оригинальное вооружение и почему не работает прописка как на стандартных самолетах на модовых вооружение?
Aircraft.weaponTriggersRegister(var_class, new int[] { 1, 1, 3, 3, 9, 9 }); Это кнопки для оружия они и в модовых самолетах так же.
Aircraft.weaponHooksRegister(var_class,
new String[] { "_CANNON01", "_CANNON02","_ExternalBomb01", "_ExternalBomb02", "_ExternalBomb01", "_ExternalBomb02" }); Это хуки из моделей. Они так же прописаны.
А дальше самое интересное:
Aircraft.weaponsRegister(var_class, "default", new String[] { "MGunShVAKs 200", "MGunShVAKs 200", null, null, null, null }); В стандартных самолетах только это прописано. Даже если я эти строки совсем удалю из класса все вооружение остается. Вопрос где оно еще забито и как сделать для своего самолета так же?
try {
ArrayList arraylist = new ArrayList();
Property.set(var_class, "weaponsList", arraylist);
HashMapInt hashmapint = new HashMapInt();
Property.set(var_class, "weaponsMap", hashmapint);
int i = 8;
String string = "default";
Aircraft._WeaponSlot[] var__WeaponSlots
= new Aircraft._WeaponSlot[i];
var__WeaponSlots[0]
= new Aircraft._WeaponSlot(2, "CannonRocketSimpleRS132", 16);
var__WeaponSlots[3] = null;
for (int i_0_ = 8; i_0_ < i; i_0_++)
var__WeaponSlots[i_0_] = null;
arraylist.add(string);
hashmapint.put(Finger.Int(string), var__WeaponSlots);
string = "None";
var__WeaponSlots = new Aircraft._WeaponSlot[i];
for (int i_1_ = 0; i_1_ < i; i_1_++)
var__WeaponSlots[i_1_] = null;
arraylist.add(string);
hashmapint.put(Finger.Int(string), var__WeaponSlots);
} catch (Exception exception) {
/* empty */
} чтоб не писать вот такую кучу кода.
LeaderAI вне форума   Ответить с цитированием
Старый 05.05.2016, 22:16   #2
LeaderAI
Местный
 
Регистрация: 20.03.2016
Сообщений: 275
По умолчанию

Aircraft.weaponTriggersRegister(var_class, new int[] { 1, 1});
Aircraft.weaponHooksRegister(var_class, new String[] { "_MGUN01", "_MGUN02"});
Aircraft.weaponsRegisterMod(var_class, "default", (new String[] { "MGunMG17si 1000", "MGunMG17si 1000" }));
Aircraft.weaponsRegisterMod(var_class, "none", new String[] { null, null });
Вот так то. Теперь читает 2 варианта.
Без кучи кода почти как в оригинале только имя с препиской Mod
LeaderAI вне форума   Ответить с цитированием
Старый 05.05.2016, 23:20   #3
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

А зачем всьо так делать?
Есть же проверенный способ записи вооружния.
Я всегда расписую каждую строку.
Типа так:
Код:
static java.lang.Class _mthclass$(java.lang.String s)
    {
        java.lang.Class class1;
        try
        {
            class1 = java.lang.Class.forName(s);
        }
        catch(java.lang.ClassNotFoundException classnotfoundexception)
        {
            throw new NoClassDefFoundError(classnotfoundexception.getMessage());
        }
        return class1;
    }

    static float _GearDst = 52.096F;
    static float _BaseDst = 66.26443F;

    static 
    {
        Class class1 = com.maddox.il2.objects.air.N1K2JA_KUSHU_SR.class;
        new NetAircraft.SPAWN(class1);
        Property.set(class1, "iconFar_shortClassName", "N1K2JA-KUSHU-SR");
        Property.set(class1, "meshName", "3DO/Plane/N1K2-Ja(ja)_NEW/hier_KUSHU.him");
        Property.set(class1, "PaintScheme", new PaintSchemeFMPar01());
        Property.set(class1, "meshName_ja", "3DO/Plane/N1K2-Ja(ja)_NEW/hier_KUSHU.him");
        Property.set(class1, "PaintScheme_ja", new PaintSchemeFCSPar05());
        Property.set(class1, "yearService", 1944F);
        Property.set(class1, "yearExpired", 1945.5F);
        Property.set(class1, "FlightModel", "FlightModels/N1K2-Ja-KUSHU-Schnellere-Reducer.fmd:N1K2JA_KUSHU");
        Property.set(class1, "cockpitClass", new Class[] {
            com.maddox.il2.objects.air.CockpitN1K2JA_KUSHU.class
        });
        Property.set(class1, "LOSElevation", 1.1716F);
        Aircraft.weaponTriggersRegister(class1, new int[] {
            1, 0, 0, 1, 3, 3, 3, 3, 9, 9, 
            9, 3, 9, 9, 9, 3
        });
        Aircraft.weaponHooksRegister(class1, new String[] {
            "_CANNON01", "_CANNON02", "_CANNON03", "_CANNON04", "_ExternalBomb01", "_ExternalBomb02", "_ExternalBomb03", "_ExternalBomb04", "_ExternalDev01", "_ExternalDev02", 
            "_ExternalDev03", "_ExternalBomb05", "_ExternalDev04", "_ExternalDev05", "_ExternalDev06", "_ExternalBomb06"
        });
        try
        {
            ArrayList arraylist = new ArrayList();
            Property.set(class1, "weaponsList", arraylist);
            HashMapInt hashmapint = new HashMapInt();
            Property.set(class1, "weaponsMap", hashmapint);
            byte byte0 = 16;
            String s = "default";
            Aircraft._WeaponSlot a_lweaponslot[] = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = new Aircraft._WeaponSlot(1, "MGunType99model_2k", 220);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(0, "MGunType99model_2k", 220);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(0, "MGunType99model_2k", 220);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(1, "MGunType99model_2k", 220);
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            a_lweaponslot[13] = null;
            a_lweaponslot[14] = null;
            a_lweaponslot[15] = null;
            for(int i = 16; i < byte0; i++)
                a_lweaponslot[i] = null;

            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "HO12/CANNON";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = new Aircraft._WeaponSlot(1, "MGunHO12LS", 220);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(0, "MGunHO12LS", 220);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(0, "MGunHO12LS", 220);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(1, "MGunHO12LS", 220);
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            a_lweaponslot[13] = null;
            a_lweaponslot[14] = null;
            a_lweaponslot[15] = null;
            for(int i1 = 16; i1 < byte0; i1++)
                a_lweaponslot[i1] = null;

            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "HO12_400L_FuelTank";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = new Aircraft._WeaponSlot(1, "MGunHO12LS", 220);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(0, "MGunHO12LS", 220);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(0, "MGunHO12LS", 220);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(1, "MGunHO12LS", 220);
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = new Aircraft._WeaponSlot(9, "PylonN1K1PLN1", 1);
            a_lweaponslot[9] = new Aircraft._WeaponSlot(9, "FuelTankGun_TankN1K1", 1);
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            a_lweaponslot[13] = null;
            a_lweaponslot[14] = null;
            a_lweaponslot[15] = null;
            for(int i2 = 16; i2 < byte0; i2++)
                a_lweaponslot[i2] = null;

            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "400L_FuelTank";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = new Aircraft._WeaponSlot(1, "MGunType99model_2k", 220);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(0, "MGunType99model_2k", 220);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(0, "MGunType99model_2k", 220);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(1, "MGunType99model_2k", 220);
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = new Aircraft._WeaponSlot(9, "PylonN1K1PLN1", 1);
            a_lweaponslot[9] = new Aircraft._WeaponSlot(9, "FuelTankGun_TankN1K1", 1);
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            a_lweaponslot[13] = null;
            a_lweaponslot[14] = null;
            a_lweaponslot[15] = null;
            for(int j = 16; j < byte0; j++)
                a_lweaponslot[j] = null;

 .....................................................................
          
            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "HO12_RocketRA8SCHIFF";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = new Aircraft._WeaponSlot(1, "MGunHO12LS", 220);
            a_lweaponslot[1] = new Aircraft._WeaponSlot(0, "MGunHO12LS", 220);
            a_lweaponslot[2] = new Aircraft._WeaponSlot(0, "MGunHO12LS", 220);
            a_lweaponslot[3] = new Aircraft._WeaponSlot(1, "MGunHO12LS", 220);
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            a_lweaponslot[13] = null;
            a_lweaponslot[14] = new Aircraft._WeaponSlot(9, "PylonETC250", 1);
            a_lweaponslot[15] = new Aircraft._WeaponSlot(3, "RocketGunRA8SCHIFF", 1);
            for(int j9 = 16; j9 < byte0; j9++)
                a_lweaponslot[j9] = null;

            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
            s = "none";
            a_lweaponslot = new Aircraft._WeaponSlot[byte0];
            a_lweaponslot[0] = null;
            a_lweaponslot[1] = null;
            a_lweaponslot[2] = null;
            a_lweaponslot[3] = null;
            a_lweaponslot[4] = null;
            a_lweaponslot[5] = null;
            a_lweaponslot[6] = null;
            a_lweaponslot[7] = null;
            a_lweaponslot[8] = null;
            a_lweaponslot[9] = null;
            a_lweaponslot[10] = null;
            a_lweaponslot[11] = null;
            a_lweaponslot[12] = null;
            a_lweaponslot[13] = null;
            a_lweaponslot[14] = null;
            a_lweaponslot[15] = null;                                 
            arraylist.add(s);
            hashmapint.put(Finger.Int(s), a_lweaponslot);
        }
        catch(Exception exception) { }
    }
}
Без всяких вар_классов.

Последний раз редактировалось Vasya; 05.05.2016 в 23:22.
Vasya вне форума   Ответить с цитированием
Старый 05.05.2016, 23:36   #4
yt2
Местный
 
Регистрация: 18.01.2012
Сообщений: 783
По умолчанию

Велосипед изобретён.
Уже несколько лет в коде есть дефолтная функция XweaponsRegister
по синтаксису совместимая с weaponsRegister
Кто знает тот использует. Кто не знает - пишет сотни лишних строк кода.
yt2 вне форума   Ответить с цитированием
Старый 06.05.2016, 12:00   #5
LeaderAI
Местный
 
Регистрация: 20.03.2016
Сообщений: 275
По умолчанию

AircraftLH нашел тут ее.

Последний раз редактировалось LeaderAI; 06.05.2016 в 12:02.
LeaderAI вне форума   Ответить с цитированием
Старый 06.05.2016, 13:46   #6
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,055
Радость

Цитата:
Сообщение от yt2 Посмотреть сообщение
Велосипед изобретён.
Уже несколько лет в коде есть дефолтная функция XweaponsRegister
по синтаксису совместимая с weaponsRegister
Кто знает тот использует. Кто не знает - пишет сотни лишних строк кода.
Допустим есть., такую информацию(с пояснениями) публиковали где либо? Для тех кто не знает.
==========================
Тот вариант записи вооружния что я привёл выше - был общепринятым как раз несколько лет назад. Он мне нравиться и я больше склоняюсь к полной записи без сокращений. Как говорят - дело вкуса., тем более что старинный способ нормально работает и позволяет легко видеть соотношения хуков и того что подвешивают и прикручивают к крафту. Правда если дополняешь хуками и переподвешивашь бомбы или ракеты - приходиться переписывать все разделы(наборы) вооружения - для этого нужно потрудиться, но я уже привык., считаю это малой платой за удобство видеть полный расклад, а не ломать голову в догадках построить виртуальную схему вооружения в воображнии.
Поэтому - повторюсь - это хорошо когда есть несколько способов записи вооружения.
Кому как удобно - так и записывает. Главное: что бы компиллилось и Ил легко читал написанный код. /// Про способ записи которым пользуюсь я скажу опираясь на английский опыт: Ролс-Ройс может быть любой формы и цвета - главное большущий радиатор украшающий капот., ценность этого аглицкого аппарата от здоровенного радиатора не уменьшаеться.
Миниатюры
Нажмите на изображение для увеличения
Название: ТИПО РОЙС.jpg
Просмотров: 548
Размер:	39.8 Кб
ID:	39180  

Последний раз редактировалось Vasya; 06.05.2016 в 17:49.
Vasya вне форума   Ответить с цитированием
Старый 06.05.2016, 20:41   #7
LeaderAI
Местный
 
Регистрация: 20.03.2016
Сообщений: 275
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Допустим есть., такую информацию(с пояснениями) публиковали где либо? Для тех кто не знает.
==========================
Тот вариант записи вооружния что я привёл выше - был общепринятым как раз несколько лет назад. Он мне нравиться и я больше склоняюсь к полной записи без сокращений. Как говорят - дело вкуса., тем более что старинный способ нормально работает и позволяет легко видеть соотношения хуков и того что подвешивают и прикручивают к крафту. Правда если дополняешь хуками и переподвешивашь бомбы или ракеты - приходиться переписывать все разделы(наборы) вооружения - для этого нужно потрудиться, но я уже привык., считаю это малой платой за удобство видеть полный расклад, а не ломать голову в догадках построить виртуальную схему вооружения в воображнии.
Поэтому - повторюсь - это хорошо когда есть несколько способов записи вооружения.
Кому как удобно - так и записывает. Главное: что бы компиллилось и Ил легко читал написанный код. /// Про способ записи которым пользуюсь я скажу опираясь на английский опыт: Ролс-Ройс может быть любой формы и цвета - главное большущий радиатор украшающий капот., ценность этого аглицкого аппарата от здоровенного радиатора не уменьшаеться.
Ну дак там проще сколько хуков столько и прописок все компактно.
Нзвание вооружения и количесво патронов 1 хук.
LeaderAI вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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


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


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