|
|
16.12.2004, 19:42
|
#162
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
Финальная консольная версия Компилятора-Декомпилятора Готики1 и 2 выложена DiccuricAG.
|
А чем отличается от версии 1.3, если не секрет? ;D :pivo:
|
|
|
16.12.2004, 20:12
|
#163
|
|
Re: Декомпилятор скриптов Готики
2TycoooN:
А чем отличается от версии 1.3, если не секрет?
|
Исправлено больше десятка ошибок и неточностей при декомпиляции Готики2. :) Хорошо бы еще проверить на других модах Готики2, но под рукой их, к сожалению, нет.
|
|
|
16.12.2004, 23:53
|
#164
|
|
Re: Декомпилятор скриптов Готики
2Vam:
2TycoooN: А чем отличается от версии 1.3, если не секрет? Исправлено больше десятка ошибок и неточностей при декомпиляции Готики2. Хорошо бы еще проверить на других модах Готики2, но под рукой их, к сожалению, нет.
|
Я проверял на Модификации для Г2 Bumshak v1.3... Декомпилировал и обратно собрал ничего не изменяя (использовал версию декомпилятора 1.3), поиграл в мод, пока не заметил никаких косяков. Щас буду тестить Финальный релиз декомпилятора :) Еще раз ВЕЛИКИЙ РЕСПЕКТ за декомпилятор!
|
|
|
19.12.2004, 11:58
|
#165
|
|
Re: Декомпилятор скриптов Готики
2Vam:
Вопрос модостроителям, патчевателям, скриптологам. После внесения изменений в скрипты каким образом вы делаете тестирование? *
|
Уважаемый Vam. При использовании вашего декомпилятора версии 1.4 (финальный релиз), заметил один неприятный глюк... При декомпиляции *файлов gothic.dat и ou.bin из МОДификации для Г2 (Bumshak v1.3) и с последующей компиляцией "декомпилированных файлов" (даже без редактирования полученных скриптов), в МОДификации Bumshak v1.3 на всех паладинах, вместо Тяжелого доспеха Паладина, были одеты легкие доспехи ополчения (Задание в модификации на уничтожение Правления Паладинов)... Доспехи на Рыцарях, ОнД, и ополчении остались соответсвтующими (я еще не всю модификацию просмотрел после перекомпилирования). Еще раз рекспект за работу на декомпилятором :)
|
|
|
19.12.2004, 14:41
|
#167
|
|
Re: Декомпилятор скриптов Готики
2B Wolf: Если ты знаешь ID номер Тяжелого доспеха Паладина, именно номер (это чило, например: 8458 ), а не имя номера, то необходимо его найти в декомпилированных скриптах и выслать мне кусок (функцию, инстанцию), где он встречается, буду исправлять.
Немного размышлений на эту тему: В скриптах встречаются переопределенные члены классов, аргументы функций, локальные и глобальные переменные. Переопределение производится с типа CLASS на тип INT. Рассмотрим для примера функцию void EquipItem(c_npc self,int item), в ней аргумент item типа c_item (ссылка на класс c_item или его производную) переопределен к типу int. В результате компиляции в датнике на месте аргумента появляется число (например 4574), вместо соответствующего имени класса c_item (например ItMW_Addon_Knife01). Задача состоит в том, чтобы отличить действительные типы int от переопределенных типов. В некоторых случаях это можно сделать автоматически, а в других случаях приходится вводить в программу шаблон функции с переопределенными аргументами. Все бы однозначно решалось, если бы не было переопределенных функций, написанных в самих скриптах, а они есть! Вот поэтому я и сравнивал тексты декомпилированных и исходных скриптов, чтобы найти по максимуму такие ситуации и, или выработать новое правило обработки, или занести функцию в таблицу. Я надеюсь, хоть кто-то что-то понял в моих размышлениях. Еще одним из решений данной проблемы была задумка создать пользовательский файл, куда будут записываться функции с переопределенными аргументами, но вся сложность, чтобы найти такую функцию в скриптах. Это одна единственная, нерешенная до конца, проблема при декомпиляции скриптов. Может быть с вашей помощью удастся ее решить!
|
|
|
20.12.2004, 09:36
|
#169
|
|
Re: Декомпилятор скриптов Готики
2B Wolf: Я могу сделать так, чтобы при декомпиляции и последующей компиляции ничего не менялось, все дело в том (относится только к Готике2), что в некоторых версиях экзешника gothic2.exe имеются две дополнительные функции (о них я упоминал в Уроках скриптологии) - в результате невыявленные программой переопределенные параметры могут получить сдвиг по номеру +- 2. А так как переопределяются только ссылки на классы C_NPC и C_ITEM, то получим сдвиг по npc или предметам на +- 2. Если при декомпиляции датника учитывать, есть ли в нем эти две функции, и затем компилить новый датник или с этими функциями или без них. Это все справедливо до тех пор, пока мы не начнем править скрипты, дописав нового npc или предмет (или удалив их из скриптов), мы получим опять сдвиг в невыявленных номерах. Правильное и довольно полное решение содержится в посте №166.
|
|
|
20.12.2004, 18:31
|
#171
|
|
Re: Декомпилятор скриптов Готики
2TycoooN:
декомпилятор версии 1.4 начинает ругаться на строчки slf.attribute, после замены на self.attribute по всем скриптам, ошибка исчезла. Непорядок
|
Я уже говорил, что сделал компилятор строже, чем в экзешнике, чтобы в дат файл попадало меньше ошибок при компиляции. В твоем примере, если подходить правильно, переменной slf в скриптах нет (значит компилятор ругается правильно). Правильное исправление будет не self.attribute, а просто attribute, как и есть в большинстве скриптов.
|
|
|
21.12.2004, 02:55
|
#173
|
|
Re: Декомпилятор скриптов Готики
2Vam:
Это все справедливо до тех пор, пока мы не начнем править скрипты, дописав нового npc или предмет (или удалив их из скриптов), мы получим опять сдвиг в невыявленных номерах.
|
Хм... глюк у меня проявлялся даже если я ничего не изменял в декомпилированных скриптах, а просто перекомпилировал исходные... Сейчас мне ничего не остается, как юзать версию 1.3... (вы писали, что в версии 1.4 по сравнению с предыдущей было исправлено несколько неточностей... Это сильно влияет на конечный gothic.dat?)
|
|
|
21.12.2004, 09:47
|
#174
|
|
Re: Декомпилятор скриптов Готики
finch:
Есть идеи, как можно сделать, чтобы юзер не мог ввести марвина?
|
Над этим вопросом пока не задумывался. B Wolf:
в версии 1.4 по сравнению с предыдущей было исправлено несколько неточностей... Это сильно влияет на конечный gothic.dat?
|
Все исправления относились к выявлению переопределяемых типов. Например, после декомпиляции версией 1.3 в функции B_PlayerFindItem(var int itm,var int amount) в строке if( itm == ItMi_Gold) вместо слова ItMi_Gold будет записан четырехзначный номер, а в версии 1.4 эта запись получается правильной. Все происходит потому, что аргумент itm фактически имеет тип C_ITEM, а при входе в функцию переопределяется к типу INT. Это только один из множества примеров с переопределением типов, необходимо обращать внимание на все подозрительные в скриптах цифры (четырехзначные) и по возможности сообщать мне.
|
|
|
28.12.2004, 11:46
|
#176
|
|
Re: Декомпилятор скриптов Готики
TycoooN:
Почему-то никак не удается декомпилировать датники из оригинальной Г2, даже немецкой. Постоянно выдаёт ошибку
|
Насколько я помню, по этой ошибке декомпиляция не останавливается а выполняется до конца, затем необходимо в созданных исходниках найти строку с ошибкой и исправить ее, затем можно будет компилировать по новой. Оригинальные (правильные) строки в файле DIA_BAU_970_Orlan.d должны выглядеть следующим образом: * * * * * *if (self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_WON) * * * * * *{ * * * * * * * * * Orlan_SCGotHotelZimmerDay = Wld_GetDay(); * * * * * * * * *Orlan_AngriffWegenMiete = FALSE; * * * * * * * * *return FALSE; * * * * * *}; Правда вместо AIV_LastFightAgainstPlayer в скобочках будет стоять число, это нормально. Красным выделены строки в которых будет ошибка (как они выглядят после декомпиляции сказать не могу). ЗЫ: 1. При декомпиляции скриптов возможно появление ошибок (они присутствуют в разном виде в датниках). 2. Ни одна из ошибок при декомпиляции не должна приводить к остановке процесса (если такое замечено, просьба сообщать). 3. Все ошибки, которые необходимо устранить перед повторной компиляцией, в логах выделены красным цветом, имя файла, в котором они встретились, находится в логе строкой ниже.
|
|
|
29.12.2004, 14:21
|
#178
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
Ни одна из ошибок при декомпиляции не должна приводить к остановке процесса (если такое замечено, просьба сообщать).
|
У меня винда выдает сообщение о том, что мол пришлось отрубить работу программы :)
|
|
|
29.12.2004, 14:54
|
#179
|
|
Re: Декомпилятор скриптов Готики
TycoooN:
У меня винда выдает сообщение о том, что мол пришлось отрубить работу программы
|
Можешь привести полное содержание сообщения, буду разбираться, сообщи еще какой версией пользуешся и в каком режиме программы происходит вылет. francisc:
У меня постоянно ошибки выдает при запуске,а вообше не выдает ли фалы с расширением .scr?
|
Об ошибках просьба писать подробно, а расширения .scr я не знаю, может имелось в виду .src?
|
|
|
29.12.2004, 16:52
|
#182
|
 |
