02.09.2007, 19:40 | #1 |
Звуковых дел мастер
|
Вопрос по джаве...
Захотелось мне вот из месса F-2 сделать F-1, для чего потребовалось заменить Мг151 на МгФФ, заморачиваться с новым самолетом не стал, решил добавить как доп вооружение, НО. Вообщем ил вылетает, попробовал заменить в стандарте мг151 на мгфф. Тож вылетает. Порылся исчо, нашел констант пул в котором и опиываются пушка с бк(соответственно при несовпадении с той что описывается в классе, все успешно вылетает), вообщем суть такая как добавить в этот констант пул новые значения?
|
03.09.2007, 08:16 | #2 |
Администратор
Регистрация: 28.02.2007
Адрес: Выборг
Сообщений: 1,137
|
{P
но попробуй привести тут содержимое класса |
03.09.2007, 08:58 | #3 |
Звуковых дел мастер
|
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov Date: 03.09.2007 8:58:37
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version! // Decompiler options: packimports(3) // Source File Name: BF_109F2.java package com.maddox.il2.objects.air; import com.maddox.il2.ai.Wing; import com.maddox.il2.engine.HierMesh; import com.maddox.il2.fm.*; import com.maddox.rts.Property; // Referenced classes of package com.maddox.il2.objects.air: // BF_109, PaintSchemeFMPar03, Aircraft, NetAircraft public class BF_109F2 extends BF_109 { public BF_109F2() { kangle = 0.0F; } public void update(float f) { if(FM.getSpeed() > 5F) { hierMesh().chunkSetAngles("SlatL_D0", 0.0F, Aircraft.cvt(FM.getAOA(), 6.8F, 11F, 0.0F, 1.5F), 0.0F); hierMesh().chunkSetAngles("SlatR_D0", 0.0F, Aircraft.cvt(FM.getAOA(), 6.8F, 11F, 0.0F, 1.5F), 0.0F); } hierMesh().chunkSetAngles("Flap01L_D0", 0.0F, -16F * kangle, 0.0F); hierMesh().chunkSetAngles("Flap01U_D0", 0.0F, 16F * kangle, 0.0F); hierMesh().chunkSetAngles("Flap02L_D0", 0.0F, -16F * kangle, 0.0F); hierMesh().chunkSetAngles("Flap02U_D0", 0.0F, 16F * kangle, 0.0F); kangle = 0.95F * kangle + 0.05F * FM.EI.engines[0].getControlRadiator(); if(kangle > 1.0F) kangle = 1.0F; super.update(f); } public static void moveGear(HierMesh hiermesh, float f) { float f1 = 0.8F; float f2 = -0.5F * (float)Math.cos((double)(f / f1) * 3.1415926535897931D) + 0.5F; if(f <= f1 || f == 1.0F) { hiermesh.chunkSetAngles("GearL3_D0", 0.0F, -77.5F * f2, 0.0F); hiermesh.chunkSetAngles("GearL2_D0", -33.5F * f2, 0.0F, 0.0F); } f2 = -0.5F * (float)Math.cos((double)((f - (1.0F - f1)) / f1) * 3.1415926535897931D) + 0.5F; if(f >= 1.0F - f1) { hiermesh.chunkSetAngles("GearR3_D0", 0.0F, 77.5F * f2, 0.0F); hiermesh.chunkSetAngles("GearR2_D0", 33.5F * f2, 0.0F, 0.0F); } hiermesh.chunkSetAngles("GearC3_D0", 70F * f, 0.0F, 0.0F); if(f > 0.99F) { hiermesh.chunkSetAngles("GearL3_D0", 0.0F, -77.5F, 0.0F); hiermesh.chunkSetAngles("GearL2_D0", -33.5F, 0.0F, 0.0F); hiermesh.chunkSetAngles("GearR3_D0", 0.0F, 77.5F, 0.0F); hiermesh.chunkSetAngles("GearR2_D0", 33.5F, 0.0F, 0.0F); } if(f < 0.01F) { hiermesh.chunkSetAngles("GearL3_D0", 0.0F, 0.0F, 0.0F); hiermesh.chunkSetAngles("GearL2_D0", 0.0F, 0.0F, 0.0F); hiermesh.chunkSetAngles("GearR3_D0", 0.0F, 0.0F, 0.0F); hiermesh.chunkSetAngles("GearR2_D0", 0.0F, 0.0F, 0.0F); } } protected void moveGear(float f) { float f1 = 0.9F - (float)((Wing)getOwner()).aircIndex(this) * 0.1F; float f2 = -0.5F * (float)Math.cos((double)(f / f1) * 3.1415926535897931D) + 0.5F; if(f <= f1 || f == 1.0F) { hierMesh().chunkSetAngles("GearL3_D0", 0.0F, -77.5F * f2, 0.0F); hierMesh().chunkSetAngles("GearL2_D0", -33.5F * f2, 0.0F, 0.0F); } f2 = -0.5F * (float)Math.cos((double)((f - (1.0F - f1)) / f1) * 3.1415926535897931D) + 0.5F; if(f >= 1.0F - f1) { hierMesh().chunkSetAngles("GearR3_D0", 0.0F, 77.5F * f2, 0.0F); hierMesh().chunkSetAngles("GearR2_D0", 33.5F * f2, 0.0F, 0.0F); } hierMesh().chunkSetAngles("GearC3_D0", 70F * f, 0.0F, 0.0F); if(f > 0.99F) { hierMesh().chunkSetAngles("GearL3_D0", 0.0F, -77.5F, 0.0F); hierMesh().chunkSetAngles("GearL2_D0", -33.5F, 0.0F, 0.0F); hierMesh().chunkSetAngles("GearR3_D0", 0.0F, 77.5F, 0.0F); hierMesh().chunkSetAngles("GearR2_D0", 33.5F, 0.0F, 0.0F); } } public void moveSteering(float f) { if(FM.CT.getGear() < 0.98F) { return; } else { hierMesh().chunkSetAngles("GearC2_D0", 0.0F, -f, 0.0F); return; } } static Class _mthclass$(String s) { return Class.forName(s); ClassNotFoundException classnotfoundexception; classnotfoundexception; throw new NoClassDefFoundError(classnotfoundexception.getMes sage()); } private float kangle; static { Class class1 = com.maddox.il2.objects.air.BF_109F2.class; new NetAircraft.SPAWN(class1); Property.set(class1, "iconFar_shortClassName", "Bf109"); Property.set(class1, "meshName", "3DO/Plane/Bf-109F-2/hier.him"); Property.set(class1, "PaintScheme", new PaintSchemeFMPar03()); Property.set(class1, "meshName_hu", "3DO/Plane/Bf-109F-2(hu)/hier.him"); Property.set(class1, "PaintScheme_hu", new PaintSchemeFMPar03()); Property.set(class1, "yearService", 1941F); Property.set(class1, "yearExpired", 1944.5F); Property.set(class1, "FlightModel", "FlightModels/Bf-109F-2.fmd"); Property.set(class1, "cockpitClass", com.maddox.il2.objects.air.CockpitBF_109F2.class); Property.set(class1, "LOSElevation", 0.74205F); Aircraft.weaponTriggersRegister(class1, new int[] { 0, 0, 1 }); Aircraft.weaponHooksRegister(class1, new String[] { "_MGUN01", "_MGUN02", "_CANNON01" }); Aircraft.weaponsRegister(class1, "default", new String[] { "MGunMG17si 500", "MGunMG17si 500", "MGunMG151ki 200" }); Aircraft.weaponsRegister(class1, "none", new String[] { null, null, null }); } } |
03.09.2007, 09:01 | #4 |
Звуковых дел мастер
|
соответственно если заменить MGunMG151ki 200
на MGunMGFFk 60 Ил при загрузке выдает сообщение об ошибке при обращении к памяти и вываливается |
04.09.2007, 05:10 | #5 |
Звуковых дел мастер
|
Спецов похоже нету, печально.
|
04.09.2007, 11:28 | #6 |
Гость
Сообщений: n/a
|
к мышлаевскому. может он чего посоветует.
З.Ы. вопрос - кто мне подскажет как вообще со всем этим работать, чем пользоваться, и где всзять! З.З.Ы. ну очень охотта.... |
05.09.2007, 20:39 | #7 |
Звуковых дел мастер
|
Поковыряли ещё, проблема таки оказалась не в констант пуле, хз, не знаю куда дальше копать...
|
06.09.2007, 19:34 | #8 |
Изменник родины
Регистрация: 28.02.2007
Адрес: Ивано-Франковск
Сообщений: 1,084
|
2БигБ
Мышлаевский сам плавает в вопросе. Вопрос. закоментил класснотфаунд, а оно ццуко, выдало аж 28 ошибок. Шо делать? Пытался прикрутить к поплавковому Арадо кабины от жучки 87Б2.
__________________
Коммунист, сепаратист, интернационалист. Зацветут ещё мои деревья в саду. |
07.09.2007, 00:49 | #9 |
Звуковых дел мастер
|
тебе надо подключить джава ЖДК, и правильно в батнике пути прописать.... Вот мне такой мануальчик дали...
Работать будет.Кстати Java Decompiler глючит если закидывать в него папки с подкаталогами. Ладно поехали: Для начала грохнуть все что ты до этого делал.(резолвер действительно имел косяк при замещении файлов) Снять дампы классов -> натравить резолвер (java -jar classresolver.jar ."). Скачать и установить JDK -> дописать в переменную PATH путь к папке .\jdk\bin(Мой Компьютер -> Свойства -> Дополнительно -> Переменные среды...после изменения- перезагрузиться ) Далее на примере файла HUD.class ,который у меня получилось благополучно декомпилировать изменить и скомпилировать назад. Итак.Декомпилируем HUD.class Создаем батник: @echo off for %%f in (*.java) do javac -classpath I:\IL-2\Files -source 1.3 -target 1.3 %%f (обрати внимание на параметр classpath- это твой путь к папке Files ) -> Кидаем батник в папку с HUD.java(.\Files\com\maddox\il2\game) -> Запускаем. Если все получилось- значит все было сделано правильно. Не получилось- будем разбираться. Удачи! java -jar classhasher.jar ." ПыСы. В переменных средах надо прописать ещё путь к самой джаве(не ждк которая) можно взять ту что идет с игрой в папке bin Последний раз редактировалось SG2_Wasy; 07.09.2007 в 00:51. |
08.09.2007, 02:51 | #10 |
Изменник родины
Регистрация: 28.02.2007
Адрес: Ивано-Франковск
Сообщений: 1,084
|
Спасибо, будем мучать(ся).
__________________
Коммунист, сепаратист, интернационалист. Зацветут ещё мои деревья в саду. |
08.09.2007, 22:05 | #11 |
Заблокирован
Регистрация: 08.09.2007
Сообщений: 22
|
SG2_Wasy
Установить MG151/20 на Bf 109F-2/G-14/G-10/K-4 пробывал? Попробуй установить две подкрыльевые MG151/20 на Bf 109F-4. |
09.09.2007, 02:53 | #12 |
Звуковых дел мастер
|
дык какая разница, если даже на ф2 ствол заменить неполучается, на всех остальных тот же исход будет.....
|
09.09.2007, 16:08 | #13 |
Изменник родины
Регистрация: 28.02.2007
Адрес: Ивано-Франковск
Сообщений: 1,084
|
2 Вася
как конкретно прописать ЖДК? Желательно со скриншотами.
__________________
Коммунист, сепаратист, интернационалист. Зацветут ещё мои деревья в саду. |
09.09.2007, 18:34 | #14 |
Звуковых дел мастер
|
В переменной path там уже записано два пути, их нетрогай, через ";" добавь путь к java.exe(та что в папке ила) и путь к установленному jacac.exe(то что в папке с ждк)...
Рис прилагаю... |
09.09.2007, 21:49 | #15 |
Заблокирован
Регистрация: 08.09.2007
Сообщений: 22
|
Ищи Вася,ищи.....
|
09.09.2007, 22:09 | #16 | |
Штурмовик-бомбардировщик
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 815
|
Цитата:
Я так с кокпитами тоже пробовал. Делал кокпит к У2 (не помню, какой кокпит), так он зараза вообще перестал грузиться. на других самолях нормально работает. Несколько летабов у меня есть уже На СБ в 4.05 поставил рокеты. Хоть чем-то стрелять можно стало. Научил стрелять по-отдельности правой и левой внешней бомбой (или рокетой, что поставишь). Просто поменял цыфру 3 на 2 или один. или ноль. Эти цыфры отвечают за то, кокой кнопкой джоя будут стрелять эти слоты. Если на мессере ты на любую пушку поставишь индекс 3, то она будет стрелять по комманде сбросить бомбы, цыфра 2 - это рокеты, 1 - пушки, 0 - пулеметы. Цыфры десять и больше - турели на многоместных. Aircraft.weaponTriggersRegister(class1, new int[] { 10, 10, 11, 12, 3, 3, 3, 3, 3, 3, 2, 1, 0 }); Aircraft.weaponHooksRegister(class1, new String[] { "_MGUN01", "_MGUN02", "_MGUN03", "_MGUN04", "_BombSpawn01", "_BombSpawn02", "_BombSpawn03", "_BombSpawn04", "_BombSpawn05", "_BombSpawn06", "_BombSpawn07", "_ExternalBomb01", "_ExternalBomb02" }); Aircraft.weaponsRegister(class1, "default", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", null, null, null, null, null, null, null, null, null }); Aircraft.weaponsRegister(class1, "6xfab50", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", null, null, null }); Aircraft.weaponsRegister(class1, "6xfab100", new String[] { "MGunShKASt 700", "MGunShKASt 700", "MGunShKASt 1000", "MGunShKASt 300", "BombGunFAB100", "BombGunFAB100", "BombGunFAB100", "BombGunFAB100", "BombGunFAB100", "BombGunFAB100", null, null, null }); Aircraft.weaponsRegister(class1, "1xfab250", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", null, null, null, null, null, null, "BombGunFAB250", null, null }); Aircraft.weaponsRegister(class1, "2xfab250", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", null, null, null, null, null, null, null, "BombGunFAB250", "BombGunFAB250" }); Aircraft.weaponsRegister(class1, "2xfab500", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", null, null, null, null, null, null, null, "BombGunFAB500", "BombGunFAB500" }); Aircraft.weaponsRegister(class1, "2xTorpedoMk13", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", null, null, null, null, null, null, "BombGunTorpMk13 2", null, null }); Aircraft.weaponsRegister(class1, "20xROFS132", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", null, null, null, null, null, null, "RocketGunROFS132 20", null, null }); Aircraft.weaponsRegister(class1, "Bouckett", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "BombGunFAB50", "RocketGunROFS132 20", "BombGunFAB500", "BombGunFAB500" }); Aircraft.weaponsRegister(class1, "Katyusha", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "RocketGunROFS132 20", "RocketGunM13 5", "RocketGunBRS132 5" }); Aircraft.weaponsRegister(class1, "1xFAB250_600xPTAB25_40xROFS132", new String[] { "MGunShKASt 960", "MGunShKASt 960", "MGunShKASt 1000", "MGunShKASt 500", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunPTAB25 100", "BombGunFAB250", "RocketGunROFS132 20", "RocketGunBRS132 20" }); Aircraft.weaponsRegister(class1, "none", new String[] { null, null, null, null, null, null, null, null, null, null, null, null, null }); Это кусок класса СБ2, мной переделанный. Обратите внимание и сравните с тем, что выдают ваши декомпиляторы. Вот такой кусок компилируется. Декомпилятор может добавлять мусор к некоторым словам, который нужно удалять, иначе компилятор не поймет. Я декомпилю двумя декомпилями, два файла сравниваю и на их основе создаю нормальный исходник - читабельный и без ошибок, который компилируется
__________________
Если что-то очень хочется, то можно. Возможно по-другому Если что-то не получается, то одно из трех: 1. Тебе это не нужно 2. Плохо стараешься 3. Делаешь это не так. Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем... |
|
09.09.2007, 22:18 | #17 |
Штурмовик-бомбардировщик
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 815
|
Из данного кода видно, что два первых слота отданы первой турели, на СБ это носовой стрелок с двумя пулеметами ШКАС, Третий и четвертый - верхнему и нижнему стрелку. Далее идут тройки. Это бомболюки, управляемые четвертой кнопкой джоя или альт-пробел. Короче бомбы
Цифра 2 - была цифрой 3. Я переделал на двойку для того, чтобы этим бомболюком управлять коммандой пуска рокет, третьей кнопкой либо пробелом. ноль и один - тоже были тройки. Это бомбовые подвески на пилонах. Теперь они управляются нажатием на гашетку пулемета и пушки соответственно, можно кидать по-отдельности Работает только в 4.05, так как 4.08 именно этот кусок класса игнорирует, все остальные изменения он принимает безоговорочно (смену и добавление кокпита, флайтмодели, 3д-модели.) 2 Васи. Именно про эти индексы ты и спрашивал у меня на экстракторе.
__________________
Если что-то очень хочется, то можно. Возможно по-другому Если что-то не получается, то одно из трех: 1. Тебе это не нужно 2. Плохо стараешься 3. Делаешь это не так. Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем... Последний раз редактировалось Jareny; 09.09.2007 в 22:24. |
09.09.2007, 22:30 | #18 |
Штурмовик-бомбардировщик
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 815
|
2 Васи. Я хочу, чтобы обойти ограничение по оружию на 4.08, создать новый самолет, как Пе82. Ему можно будет навешать все, что угодно, и восьмерка должна будет это все проглотить. Поэтому нет смысла менять оружие у готовых самолетах, надо делать свой. Ну и естественно для онлайна это уже не покатит, как ты на нем будешь летать, если такого самолета нет ни у кого больше, кроме тебя? Давай думать в этом направлении. мне пока не удалось. Ищите Аборта, он делал уже
__________________
Если что-то очень хочется, то можно. Возможно по-другому Если что-то не получается, то одно из трех: 1. Тебе это не нужно 2. Плохо стараешься 3. Делаешь это не так. Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем... |
09.09.2007, 22:39 | #19 |
Штурмовик-бомбардировщик
Регистрация: 09.09.2007
Адрес: Russia
Сообщений: 815
|
А если заменить на MGunMGFFki? Такая тоже ведь есть. А так же MGunMGFFkih, MGunMGFFs, MGunMGFFs, MGunMGFFsi, MGunMGFFt. Ну что у тебя на k свет клином сошелся? Помни, это для пятерки толко изменения. На восмерку только Ктим способен поставить. и ему подобные
__________________
Если что-то очень хочется, то можно. Возможно по-другому Если что-то не получается, то одно из трех: 1. Тебе это не нужно 2. Плохо стараешься 3. Делаешь это не так. Захожу ему в хвост, стрелки ещё не стреляют... пошли ракеты! Бабах! Ракеты, бабах! Осталось шестеро... нет ракет, есть вражеские истрибители. Так, один без крыла, другой без хвоста. Впрочем, как и я... Круто летать с навороченным самодельным джоем... |
10.09.2007, 06:04 | #20 |
Звуковых дел мастер
|
Потому что такая же стоит на эмиле, пока здесь не сделаю, не имеет смысла идти дальше...
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|