Показать сообщение отдельно
Старый 19.03.2005, 20:19   #425
Vam

AGFC
Гость
 
Сообщений: n/a

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

2Donate2005:
func int C_CanNewsBeSpread()
{
* * PrintDebugNpc(PD_ZS_Check,"C_CanNewsBeSpread");
};
В данном случае функция вообще-то "пустая", в ней нет ничего полезного, только строка для отладки, поэтому правильно будет сначала поискать, вызывается ли она где-то в скриптах и в каких выражениях (просто вызов C_CanNewsBeSpread() или вызов с присвоением ааа = C_CanNewsBeSpread()), если вызовов с присвоением не находится, то ошибка в декларации функции, должно быть func void C_CanNewsBeSpread() {....}. В данном случае верно второе. Такое толкование справедливо практически для всех ошибок этого типа. Конкретно по этой функции посмотри оригиральные скрипты Готики 1, функция была большая и возвращала значения, но потом большую часть функции заремовили, оставив только одну строчку, а вообще эта функция нигде из скриптов не вызывается, поэтому ее в принципе можно удалить, но здесь надо быть осторожным, некоторые такие функции вызываются только экзешником и удалять их нельзя.
PS: Проверил, эта функция вызывается только екзешником, поэтому ее удалять нельзя и она должна что-то возвращать, вероятно,все-таки правильно return 0;

Реализованна ли возможность в декомпиляторе сравнивать изменённый скрипт с исходниками
Нет, декомпилятор не сравнивает получаемый текст с исходниками, он его воспроизводит только из датника, ну и обрабатывает согласно нескольким внутренним правилам.
Ответить с цитированием