|
|
|
|
Канал X4: Foundations: «[SOFT] X4:Полезный софт и модули для разработчиков» |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
Что бы не играться с этими попытками чтения в катах
|
Нормально, прорвемся.
У меня 01.DAT весит 5 Гиг.
| alexalsp : |
|
Файлы есть в 01 , но я так и не смог вынуть, толи там сжатие другое
|
Не парься, мои ридеры достают инфу из DAT-ов весьма быстро. Родные тулзы не будем юзать.
В общем, основной интерфейс и функционал проги X4AbandonedShip немного причесал. Надо теперь разобраться с классом X4CatParser твоим. Тут ой-ёй )). 72 тыщи языковых файлов находит , и зря читает лишние файлы, типа ".cat.sig"..
Внесу в проект свои Cat-Dat-ридеры (библиотеки) для добычи XML-ов из них. А файлы сейвов лучше действительно читать XmlReader-ом, т.к. он часто не нужен - прочел и забыл.
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
у тебя какая версия ? 9.0 10 гигов весит 01 dat
| igorVL : |
|
языковых файлов находит , и зря читает лишние файлы, типа ".cat.sig"..
|
ну я сказал черновик , 5 часов до утра пыхтел. ))
добавлено спустя 52 секунды:
| igorVL : |
|
Внесу в проект свои Cat-Dat-ридеры (библиотеки) для добычи
|
у меня такого нет
добавлено спустя 8 минут:
для кораблей надо 01 05 07 08 кат дат
assets\units\size_*\macros\
ship_*_macro
папка модов
ext_xx.cat dat
subst_xx.cat
01. 02. 03.
исключить _sig
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (19:25 05-06-2026), всего редактировалось 2 раз(а) |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
у тебя какая версия ?
|
8.00
9 - я вроде еще релиза не было.
Да и не важно сколько весит 01.dat, читаем все равно по разметке из CAT, т.е. только нужные куски.
| alexalsp : |
|
у меня такого нет
|
Скоро будет. Скину проект.
|
Cкрытый текст (кликните здесь для просмотра)
|
Последний раз редактировалось: igorVL (19:39 05-06-2026), всего редактировалось 1 раз |
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
Просто доделывал, когда ты сообщил, что будешь допиливать ))
в обработке 5 7 8 кат в корне, сиги исключены, в модах 1 2 3 кат, сиги в топку, модовые модеров ext_ и subst_xx.cat в обработке.
+ русский текст к именам кораблей вместо макросов.
исходники внутрях
добавлено спустя 1 минуту:
Тогда я заканчиваю, хотя и так работает )) . В ожидании релиза
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (21:20 05-06-2026), всего редактировалось 2 раз(а) |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
В ожидании релиза
|
Пилю потихоньку. Хотя уже от этих кат-дат голова кругом... Надо пивка бабахнуть
| alexalsp : |
|
в модах 1 2 3 кат
|
Выяснил, что в модах (DLC) языковые файлы (t/aaaa-bbbb.xml) находятся всегда в ext_02.dat. Если ext_02.dat в DAT-е нету, значит и переводов (языков) у данного DAT нет. Они отсылаются в корневой 09.dat.
Во всяком случае, это относится к фирменным DLC от Egosoft.
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
Отслеживать модовые текстовики это еще то т г..
приоритет модовый файл , а он может быть как самостоятельный, так и заменяющий . немного может помочь исключение , типа если нашли сектор и макрос корабля значит смотрим на текстовик мода . если его нет , то к оригиналу.
А сами макросы кораблей , так же могут быть как патчами, так и самостоятельными, что приводит к следующему шагу парсинга , дай Бог что бы там не было идинтефикейшена имени ..
ту просто зашхеришься все разгребать.
Вон есть мод звездные воины , глобалка, пойди там разгреби )))
Мне страшно об этом думать ))
добавлено спустя 1 минуту:
Поэтому все утилиты и делаются чисто под чистую игру, а моды, как повезет. ..
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (22:02 05-06-2026), всего редактировалось 1 раз |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
Да, с модами тут можно кукухой поехать все разгребать...
Единственно что я понял, так это то, что моды всегда хранят текстовики в отдельном DAT-е, с одноименным CAT-ом, где указаны только они. Не как в оригинале.
Т.е., теоретически, прочесывая все CAT-ы мода - нужно искать в них текст вида "t/0001-l007.xml 121262 1779272491 ..." Ну т.е. начинающегося с "t/". Если такого текста в CAT-ах нет, значит языковых файлов в этом моде тоже нет.
Тут надо дойти до понимания - как сама игра все это разбирает (моды).
Предварительно, думаю так: игра при запуске сначала считывает данные из модов (приоритет), а потом из своих оригинальных DAT-ов.
Затем, когда идет обращение к чему-то, игра сначала просматривает файлы (память) модов, и если там нет - уже свои оригинальные файлы.
Правила именования не зря такие: "01.dat", "ext_01.dat". Т.е. игровому движку видно что от куда брать и где искать.
| alexalsp : |
|
X4AbandonedShip - 0.0.1 beta 2.rar
|
Я уже много чего поменял, убрал косяки и вообще привел к нормальному виду. Нормальный такой рефакторинг кода произвел, короче .
Поэтому версия у меня - текущая рабочая. Нет смысла скачивать оригинальные еще раз..
добавлено спустя 13 минут:
ПЫ СЫ:
Думаю, пока с модами не заморачиваться. Сделать нормальный парсер никчемных кораблей на ванильной игре.
А там дойдем до понимания как заменяются/дополняются моды, и их приклеим сюда.
Последний раз редактировалось: igorVL (23:23 05-06-2026), всего редактировалось 2 раз(а) |
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
для этой тулзы все равно сколько модов. она с сейвом работает и ищет везде данные для составления списков, цель которых одна, подменить макро имя текстом. даже если какого то текста не будет, просто высветит макрос, работа от этого не испортится.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите.... |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
| igorVL : |
|
Единственно что я понял, так это то, что моды всегда хранят текстовики в отдельном DAT-е, с одноименным CAT-ом, где указаны только они. Не как в оригинале.
|
Это я уже чушь прогнал, заработался..
На самом деле у оригинала и в DLC языковые файлы (текстовики) всегда в отдельных файлах. У оригинала это "09.cat/dat", в дополнениях (официальных) "ext_02.cat/dat".
Скорее всего, есть какое-то правило "подхвата" текстовиков из модов, т.е. любой сторонний мод не может запихать свои переводы куда попало. Ну, или, игровой движок при загрузке - как-то разбирает CAT-файлы и понимает, где лежат текстовики. Как раз по путям каталогов в Катах "t/0001-XXXX ...".
В общем, пока DLC и модами не занимаемся. Доработаю прогу поисковика под оригинальную игру, а там видно будет что делать с модами.
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
У длс нет текстовиков, они у них общие в 09 кат. А у модов в папке t
и не только 0001-l но и просто 0001.xml и любые цифровые.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите.... |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
У некоторых есть смотрю, у венчуров например:
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
Это венчуры онлайн , у меня его нет. скорее всего только у него , так как в остальных текстовиков нет. да и венчуры дело такое, я уже их не помню когда рабочими видел и не известно запустят ли они его вообще ))
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите.... |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
Обновление библиотеки CatReaderLib!
В результате исследований ресурсов игры X4, а так же в связи с новыми открывшимися обстоятельствами - была улучшена работа библиотеки CatReaderLib.
1. Оптимизирован метод загрузки LoadCatFile().
2. Добавлен асинхронный метод загрузки ReadCatFileAsync().
3. Добавлен метод загрузки CatData-объектов по известному пути (паттерну).
3-й пункт будет особенно полезен на "больших" CAT-файлах, таких как "01.CAT".
Он содержит много чего лишнего (не нужного нам хлама), а интересующие нас секции находятся почти в конце файла.
Теперь не нужно загружать в память все строки CAT-файла: достаточно считать необходимые объекты по известному пути. Создание CatData объектов происходит значительно быстрее.
Например, для поиска инфы про все корабли класса "S" - достаточно прописать в метод загрузки паттерн "assets/units/size_s/macros/". В результате из файла будут извлечены только объекты этих кораблей и ничего другого.
На моем ПК (Core i5) эти операции происходят фактически мгновенно.
добавлено спустя 40 минут:
Твой метод загрузки русских текстовок (LoadRussianLanguageTexts()) превратился в:
|
Cкрытый текст (кликните здесь для просмотра)
|
А не километровый, как раньше
Последний раз редактировалось: igorVL (14:03 06-06-2026), всего редактировалось 1 раз |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
+ обновление библиотеки DatReaderLib!
- добавлен метод асинхронного чтения XML-раздела из DAT-файлов ReadAsync().
- добавлен перечислитель языков (Enum), чтобы не искать/вспоминать код нужного языка:
|
Cкрытый текст (кликните здесь для просмотра)
| Код: |
public enum LangCode
{
English = 44,
Russian = 7,
Deutsch = 49,
Italian = 39,
French = 33,
Spanish = 34,
Portuguese = 55,
Polish = 48,
Czech = 42,
Chinese_Simplified = 86,
Chinese_Traditional = 88,
Korean = 82,
Japanese = 81
}
|
|
Теперь инициализировать словарь описаний можно так:
| Код: |
| descriptionReader.Init(_cat_файл_текстовика_, LangCode.Russian) // Русский язык |
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
Все я зыки у меня автобэкапере севов, у тебя не полный список.
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите.... |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
| alexalsp : |
|
у тебя не полный список
|
Я знаю что неполный. Это те, что есть конкретно у меня в игре (8.0). Потом дополним, не проблема )
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
Надо ради интереса на ребезе попробовать )) Сработает или нет ))
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите.... |
|
|
|
igorVL
64 EGP Рейтинг канала: 5(208) Репутация: 2 Сообщения: 219
Зарегистрирован: 04.08.2023
 |
