|
04.05.2016, 21:00 | #1 |
Местный
Регистрация: 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 */ } чтоб не писать вот такую кучу кода. |
05.05.2016, 22:16 | #2 |
Местный
Регистрация: 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 |
05.05.2016, 23:20 | #3 |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,088
|
А зачем всьо так делать?
Есть же проверенный способ записи вооружния. Я всегда расписую каждую строку. Типа так: Код:
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. |
05.05.2016, 23:36 | #4 |
Местный
Регистрация: 18.01.2012
Сообщений: 797
|
Велосипед изобретён.
Уже несколько лет в коде есть дефолтная функция XweaponsRegister по синтаксису совместимая с weaponsRegister Кто знает тот использует. Кто не знает - пишет сотни лишних строк кода. |
06.05.2016, 12:00 | #5 |
Местный
Регистрация: 20.03.2016
Сообщений: 275
|
AircraftLH нашел тут ее.
Последний раз редактировалось LeaderAI; 06.05.2016 в 12:02. |
06.05.2016, 13:46 | #6 | |
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,088
|
Цитата:
========================== Тот вариант записи вооружния что я привёл выше - был общепринятым как раз несколько лет назад. Он мне нравиться и я больше склоняюсь к полной записи без сокращений. Как говорят - дело вкуса., тем более что старинный способ нормально работает и позволяет легко видеть соотношения хуков и того что подвешивают и прикручивают к крафту. Правда если дополняешь хуками и переподвешивашь бомбы или ракеты - приходиться переписывать все разделы(наборы) вооружения - для этого нужно потрудиться, но я уже привык., считаю это малой платой за удобство видеть полный расклад, а не ломать голову в догадках построить виртуальную схему вооружения в воображнии. Поэтому - повторюсь - это хорошо когда есть несколько способов записи вооружения. Кому как удобно - так и записывает. Главное: что бы компиллилось и Ил легко читал написанный код. /// Про способ записи которым пользуюсь я скажу опираясь на английский опыт: Ролс-Ройс может быть любой формы и цвета - главное большущий радиатор украшающий капот., ценность этого аглицкого аппарата от здоровенного радиатора не уменьшаеться. Последний раз редактировалось Vasya; 06.05.2016 в 17:49. |
|
06.05.2016, 20:41 | #7 | |
Местный
Регистрация: 20.03.2016
Сообщений: 275
|
Цитата:
Нзвание вооружения и количесво патронов 1 хук. |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|