Показать сообщение отдельно
Старый 14.12.2004, 10:40   #153
Vam

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

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

2B Wolf:
Могу посоветовать для этих целей использовать очень мощную прогу Compare It 3.x
Програмка хорошая, но помощи от нее здесь мало. Привожу для примера две 100% идентичные функции
Оригинал:
func int C_GregsPiratesTooFar()
{
* * *//if (Npc_GetDistToWP (self,"ADW_CANYON_TELEPORT_PATH_01A") > 15000) * * *
* * *//&& (Npc_GetDistToWP (self,"ADW_CANYON_PATH_TO_BANDITS_47") > 15000)

* * *if (Npc_GetDistToWP (hero,"ADW_CANYON_MINE1_09") < 3000)
* * *|| (Npc_GetDistToWP (hero,"ADW_CANYON_MINE2_04") < 2000)
* * *|| (Npc_GetDistToWP (hero,"ADW_CANYON_LIBRARY_04") < 2000)
* * *|| (Npc_GetDistToWP (hero,"ADW_CANYON_PATH_TO_BANDITS_25") < 6000)
* * *|| (Npc_GetDistToWP (hero,"ADW_PIRATECAMP_WAY_16") < 8000)
* * *{
* * * * * *return TRUE;
* * *};
* * *
* * *return FALSE;
};

Декомпилированная версия:
func int c_gregspiratestoofar()
{
* * *if((npc_getdisttowp(hero,"ADW_CANYON_MINE1_09") < 3000) || (npc_getdisttowp(hero,"ADW_CANYON_MINE2_04") < 2000) || (npc_getdisttowp(hero,"ADW_CANYON_LIBRARY_04") < 2000) || (npc_getdisttowp(hero,"ADW_CANYON_PATH_TO_BANDITS_ 25") < 6000) || (npc_getdisttowp(hero,"ADW_PIRATECAMP_WAY_16") < 8000))
* * *{
* * * * * *return TRUE;
* * *};
* * *return FALSE;
};

а прога на них выдает кучу отличий.
Декомпилятор условие под if пишет в одну строку, а в исходном тексте это может быть несколько строк да еще и с комментариями между ними.

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