|
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 от переопределенных типов. В некоторых случаях это можно сделать автоматически, а в других случаях приходится вводить в программу шаблон функции с переопределенными аргументами. Все бы однозначно решалось, если бы не было переопределенных функций, написанных в самих скриптах, а они есть! Вот поэтому я и сравнивал тексты декомпилированных и исходных скриптов, чтобы найти по максимуму такие ситуации и, или выработать новое правило обработки, или занести функцию в таблицу. Я надеюсь, хоть кто-то что-то понял в моих размышлениях. Еще одним из решений данной проблемы была задумка создать пользовательский файл, куда будут записываться функции с переопределенными аргументами, но вся сложность, чтобы найти такую функцию в скриптах. Это одна единственная, нерешенная до конца, проблема при декомпиляции скриптов. Может быть с вашей помощью удастся ее решить!
|