Новости Ремейк "Готики 1" | Трейлер Showcase 2024
  • 6.338
  • 9
Новички, пришло время принять реальность и смириться с судьбой. Чувствуйте себя как дома в Долине Рудников, месте, полном опасностей, преступлений и жадности. Вам предстоит оставаться здесь очень...
Готика 2: Другая история Gothic II: Other Story - Описание мода
  • 27.618
  • 79
Готика 2: Другая история / Other Story - это глобальная модификация для игры «Готика 2: Ночь Ворона». Её цель - сделать игру более нелинейной, с большим количеством вариантов выбора и...
Новости Старт 6го сезона Grim League
  • 4.309
  • 2
4 мая в 18-00 стартует шестой сезон Community лиги по одной из лучших игр в жанре arpg Grim Dawn. Сезон представляет собой глобальную модификацию игры, включающую в себя расширение мира, изменение...
Новости Дата релиза Baldur's Gate III
  • 23.057
  • 2
Наконец-то дождались - "Baldur's Gate III" покидает ранний доступ, и в августе 2023 выходит в полноценный релиз, о чём стало известно на церемонии "The Game Awards 2022". С момента выхода игры в...

Tool DecDat - редактор дат файлов и декомпилятор скриптов Готики

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.342
Реакции
5.772
Баллы
976
Лучшие ответы
415
#1
Tool DecDat - редактор дат файлов и декомпилятор скриптов Готики

В отсутствие обновлений Готик Соурсера (между версиями 3.14 и 3.15 прошло несколько лет), приходится пробовать другие программы для работы с готическими скриптами.
Такими инструментами были в свое время Tool ReaDat, который обновился в мае 2012 года до Tool DecDat.
DecDat может делать все то же, что и предшественник, с учетом правок и улучшений. А также некоторых новшеств.

Дальнейшее описание сделано в яндекс-переводчике, так что не претендует на техническую точность, а лишь дает представление о возможностях инструмента. - прим. Alex1

ReaDat мог быть использован для того, чтобы открыть содержание Dat файла. В нем перечислены все символы и с помощью различных таблиц распределены функции, экземпляры и прототипы можно было увидеть в виде Parser tokens точнее.
DecDat позволяет больше: он может отобразить после этого Daedalus код (язык скриптов Готики) почти* в своем первозданном виде. В этом его возможности похожи на GothicSourcer 3.14, однако тот выдает ошибки при декомпиляции добавок (Икарус и LeGo) В версии ГС 3.15 введена поддержка Икаруса+Лего и АСТ - прим. Alex1
* Сноска:
При синтаксическом разборе могут быть ошибки в интерпретации значений функций переменных int. Чтобы файл сделать работоспособным, следует соблюдать последовательность символов. Кроме того, теряется форматирование.

Наряду с этим переработана возможность декомпилировать полностью Dat файл, как Daedalus скрипт (через экспорт с распределением по нескольким файлам). Переработан интерфейс программы. Есть только одна таблица, в которой перечислены все символы. Добавлено поле поиска, куда могут подаваться регулярные выражения. (Недостающее поле поиска сделало ReaDat совершенно бесполезным)
Пока возможен только поиск по ID, типу и имени. Он все еще ограничен, но все-таки лучше так, чем никак.

Причины перехода на новую программу, вместо доработки ReaDat:
  • Разработчик Gottfried потерял исходники предыдущей версии, которые хотел еще улучшать
  • Поиск возможности полной реконструкции (декомпиляции) dat файла с дополнениями от Ikarus, которую на то время не давал ГС3.14 (доступная версия не поддерживала скриптовые пакеты)

Получившийся инструмент может быть использован аналогично ReaDat, чтобы разбирать побайтово код. Также может помочь при проблемах со скриптами, в экспортных определениях, регулярных выражениях и смещениях, используя краткую справку из интегрированных в программу файлов: Help_ExportDef.txt, Help_RegEx.txt, Help_Tokens.txt