|
 |
|
*
Регистрация: 29.08.2004
Сообщений: 1
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
Появилась 3-я версия Готик файл эдитора http://www.worldofgothic.de/dl/index.php?go=downloads&file_id=114
Zur Bearbeitung aller Gothic Textformaten, öffnet und speichert *.asc, *.mds, *.d, *.ini, *.src.
А то ты в другие ветки может не заглядываешь.
Успехов!!! И всех с наступающим Новым Годом!!!
|
|
|
30.12.2004, 13:20
|
#184
|
|
Re: Декомпилятор скриптов Готики
TycoooN:
Происходит ошибка при декомпиляции любого датника от Г2 (включая Акелловский)
|
В присланных логах есть варнинги, которых в принципе быть не должно, есть подозрение, что прога у тебя стоит "битая". Предложения: 1. Попробуй заменить прогу. 2. Если 1 не поможет, то мне бы хотелось получить каким-нибудь образом датник, на котором происходит вылет. ЗЫ: Все датники, какие у меня есть (1 и 2 Готик и всех модов), декомпилируются нормально, правда ошибки в них есть, но это для проги не смертельно. Pa:
А то ты в другие ветки может не заглядываешь.
|
Спасибо за ссылку, в другие ветки не очень часто, но заглядываю. ;)
|
|
|
30.12.2004, 13:51
|
#185
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
Предложения: 1. Попробуй заменить прогу. 2. Если 1 не поможет, то мне бы хотелось получить каким-нибудь образом датник, на котором происходит вылет. ЗЫ: Все датники, какие у меня есть (1 и 2 Готик и всех модов), декомпилируются нормально, правда ошибки в них есть, но это для проги не смертельно.
|
Скачал ещё раз. Не помогло. Ошибка происходит при декомпиляции ЛЮБЫХ датнков ориг. Г2: версии 1.28, 1.29, 1.30, немецких, русских... Аддонский датник, между тем декомпилируется нормально :(
|
|
|
30.12.2004, 21:10
|
#188
|
 |
|
 |
|
Строители Миртаны
Регистрация: 25.05.2004
Сообщений: 3
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
Я был полностью уверен, что это невозможно. Но товарищ Vam сделал это. Я поражен! Мое глубочайшее почтение за этот декомпилятор. :)
P.S. Не могу декомпилировать никакой Gothic.dat из Gothic II. [w] 00:01 Warn: 0 U: PAR: External AI_LOOKFORITEM not found. .... <zParser_Symbol.cpp,#1123> [F] 00:01 Fatal:-1 U: PAR: Dat-File is not compatible (Classoffset changed) ! Please reparse ! .... <zParser.cpp,#599>
|
|
|
30.12.2004, 23:24
|
#190
|
|
Re: Декомпилятор скриптов Готики
Декомпилятор V1.5 Новая версия выложена на DiccuricAG. Убраны вылеты на ошибках при декомпиляции, добавлено правильное определение еще 4 переопределенных типов. basilio58:
НЕ декомпилирует ОУ ВООБЩЕ. Проверено и так и сяк...
|
Не понял насчет ОУ, что ты хочешь с ним сделать?
|
|
|
30.12.2004, 23:28
|
#191
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
Убраны вылеты на ошибках при декомпиляции
|
А вот это радует. Бегу качать :D :D :D
|
|
|
31.12.2004, 17:28
|
#194
|
|
Re: Декомпилятор скриптов Готики
TycoooN: Нашел я ошибку, в старых версиях Готики 2 отсутствуют несколько встроенных функций, (это те, на которые декомпилятор вначале выдает варнинги), поэтому самый первый файл скриптов ..\Content\_intern\Constants.d создается не полностью, у него отсутствует начало (этот файл декомпилятор обзывает npc_flag_immortal.d и помещает в папку _misk_), необходимо в него скопировать несколько начальных строк из оригинального constants.d, тогда компиляция должна пройти успешно. Приношу извинения за пропуск такой ошибки (повторную компиляцию вчера не тестировал), после праздников обязательно исправлю!
P.S. На номер строки при линковке можно внимание не обращать (уберу), просто линковщик сообщает, что такая-то переменная встретилась первый раз в таком-то файле, но ранее она не была объявлена, поэтому он ее не знает и значение ей присвоить не может.
Поздравляю всех с Новым Годом! *:elka: :santa:
|
|
|
31.12.2004, 17:32
|
#195
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
необходимо в него скопировать несколько начальных строк из оригинального constants.d, тогда компиляция должна пройти успешно.
|
Спасибо, никогда бы сам не догадался! :)
|
|
|
31.12.2004, 18:28
|
#196
|
 |
