Показать сообщение отдельно
Старый 27.03.2007, 18:49   #983
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam:

Спасиб.. :)
Но это наш единственный ИНСТРУМЕНТ, а без него ни как - нашему брату скриптологу... *;)

Данная ошибка проявляется везде где должна стоять функция:
* * * * *B_NPC_IsAliveCheck(OldWorld_Zen);
Эта функция заменяется прогой на неправильную:
* * * * *B_InitGuildAttitudes()OldWorld_Zen;

Не подтвердилось, GothicSourser 3.12 при компиляции и декомпиляции всё делает правильно. Проверял на бинарных файлах Глобал мода (dat и bin), было сделано последовательно три цикла - (декомпиляция - компиляция). Результат: ошибок нет, вниманий нет, размеры dat файлов одинаковы, размеры ou.bin файлов различны на несколько байтов (заголовок bin файла содержит информацию о пользователе и времени создания файла - отсюда различие на несколько байт).
Странно, очень странно, почитав твой пост решил запустить тесты вновь, и вот что из этого вышло:

В Тесте использовались:
Компилятор/декомпилятор скриптов - GothicSourser 3.12.
Gothic.dat и Ou.bin-файл GLOBAL_mod v.1.11.
Платформа Г2-НВ.

Используемые процессы:
- декомпиляция dat-файла, с последующей компиляцией;


Описываю по шагово что и как делал, при поимке данного артефакта:
Cпойлер(щелкните, чтобы прочесть):

Установил заного GS 3.12, приступил к созданию нового проекта, декомпиллируя Gothic.dat и Ou.bin - файлы, скомпиллированные GS 3.11.
Код:
 Сохранил созданный проект и нажал декомпилляция.Декомпилляция прошла успешно: ошибок 0, вниманий 0.Нажал компилляция, компиллятор выдал ошибку с использованием ИСТИННОГО НЕ (!), в файле: DIA_BDT_1072_Addon_Logan.dОшибку исправил, опять сохранил все, нажал компилляцию, Компиллятор выдал эту же ошибку в другом файле: DIA_NONE_100_Xardas.dИсправил ее, снова сохранил все и запустил в очередной раз компилляцию, более ошибок не было, компилляция завершена успешно: ошибок 0, вниманий 0.Данная ошибка (!) в скриптах GLOBAL_mod встречалась всего дважды как и раньше...Не выходя из проекта, опять нажал компилляцию, компилляция завершилась успешно: ошибок 0, вниманий 0.Закрыл проект.Не выходя из программы, создал новый проект из только что скомпиллированных Gothic.dat и Ou.bin - файлов...Сохранил все, нажал декомпиллировать, декомпилляция прошла успешно: ошибок 0, вниманий 0.Сохранил все, нажал компилляцию, и вот тут то она и проявилась, компиллятор сообщил об ошибке: Story\Dialoge\DIA_b5_9000_mage.d(77): Ошибка: Ожидается ';' Это, та самая ошибка, с неправильной подстановкой имени в функции, и неправильной расстановкой скобок: * * * * *B_InitGuildAttitudes()OldWorld_Zen;Вот так она у меня была выловлена.Дальше тестить не стал...


Эта проблема так и не была локализована. Исходя из предыдущего ответа можно сделать вывод, что с версией GothicSourser 3.12 эта проблема отсутствует.
Дополнительно по описанной методике были проверены оригинальные бинарные файлы Г1 и Г2 с исправлением всех ошибок после первой декомпиляции (внимания не правил) - разницы в размерах файлов не обнаружено, следовательно, строк повторения диалогов в них нет.
На этот счет соображения тож имеются:
Cпойлер(щелкните, чтобы прочесть):

Код:
 Скорее всего подстановка строк происходит при использовании встроенных функций программы, "ПОИСК" и "ПОИСК с ЗАМЕНОЙ в файлах", и сейчас ими вообще стараюсь не пользоваться. При использовании "ПОИСК с ЗАМЕНОЙ в файлах", прога иногда виснет, не так чтоб конкретно но визуально это можно понять именно как ЗАВИСЛА. Я последовал твоему совету, и в таком случае жму на Эскейп и видно что прога вышла из ступора, но на самом деле в Диспетчере задач можно наблюдать картину в графике загруженности ПК, что он загружен на 100%. Хотя сам специально проверял, до этого граффик, загруженности там не было ...ВЫВОД, визуально прога уже отвечает на действия пользователя, а вот на уровне ядра(если у нее таковое есть) она все еще в ступоре, и продолжает что-то делать. Ну это мое ИМХО...


Теперь вопрос: делать новую версию с исправлением одной ошибки со скобками или подождать, может кто-нибудь ещё найдет какие-нибудь ошибки?
Думаю что пока не стоит, из-за описанного выше...
Хотя кто знает ?!


========================
PS
. Если будет необходимо скину свои Gothic.dat и Ou.bin - файлы...

Отправить личное сообщение для Ответить с цитированием