|
|
|
Канал X4: Foundations: «Программа «X4 Builder»» |
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
Не хочу сам заново писать извлечение ресурсов, если автор мне засветит свой проект, то воспользуюсь им, заодно подправлю (в частности XML редактор). Затем сделаем Модель, которая не будет привязана к конкретному устройству (ОС). Т.е. планируй хоть на телефоне... Плюс, переработать визуальный интерфейс. Ну и там дальше по плану...
|
|
|
d.xahok 176 EGP
Рейтинг канала: 8(908) Репутация: 6 Сообщения: 1817
Зарегистрирован: 19.10.2015 |
|
Леша исходниками делится без проблем, но сразу предупреждаю, что там жесткий монолит на VB.NET с хранением модели данных в XML объектах и кастомным рендером под винформом. Даже с простым чтением кода там сложно, не говоря по повторное использование чего-либо. Плюс Леша и не кодер, так что даже большой опыт с легаси не особо помогает. ))
|
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
d.xahok : |
что там жесткий монолит на VB.NET
|
Это я уже понял, когда разобрал экзешник. Слишком много конструкций, которые явно не руками писаны.
d.xahok : |
и кастомным рендером под винформом
|
В этом как раз основная проблема данного приложения. Ну ничего, все решаемо.
|
|
|
Linkor 60 EGP Рейтинг канала: 2(12) Репутация: 2 Сообщения: 185
Зарегистрирован: 23.05.2023 |
|
igorVL : |
Ну ничего, все решаемо.
|
Если что могу помочь, только я ничего не знаю кроме JS, задачки под попкорн решал на codewars.
|
|
|
alexusvm 653 EGP
Рейтинг канала: 13(2139) Репутация: 31 Сообщения: 1583 Откуда: Москва Зарегистрирован: 30.08.2012 |
|
igorVL : |
если автор мне засветит свой проект
|
Дерзайте!
|
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
Немного начал: https://youtu.be/AnHw0RA2bRc.
|
|
|
anDron 545 EGP
Рейтинг канала: 12(1904) Репутация: 54 Сообщения: 5590 Откуда: Новосибирск Зарегистрирован: 27.11.2013 |
|
А то, что осталась "секретка" - я очень удивлен. Это Лехинский для мну еще в самом начале делал вывод АйДи-шников на всяко-всячину. Когда еще только-только игра и Билдёр вышли. Для упрощения ковырялок. Забыл прибить, видать, за большим монстро-кодом...
|
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
anDron : |
на всяко-всячину
|
А, ну ясно
Сделал пока "ковырялку" товаров и их локализации (08 и 09 cat). Не стал заморачиваться с написанием собственного раз'архиватора - заюзал Эгософтовский XRCatTool.exe (консольная версия).
Распаковывает оба каталога за 3 сек (примерно).
|
|
|
alexusvm 653 EGP
Рейтинг канала: 13(2139) Репутация: 31 Сообщения: 1583 Откуда: Москва Зарегистрирован: 30.08.2012 |
|
igorVL : |
Не стал заморачиваться
|
всё одно к этому придёшь... (кликните здесь для просмотра)
(другой пилот) : |
принцип выдергивания данных из игры
|
Берешь из папки с дистрибутивом игры все CAT-файлы. Важно их читать по порядку нумерации (в названии файла: 01, 02 и т.д.), т.к. в более старших могут лежат более свежие версии одних и тех же файлов. В CAT-файлах размечены данные из соответствующих DAT-файлов.
Например 01.cat:
Код: |
assets/characters/animations/2.xsm 111354 1208774952 380e1d7ea9d0e38fa17e7e708a01ef28
assets/characters/animations/ani_approach.xsm 159933 1254917870 ed894c212bb483f7fd89b2a31d053e46
… |
в каждой строке размечен отдельный файл:
assets/characters/animations/2.xsm - имя файла и его папка, в котором он должен лежать после извлечения (игрой);
111354 - длина файла в символах;
на остальные «1208774952» (дата файла) и «380e1d7ea9d0e38fa17e7e708a01ef28» (check-sum) не обращай внимание.
У первого файла (2.xsm) смещение в DAT-файле (01.dat) = 0, т.е. содержимое файла записано в DAT-файле с 0-го до 111354-го символа.
У второго файла (ani_approach.xsm) смещение += длина_предыдущего = 111354, а длина 159933. т.е. его содержимое записано с 111354-го до (111354+159933)-го символа. И так для всех остальных файлов.
Соответственно сначала обходишь все CAT-файлы и запоминаешь где-что лежит в DAT-файлах, затем извлекаешь по необходимости из DAT-файлов нужное. В DAT-файлах прописана простая копипаста содержимого файлов, так-что просто читаешь нужное «от и до» и пишешь в соответствующий файл или в память.
В нашем случае "нужное" - только XML-файлы, т.к. все конфиги игры лежат в них. Там вроде также есть шаблоны (XSM-файлы) для соответствующих XML-файлов, и если хочешь читать XML по фэншую, можно и их юзать.
|
|
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
alexusvm : |
Берешь из папки с дистрибутивом игры все CAT-файлы.
|
Принцип мне известен. Что такое CAT и DAT файлы к счастью знаю ).
alexusvm : |
У первого файла (2.xsm) смещение в DAT-файле (01.dat) = 0
|
Вот как раз зачем очередное изобретение велосипеда, если есть уже готовый инструмент? XRCatTool.exe как раз и делает побайтное считывание и раскладывает в выходной каталог все "по полочкам". Мне лишь остается тремя строчками кода вызвать его и передать нужные аргументы. Единственный минус его (консольной версии) то, что он выгребает все подряд; т.е. нельзя указать какой конкретный каталог внутри DAT'а мне нужен (или я не разобрался еще с этим, хелп по нему скудный). GUI (оконная версия) это умеет.
Потом, со временем, конечно можно написать свою читалку DAT'ов...
alexusvm : |
Важно их читать по порядку нумерации
|
Это я помню еще по работе с X3. Однако, не всегда действительно все нужно и захламлять память ненужным мусором особого смысла нет.
Например, в данном случае, возьмем "Товары" (ware) - раньше 08-го DAT'а я не встретил ни одного упоминания про них. Там много всякого ненужного другого барахла. Все товары и их группы лежат в 08.dat (это фактически последний dat), а в 09.dat лежат локализации (переводы). Но когда выходят патчи/обновления или моды кто ставит, то да - могут добавится еще DAT'ы с номерами повыше, которые нужно будет подхватывать.
Вот так распаковывает XRCatTool:
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
Cкрытый текст (кликните здесь для просмотра)
|
То есть структура полностью сохранена.
Последний раз редактировалось: igorVL (23:00 16-08-2023), всего редактировалось 1 раз |
|
|
alexalsp 514 EGP
Рейтинг канала: 11(1711) Репутация: 54 Сообщения: 4353
Зарегистрирован: 12.08.2014 |
|
X Catalog Tool Version 1.11
Copyright (c) 2019 EGOSOFT
X Tools.rar |
Описание: |
Стекстовиком readme с командами |
|
Имя файла: |
X Tools.rar |
Размер файла: |
1.6 MB |
Скачано: |
48 раз(а) |
Readme.rar |
Описание: |
|
Имя файла: |
Readme.rar |
Размер файла: |
4.67 KB |
Скачано: |
45 раз(а) |
_________________ CMDR: Fallout(EG)
ED - если застряли: https://discord.gg/w56kPWH
Последний раз редактировалось: alexalsp (02:09 17-08-2023), всего редактировалось 3 раз(а) |
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
alexalsp : |
X Catalog Tool Version 1.11
|
Ну вот, уже лучше.
Cкрытый текст (кликните здесь для просмотра)
-include <patterns> Include all files matching the following regular expression(s).
-exclude <patterns> Exclude all files matching the following regular expression(s) from the already included files.
|
|
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
Часть 2. Распаковка и выборка данных.
Cкрытый текст (кликните здесь для просмотра)
|
Последний раз редактировалось: igorVL (15:49 17-08-2023), всего редактировалось 1 раз |
|
|
Linkor 60 EGP Рейтинг канала: 2(12) Репутация: 2 Сообщения: 185
Зарегистрирован: 23.05.2023 |
|
igorVL : |
Часть 2. Распаковка и выборка данных.
|
Комментировать сложно, всё интересно, но ничего не понятно.
Распаковывать думаю лучше всё, мало ли кому пригодится в будущем, с обновлением согласен, заново уже распакованные не надо распаковывать.
Не думал, что C# так на JS похож. Теперь понятно почему на codewars столько похожих ответов, люди просто решают задачу на одном языке, а на других просто переписывают на другой язык лучшее решение.
|
|
|
d.xahok 176 EGP
Рейтинг канала: 8(908) Репутация: 6 Сообщения: 1817
Зарегистрирован: 19.10.2015 |
|
Linkor : |
Не думал, что C# так на JS похож.
|
Все языки на базе C похожи, на первый взгляд.
|
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
Linkor : |
Распаковывать думаю лучше всё, мало ли кому пригодится в будущем
|
Для этого как раз и есть XTool эгософтовский.
А вот для программы, ну, допустим, расчет комплексов - многое абсолютно не нужно. Например, зачем нам MD (скрипты миссий)? Просто чтоб бесполезно в памяти висело?
Linkor : |
но ничего не понятно
|
А и не нужно тут особо понимать - это не гайд по программированию на C# . Комментировать - имелось в виду подкидывать идеи алгоритмического плана, функционала и т.п.
Linkor : |
люди просто решают задачу на одном языке, а на других просто переписывают на другой язык лучшее решение.
|
Да да. Так и есть.
d.xahok : |
Все языки на базе C похожи
|
С(++) базисный ЯП, почти все остальные производные от него.
|
|
|
Linkor 60 EGP Рейтинг канала: 2(12) Репутация: 2 Сообщения: 185
Зарегистрирован: 23.05.2023 |
|
igorVL : |
Комментировать - имелось в виду подкидывать идеи алгоритмического плана, функционала и т.п.
|
По модам я бы накидал, а к билдеру, что тут можно подкинуть он как справочник.
|
|
|
S!rAssassin 112 EGP
Рейтинг канала: 9(1098) Репутация: 11 Сообщения: 1111 Откуда: Смоленск, Россия Зарегистрирован: 01.11.2006 |
|
Только лишь портативный вариант программы, хоть и без загрузки актуального сейва игрока, но с возможностью рассчитать станцию, одну или несколько, используя усредненные данные игры.
А если можно будет и сейв подгрузить -
Давно билдером не пользовался, может уже есть, но хорошо бы иметь возможность расчета приблизительного времени прибытия, а следовательно и прибытия ресурсов и убытия товаров еденицами груза в час, задавая условия откудас-что-куда-чем. Если будут учтены не только базовые ТТХ транспортников, но и установленные Босо-моды - билдеру, как расчетчику, цены не будет.
_________________ «Война, торговля и разбой - три вида сущности одной» (c) Гёте. Про творение Эгософта говорил, не иначе :)
Последний раз редактировалось: S!rAssassin (17:48 18-08-2023), всего редактировалось 1 раз |
|
|
igorVL 62 EGP Рейтинг канала: 5(115) Репутация: 2 Сообщения: 136
Зарегистрирован: 04.08.2023 |
|
S!rAssassin : |
Только лишь портативный вариант программы
|
Ну он и есть портативный (без инсталлятора). На сколько я понял, у Алексея прога хранит настройки в реестре. Я пока с этим не определился; не каждому нравится реестр "засорять", хотя вроде бы он для этого и предназначен ).
S!rAssassin : |
А если можно будет и сейв подгрузить
|
Это по-любому надо.
S!rAssassin : |
прибытия ресурсов и убытия товаров еденицами груза в час, задавая условия откудас-что-куда-чем
|
Пока смутно представляю пользу от этого. Да и расчетные данные будут весьма-весьма поверхностными, т.к. на движение кораблей в игре влияет много факторов. Плюс к этому, думаю, забивать в прогу кто-что везет и от куда - будет довольно "квестовым" действом
Хотя, если потом хорошо покумекать над этим, может что и придумается...
добавлено спустя 54 минуты:
Часть 3. Проверка CAT/DAT файлов.
Последний раз редактировалось: igorVL (20:04 18-08-2023), всего редактировалось 1 раз |
|
|
S!rAssassin 112 EGP
Рейтинг канала: 9(1098) Репутация: 11 Сообщения: 1111 Откуда: Смоленск, Россия Зарегистрирован: 01.11.2006 |
|
igorVL : |
без инсталлятора
|
Я имел ввиду мобильную версию, прошу прощения.
igorVL : |
Пока смутно представляю пользу от этого.
|
Хоть примерный расчет логистики при разнесенном производстве. Понимаю, многие просто строят мегакомплексы аля руда->Асгард. Но мне больше по душе ставить добывающие хабы и торговые станции для распределения товаров себе и неписям.
_________________ «Война, торговля и разбой - три вида сущности одной» (c) Гёте. Про творение Эгософта говорил, не иначе :) |
|
|
|
|
|
Канал X4: Foundations: «Программа «X4 Builder»» |
|