|
 |
|
Строители Миртаны
Регистрация: 25.05.2004
Сообщений: 3
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2TycoooN:
2Dagot_Ur: А ты запускаешь с -zgame:1? У меня такое выдаёт при декомпиляции датника не той части игры
|
Эх, дурная голова! Все-таки ридми иногда полезно прочитать... :) 2Vam: При декомпиляции Gothic.dat, образующиеся файлы с диалогами немного не состыкуются... В чем дело я еще не разобрался, но при компиляции этих диалогов спейсером обратно в Gothic.dat, создаваемый файл Ouinfo.inf некорректно пишется.
|
|
|
31.12.2004, 19:27
|
#197
|
 |
|
 |
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Dagot_Ur:
При декомпиляции Gothic.dat, образующиеся файлы с диалогами немного не состыкуются... В чем дело я еще не разобрался, но при компиляции этих диалогов спейсером обратно в Gothic.dat, создаваемый файл Ouinfo.inf некорректно пишется.
|
А зачем ты компилируешь Спейсером, и почему тебя волнует какой-то там файл Ouinfo.inf? ;D :pivo:
|
|
|
31.12.2004, 19:58
|
#198
|
 |
|
 |
|
Строители Миртаны
Регистрация: 25.05.2004
Сообщений: 3
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2TycoooN:
А зачем ты компилируешь Спейсером, и почему тебя волнует какой-то там файл Ouinfo.inf?
|
При создании Gothic.dat, спейсер переносит фразы диалогов (что после //) в Ouinfo.inf. Далее при создании Ou.csl спейсер берет из Ouinfo.inf эти диалоги и создает из них Ou.csl. 2Vam: Дело оказывается в AI_Output, т.е. это должно быть прописано именно большими буквами. Твой же декомпилятор везде пишет ai_output. Так что не везде распознавания не происходит... :)
|
|
|
01.01.2005, 00:37
|
#200
|
 |
|
 |
|
*
Регистрация: 29.08.2004
Сообщений: 1
|
|
 |
|
 |
|
Re: Декомпилятор скриптов Готики
2Vam:
Огромное спасибо за Декомпилятор!
Всех с наступающим Новым Годом!
Годом Готики 3!!!
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 21:51. Часовой пояс GMT +4.
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|