DecDat разработан на Java (Swing для поверхности). Автор Gottfried выложил исходники программы, чтобы не потерять и поделиться :). Если кто найдет ошибки экспорта (декомпиляции) - просит сообщать о них.

Оригинал темы на ВоГ.де: /forum/threads/1151032-Tool-DecDat

Скриншот программы:
DecDat_Gui.png

Для запуска:
Консоль вызвать в папке с файлом DecDat.jar и написать java -jar DecDat.jar (надо, чтобы java была установлена)

Ссылки:
Исходники на Java Посмотреть вложение d2_1.0a.src.7z
Сама утилита Посмотреть вложение DecDat 1.0a.zip
 
Последнее редактирование модератором:

Gor

Gor

Новичок
Участник форума
Регистрация
26 Авг 2013
Сообщения
22
Реакции
4
Баллы
9
Лучшие ответы
0
#2
Для удобства использования я перевел на русский DecDat. Правда я не знаю немецкого и Java, так что пришлось немного попотеть. :)
 

Вложения

Junicave

Новичок
Регистрация
4 Июн 2016
Сообщения
2
Реакции
0
Баллы
1
Лучшие ответы
0
#3
Здравствуйте! Я Java-программист, заинтересованный в разработке этой программы. Вот уже несколько месяцев активно тружусь над её доработкой. Хотелось бы в ближайшее время поделиться своими наработками с Сообществом (я предполагаю, что они могут оказаться весьма полезными - например, возможность отредактировать любую функцию и сохранить изменения назад в бинарный файл). Мне хотелось бы обсудить мои наработки, показать их автору исходной программы тов. Gottfried, но, к сожалению, я не знаю немецкий язык. :(
 

Gor

Gor

Новичок
Участник форума
Регистрация
26 Авг 2013
Сообщения
22
Реакции
4
Баллы
9
Лучшие ответы
0
#4
например, возможность отредактировать любую функцию и сохранить изменения назад в бинарный файл
Отредактировать в байт-коде ты имеешь ввиду? А вставку кода делать можно или только поверх имеющегося?
 

Junicave

Новичок
Регистрация
4 Июн 2016
Сообщения
2
Реакции
0
Баллы
1
Лучшие ответы
0
#5
например, возможность отредактировать любую функцию и сохранить изменения назад в бинарный файл
Отредактировать в байт-коде ты имеешь ввиду? А вставку кода делать можно или только поверх имеющегося?
Ага, придумали способ делать перерасчёт при вставке.
 

RightMAN

Наемник
Участник форума
Регистрация
6 Июн 2014
Сообщения
786
Реакции
155
Баллы
161
Лучшие ответы
2
#6
И пропал... Было бы полезно, если бы сделал такую возможность... Очень даже полезно! Был бы я Java кодером, а не C#, то я бы сам переделал...
Впрочем я сделал GVE+, а этим пускай занимается кто-то другой ;)
 

Aztec2012

Житель города
Участник форума
Регистрация
7 Апр 2012
Сообщения
154
Реакции
22
Баллы
37
Лучшие ответы
0
#7
DecDat Открывает даже те Dat что не берёт Готик Соурсер. А можно их в связке использовать?
 

Liker

Демиург
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
21 Фев 2016
Сообщения
23.407
Реакции
19.088
Баллы
1.341
Лучшие ответы
752
#8
@Aztec2012, DecDat это чисто код посмотреть, он конструкции if else неправильно показывает когда они вложены друг в друга. Код скомпиленный после него будет неправильно работать.
 

Aztec2012

Житель города
Участник форума
Регистрация
7 Апр 2012
Сообщения
154
Реакции
22
Баллы
37
Лучшие ответы
0
#9
@Aztec2012, DecDat это чисто код посмотреть, он конструкции if else неправильно показывает когда они вложены друг в друга. Код скомпиленный после него будет неправильно работать.
Может ктонибудь когданибудь это доработает.
 
Сверху Снизу