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