|
Кстати, полезное замечание на счет списка языков. Надо будет предусмотреть ситуацию, если выбранного языка нет в CAT-е. Вернуть какой-то по умолчанию (английский, например).
А вообще, список поддерживаемых языков находится в 08.DAT-е. У меня там несколько языков закомментировано, т.е. их нет в игре.
|
|
|
|
alexalsp
541 EGP
      Рейтинг канала: 14(2323) Репутация: 56 Сообщения: 4817
Зарегистрирован: 12.08.2014
 |
|
Английский по умолчанию.
0001-L007.xml — Русский язык.
0001-L033.xml — Французский язык.
0001-L034.xml — Испанский язык.
0001-L039.xml — Итальянский язык.
0001-L042.xml — Чешский язык.
0001-L044.xml — Английский язык.
0001-L048.xml — Польский язык.
0001-L049.xml — Немецкий язык.
0001-L055.xml — Португальский (Бразилия).
0001-L081.xml — Японский язык.
0001-L082.xml — Корейский язык.
0001-L086.xml — Китайский язык (упрощенный).
0001-L088.xml — Китайский язык (традиционный).
0001-L090.xml — Турецкий язык.
0001-L359.xml — без понятия
0001-L380.xml — Украинский должен быть
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/yZqwPbJaCq
https://t.me/+ApizhYp4JD9kMjU6
Пользуйте мои моды как хотите....
Последний раз редактировалось: alexalsp (17:18 06-06-2026), всего редактировалось 4 раз(а) |
|
|
|
|
|
|
|
|
Канал X4: Foundations: «[SOFT] X4:Полезный софт и модули для разработчиков» |
|
|