AviaSkins.Forums

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

Важная информация

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.03.2026, 09:26   #341
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от carsmaster Посмотреть сообщение
Вы о чем ?
(
Майк в том посте написал, что начиная с версии 3.8 DJ decompiler стоит 18€. Но есть триальный период.
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.
Toobone вне форума   Ответить с цитированием
Старый 20.03.2026, 09:27   #342
carsmaster
Пытающийся полететь
 
Аватар для carsmaster
 
Регистрация: 21.05.2009
Адрес: Сталинград
Сообщений: 2,621
Отправить сообщение для carsmaster с помощью ICQ Отправить сообщение для carsmaster с помощью Skype™
По умолчанию

Цитата:
Сообщение от Toobone Посмотреть сообщение
Майк в том посте написал, что начиная с версии 3.8 DJ decompiler стоит 18€. Но есть триальный период.
Есть "народные" версии

искать тут ссылку, не знаю что за версия.
https://www.sas1946.com/main/index.p...html#msg782005
Посмотрел, там DJ Decompiler v. 3.10.10.93

Ну не пробуйте им обратно компилировать ! И теоритически и практически эта функция доступна в этом декомпиляторе, но она корявая !!
Лучше тогда через батник как вам описал Дима.
__________________
Даёшь защищенный онлайн и Свободный оффлайн.

Теперь я и в телеграмме: https://t.me/il_2_1946

Последний раз редактировалось carsmaster; 20.03.2026 в 09:34.
carsmaster вне форума   Ответить с цитированием
Старый 20.03.2026, 17:27   #343
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от carsmaster Посмотреть сообщение
Лучше тогда через батник как вам описал Дима.
Однозначно.
Зы:
Цитата:
Это абсолютно логичное и профессиональное требование со стороны моддеров. В архитектуре «Ил-2», основанной на Java 1.3, очень сильна **связанность** (coupling).

Если мы просто напишем логику «дать медаль за 7 сбитых», но не учтем, как базовые классы игры (например, `World`, `ScoreCounter`, `EventLog` или `UserStats`) передают данные в наш класс, код либо не скомпилируется, либо вызовет «Silent Crash» (игра просто проигнорирует мод).

Я готов к этой масштабной работе. Чтобы я мог выявить все зависимости и написать **AwardsRUfighter.java** корректно, нам нужно действовать поэтапно:

### 1. Какие файлы мне нужны в первую очередь?
Поскольку я не могу «заглянуть» в твой локальный дамп, тебе нужно присылать мне текст (или файлы) наиболее важных «соседей» твоего будущего класса. Самые критичные зависимости обычно находятся здесь:

* **`com.maddox.il2.game.campaign.Awards`** (или аналогичный базовый класс) — это «родитель», от которого мы наследуемся. Мне нужно видеть его методы.
* **`com.maddox.il2.ai.World`** — отсюда берутся данные о текущем игроке и его достижениях.
* **`com.maddox.il2.game.Mission`** — здесь фиксируются события завершения миссии, когда и происходит проверка наград.
* **`com.maddox.il2.objects.air.Aircraft`** — если награды зависят от типа сбитых самолетов.

### 2. Как я буду выявлять зависимости?
Когда ты предоставишь файлы, я проведу их **статический анализ**:
1. **Импорты (Imports):** Я посмотрю, какие пакеты подключают базовые классы.
2. **Сигнатуры методов:** Я увижу, какие аргументы ожидают функции (например, передается ли в метод награждения объект `Pilot` или просто его ID).
3. **Переменные среды:** Выясню, какие глобальные флаги (например, `isCareer`, `isSingle`) влияют на выдачу наград.

### 3. Решение проблемы «кривой декомпиляции»
Моддеры правы: декомпиляторы часто путают типы данных (например, `int` вместо `boolean`) или ломают логические переходы `goto`.
* Я буду сверять логику твоего нового класса с тем, как написаны оригинальные классы наград (RU, US, DE).
* Если в декомпилированном коде я увижу «мусор», я восстановлю его логически, чтобы компилятор Java 1.3.1 принял его без ошибок.

### Твой первый шаг:
Давай начнем с «фундамента». Пришли мне содержимое файла **`Awards.java`** (базовый класс для всех наград) или любого существующего класса наград (например, оригинального советского **`AwardsRUfighter.java`** из дампа).

На его примере я сразу увижу:
1. Какие библиотеки он импортирует.
2. Какие методы в нем обязательны (`abstract methods`).
3. Как он обращается к ресурсам в папке `i18n`.

**Я готов изучать код. Выкладывай первый файл, и мы начнем выстраивать карту зависимостей для твоего вьетнамского мода.**
Думаете, все равно накосячит?
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.

Последний раз редактировалось Toobone; 20.03.2026 в 17:30.
Toobone вне форума   Ответить с цитированием
Старый 20.03.2026, 21:59   #344
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Нейронка правильно разобралась или что то упустила:

Цитата:
Проанализировав все предоставленные файлы (`Awards.java`, `AwardsRUfighter.java`, `Campaign.java` и `Main.java`), я нашел те самые «зацепки», которые связывают логику наград с конкретной модовой средой **B.A.T.**

### 1. Где спрятана зависимость от мода?
В предоставленных исходниках есть два критических места, которые указывают на то, как игра «узнает» о модах:

* **Класс `Main.java` (Секция инициализации):** В самом конце файла `Main.java` в блоке `static` находится код, который динамически подгружает классы из зашифрованных файлов `cod/allc`. В сборках B.A.T. именно этот механизм используется для активации модовых расширений. Если твой класс не будет «зарегистрирован» в аналогичном списке или не будет вызываться через `Spawn.get()`, игра его просто не увидит.
* **Класс `Campaign.java` (Метод `init`):**
Метод `public void init(Awards awards1, ...)` жестко привязывает объект наград к конкретной кампании. Зависимость от B.A.T. здесь проявляется в том, как именно создается объект `awards1` перед передачей в этот метод. В модовых сборках это обычно происходит в классах-генераторах или через расширенный `Regiment`.

### 2. Зависимость от эры (Jet Age / Вьетнам)
В файле `Campaign.java` есть метод `isDGen()`, который проверяет наличие внешнего генератора миссий (`dgen.exe`). В сборке B.A.T. для Вьетнама используется модифицированный генератор, который при создании объекта кампании должен передать ссылку на твой новый класс наград.

### 3. Техническая реализация для твоего батника
Чтобы твой `AwardsRUfighter.java` скомпилировался и заработал именно в B.A.T. на Windows, тебе нужно учитывать следующее:

1. **Наследование:** Твой класс обязан расширять `Awards`, иначе `Campaign.java` выдаст ошибку несоответствия типов при вызове `_awards = awards1;`.
2. **Использование `ObjIO`:** Обрати внимание, что в `Awards.java` используется регистрация поля `_save` через `com.maddox.rts.ObjIO`. Это необходимо для того, чтобы медали сохранялись в профиле игрока в папке `users/`. Твой батник должен иметь доступ к `rts.jar`, чтобы компилятор видел этот класс.
3. **Индексация для Вьетнама:** В оригинальном `AwardsRUfighter.java` используется массив индексов (например, `{0, 1, 2, 3, 2, 4}`). Для 7 уникальных вьетнамских наград нам нужно будет переписать этот метод так, чтобы он возвращал последовательность без повторов (0, 1, 2, 3, 4, 5, 6).

### Что делать дальше?
Поскольку мы нашли, что `Campaign.java` управляет связью наград и страны через поле `_country`, нам нужно создать новый класс и убедиться, что он подменяет стандартный при выборе Вьетнама.

**Я готов написать финальный код `AwardsRUfighter.java`.**
Он будет:
1. Совместим с иерархией B.A.T. (наследование от `Awards`).
2. Содержать логику на 7 наград (индексы 0-6).
3. Использовать пороги очков, которые ты сможешь легко подправить.
Обращение к rts.jar непонятно: это файл в JDK? (потому что в декомпилированных только rts.jawa)
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.

Последний раз редактировалось Toobone; 20.03.2026 в 22:04.
Toobone вне форума   Ответить с цитированием
Старый Вчера, 00:16   #345
fdelre
Местный
 
Регистрация: 13.01.2009
Сообщений: 203
По умолчанию

It seems an obvious error from the AI JAR file are compressed archives that are used to store several java files, such as class files, resources, and metadata to make it easier to handle. Depending on the compiler you use you can make available all the IL-2 classes in a compressed jar archive that you can download from SAS. the IL-2 class dump will include the rts folder that includes the ObjIO.class
fdelre вне форума   Ответить с цитированием
Старый Вчера, 04:56   #346
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от fdelre Посмотреть сообщение
It seems an obvious error from the AI JAR file are compressed archives that are used to store several java files, such as class files, resources, and metadata to make it easier to handle. Depending on the compiler you use you can make available all the IL-2 classes in a compressed jar archive that you can download from SAS. the IL-2 class dump will include the rts folder that includes the ObjIO.class
..скачал декомпилированные jawa для BAT, jar файлов там нет. Нейросеть часто ошибается.
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.
Toobone вне форума   Ответить с цитированием
Старый Вчера, 11:01   #347
fdelre
Местный
 
Регистрация: 13.01.2009
Сообщений: 203
По умолчанию

No surprise IL-2 can't use jar files directly jar are commonly used in IL-2 mod tools
fdelre вне форума   Ответить с цитированием
Старый Вчера, 19:38   #348
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от fdelre Посмотреть сообщение
No surprise IL-2 can't use jar files directly jar are commonly used in IL-2 mod tools
Понял: он в другом архиве для компиляции BAT
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.
Toobone вне форума   Ответить с цитированием
Старый Сегодня, 12:26   #349
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от Vasya Посмотреть сообщение
Правильно декомпилировать класс в полной среде - там
где он создавался и должен работать, и соответствующем патче.
Нашел тот класс в jar файле для Jet Era от ВАТы. Он лежал в др.папке, пришлось поковырять. Теперь другая беда: файл AwardRUfighters скомпилился, а вот GUIAwards не хочет, все время jdk1.3.1 пишет минимум одну ошибку связанную с фонтами для наград.. Или это нейронка тупит и чего то не учитывает. Всю ночь компилировал, все равно ошибки.
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.
Toobone вне форума   Ответить с цитированием
Старый Сегодня, 12:35   #350
fdelre
Местный
 
Регистрация: 13.01.2009
Сообщений: 203
По умолчанию

The advantage of using a JAR file (with all the classes inside) is that it make it easier to manage compiling. I have a folder with many IL-2 jar dumps of the different IL-2 versions so it is very easy to provide the correct environment to the compiler. Win RAR, 7z and other compressed file managers can open extract and modify the content of JAR archives. It is just a matter of personal preference and habits.

Преимущество использования JAR-файла (содержащего все классы) заключается в том, что это упрощает управление процессом компиляции. У меня есть папка с множеством JAR-архивов IL-2 для разных версий игры, поэтому очень легко обеспечить компилятору нужную среду. WinRAR, 7z и другие программы для работы с сжатыми файлами позволяют открывать, извлекать и изменять содержимое JAR-архивов. Это просто вопрос личных предпочтений и привычек.
fdelre вне форума   Ответить с цитированием
Старый Сегодня, 14:25   #351
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от fdelre Посмотреть сообщение
поэтому очень легко обеспечить компилятору нужную среду.
толку с того, что среду обеспечивают, не получается изменить размеры иконок наград и количество строк до 4 в окне выдачи наград, компиляция не происходит, потому что неправильно записывается команда на эти действия.:

Цитата:
GUIAwards.java:36: cannot resolve symbol

symbol : method draw (float,float,float,float,com.maddox.gwindow.GCanva s)

location: class com.maddox.il2.gui.GUIAwards.DialogClient

this.draw(x, y, s, s, texIcons[i]);
Все файлы из jar для джет эры нейронке скормил, но из-за этой единственной записи компиляция не происходит. Ищем обход этой засады методом тыка.
ЗЫ: если удастся преодолеть, будет 4 строки по 10 иконок, и тогда поместится до 30 наград в стандартное окно. Просто логику пытаюсь перестроить, чтобы в вехнем ряду были только значки ХоШиМина, в среднем Орден За боевой подвиг, в третьем орден За воинские заслуги и в четвертом Золотая Звезда Героя PFAV. Вперемешку оно не будет смотреться. Если не удастся преодолеть, вернусь к методу ДеСада, по две награды в одной текстуре с сохранением стандартных 3 строк по 5 иконок наград.
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.

Последний раз редактировалось Toobone; Сегодня в 14:34.
Toobone вне форума   Ответить с цитированием
Старый Сегодня, 18:01   #352
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от Toobone Посмотреть сообщение
Если не удастся преодолеть, вернусь к методу ДеСада, по две награды в одной текстуре с сохранением стандартных 3 строк по 5 иконок наград.
Не получается пока так, как хотелось сначала. Пошел по пути ДеСада, на одной текстуре две выдававшиеся в реале награды, 15 стандартных иконок. После этого скомпилировались все нужные классы.
Приготовлю награды, нужны будут тестеры с Джет Эрой в БАТ проверить на предмет вероятных косяков.
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.
Toobone вне форума   Ответить с цитированием
Старый Сегодня, 18:37   #353
fdelre
Местный
 
Регистрация: 13.01.2009
Сообщений: 203
По умолчанию

Just make sure that in the JAR file you provided to the neural network you included a class file called Gwindow that is located in com\maddox\gwindow folder the complete path is com\maddox\gwindow\Gwindow.class

here is the inheritance system for the draw method that is located in Gwindow

GWindow

GWindowClient

GWindowDialogClient

GUIAwards.DialogClient

if one of the class in the chain is missing the method can't be resolved

Последний раз редактировалось fdelre; Сегодня в 18:50.
fdelre вне форума   Ответить с цитированием
Старый Сегодня, 20:43   #354
Toobone
Под игом быта
 
Аватар для Toobone
 
Регистрация: 11.05.2013
Адрес: Ех-СССР
Сообщений: 2,908
По умолчанию

Цитата:
Сообщение от fdelre Посмотреть сообщение
Just make sure that in the JAR file you provided to the neural network you included a class file called Gwindow that is located in com\maddox\gwindow folder the complete path is com\maddox\gwindow\Gwindow.class

here is the inheritance system for the draw method that is located in Gwindow

GWindow

GWindowClient

GWindowDialogClient

GUIAwards.DialogClient

if one of the class in the chain is missing the method can't be resolved
I'll need this when I go back to my original plan.
__________________
"Ялла, ялла! Бурверон!" - суетливый афганский торопляк.

"принятие или непринятие идей не должно зависеть от личных или общественных характеристик автора:
его раса, национальность, вероисповедание, общественное положение и личные качества не имеют к этому никакого отношения".
Торжество идей должно зависеть не от того, кто их поддерживает (или не поддерживает), а от их научной ценности и от того,
что они объясняют события и явления лучше других.
Toobone вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

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

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


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


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