Новости Состоялся релиз The Elder Scrolls IV: Oblivion Remastered
  • 343
  • 8
22 апреля 2025 года состоялся релиз игры The Elder Scrolls IV: Oblivion Remastered. Это ремастер игры 2006 года, разработанный студиями Virtuos и Bethesda Game Studios, изданный Bethesda...
Важно Форуму RPGRUSSIA 15 лет!
  • 2.785
  • 19
Друзья, сегодня нашему форуму исполняется 15 лет! Кажется, только вчера мы открывали первые разделы, спорили о правилах и радовались каждому новому участнику. Но годы пролетели - а мы всё здесь, и...
Новости Path of Exile 2: Патч 0.2.0 «Dawn of the Hunt» - краткое описание
  • 1.500
  • 0
Вчера вечером, в 22.00 по МСК, в прямом эфире вышла презентация по будущему патчу 0.2.0. В целом, игроки ждали нового класса и ребаланса существующих умений, но то что выкатили GGG на публику...
Новости Gothic 1 Remake - Demo (Nyras Prologue)
  • 5.195
  • 2
Ну что, заключённые, готовы к встрече с колонией? Мир, где каждый встречный мечтает вас зарезать за кусок хлеба, а единственный закон - сила. Вас ждёт совершенно новый пролог к легендарной...

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

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.437
Реакции
6.010
Баллы
976
Лучшие ответы
418
#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
Сообщения
784
Реакции
155
Баллы
161
Лучшие ответы
2
#6
И пропал... Было бы полезно, если бы сделал такую возможность... Очень даже полезно! Был бы я Java кодером, а не C#, то я бы сам переделал...
Впрочем я сделал GVE+, а этим пускай занимается кто-то другой ;)
 

Aztec2012

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

Liker

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

Aztec2012

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