Показать сообщение отдельно
Старый 07.03.2005, 21:45   #410
Vam

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

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

2Donate2005:
Ну, сказать, что я так быстро нашел ошибку, это неправильно, я нашел первое встретившееся несоответствие декомпилированных скриптов оригинальным. Сначала необходимо исправить, скомпилировать, затем проверить, действительно ли это та (наша) ошибка. При более детальном рассмотрении я, например, не нашел откуда вызывается данная функция (экзешником она тоже не вызывается), а это мне пока не ясно. А несоответствие нашел очень просто; при декомпиляции установил -zlog:9,s и первый "Потенциальный INT" проверил на соответствие оригинальным скриптам Готики 1, вот и все.
Комментировать приведенную строку не имеет смысла, комментировать нужно всю функцию:


// Данная функция проверяет, находится ли НПС self в своем помещении - возвращает TRUE, иначе возвращает FALSE.
func int C_PCIsInMyRoom()
{
* * *var C_Npc owner;
* * *var int portalowner;
* * *PrintDebugNpc(PD_ZS_FRAME,"C_PCIsInMyRoom");
* * * *// получить ссылку на НПС, которому принадлежит помещение
* * *owner = Wld_GetPlayerPortalOwner();
* * * *// получить номер гильдии, которой принадлежит помещение
* * *portalowner = Wld_GetPlayerPortalGuild();
* * * *// если помещение мое (т.е. принадлежит НПС self) или отношения между гильдиями НПС (self) и того НПС, которому принадлежит помещение дружественные
* * *if((self == owner) ¦¦ (Wld_GetGuildAttitude(self.guild,portalowner) == ATT_FRIENDLY))
* * *{
* * * * * *return 1;
* * *}
* * *else
* * *{
* * * * * *return 0;
* * *};
};

Ответить с цитированием