[AGFC: Valley of Gothic] М:Декомпилятор скриптов Готики

Страница 10 из 31 « Первая 345678910 1112131415161720 Последняя »
Поиск в этой теме:

Расширенный поиск
Старый 26.01.2005, 19:24   #361
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

2Vam:
Вопрос по декомпилятору:
Файл AI/AI_Intern/BodyStates.b:

До декомпиляции:

const int BS_STAND *  * * * * * * * = * * *0 * * *<вертикальная черта> * * *BS_FLAG_INTERRUPTABLE * * *<вертикальная черта> * * *BS_FLAG_FREEHANDS;
const int BS_WALK * * * *  * * * * *= * * *1 * * *<вертикальная черта> * * *BS_FLAG_INTERRUPTABLE; * * * * * * * * * * * * * * * * * * * * * * * *
const int BS_SNEAK * * * ** * * * * = * * *2 * * *<вертикальная черта> * * *BS_FLAG_INTERRUPTABLE;
const int BS_RUN * * * * * *  * * * = * * *3; * * * * * * * * * * * * * * * * * * * * * * * * * * *
const int BS_SPRINT * * * * ** * * *= * * *4; * * *


После:

const int BS_FLAG_INTERRUPTABLE = 1 << 15;
const int BS_FLAG_FREEHANDS = 1 << 16;
const int BS_STAND = 98304;
const int BS_WALK = 32769;
const int BS_SNEAK = 32770;
const int BS_RUN = 3;
const int BS_SPRINT = 4;


Так должно быть, или.... ::)
Отправить личное сообщение для Ответить с цитированием
Старый 26.01.2005, 19:42   #362
Vam

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

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

2TycoooN:
Так должно быть, или....
Числовые значения до декомпиляции и после совершенно идентичны. Но есть одна особенность: в дат файле при присвоении константе числового выражения отсутствуют все составляющие из которых она получена, поэтому предугадать какая запись числового выражения была в оригинале невозможно.
Пример:
Оригинал - const int BS_SNEAK = 2 OR BS_FLAG_INTERRUPTABLE;
где const int BS_FLAG_INTERRUPTABLE = 32768; (объявлен ранее)
в итоге получаем BS_SNEAK = 32770; что и видим после декомпиляции.
Возможны и другие записи, во многих местах в скриптах вместо числа 32768 (это 2 в степени 15) присутствует запись 1 << 15, это одно и тоже.
Декомпилятор все числа > 1024 и кратные степени числа 2 записывает в виде 1 << x, где х - степень числа 2. Все довольно просто. *;)

PS: Не первый раз спрашиваю, подскажите, как сделать, чтобы печатались вертикальные палочки (логическое и бинарное ИЛИ).
Ответить с цитированием
Старый 27.01.2005, 07:39   #363
DimaD

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

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

2Vam:
Не первый раз спрашиваю, подскажите, как сделать, чтобы печатались вертикальные палочки
никак, оин автоматом перекодируются в коды символов.
Ответить с цитированием
Старый 27.01.2005, 09:45   #364
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

Можно юзать ¦ ::)
Отправить личное сообщение для Ответить с цитированием
Старый 27.01.2005, 09:58   #365
Vam

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

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

2TycoooN:
Можно юзать ¦
А что это за символ не клаве? Никак не пойму.  :)
Ответить с цитированием
Старый 27.01.2005, 10:13   #366
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

2Vam:
Никакой :)
Так же как и *  
Код:
©  *™ * *† * *® * * ‡  * §
Только копированием ;D
Отправить личное сообщение для Ответить с цитированием
Старый 27.01.2005, 13:38   #367
DimaD

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

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

2Vam:
А что это за символ не клаве?
это вертикальная палка в DOS кодировке :)
Ответить с цитированием
Старый 28.01.2005, 20:00   #368
aleks999

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

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

2Vam:
Не могу декомпилировать Gothic.dat из Г2 от Акеллы. Пишет, что неподдерживаемая версия файла и просит Reparse'ровать. Помоги, пожалуйста!
Ответить с цитированием
Старый 28.01.2005, 23:50   #369
basilio58

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

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

Цитата:
Сообщение от aleks999 link=board=gothic&t=1095241429&start=350#367 date=01/28/05, в 19:00:16
2Vam:
Не могу декомпилировать Gothic.dat из Г2 от Акеллы. Пишет, что неподдерживаемая версия файла и просит Reparse'ровать. Помоги, пожалуйста!
Ты что-то неправильно делаешь.
Только что декомпилировал. С одним OU.csl, без bin
Ответить с цитированием
Старый 29.01.2005, 10:34   #370
Vam

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

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

2aleks999:
Не могу декомпилировать Gothic.dat из Г2 от Акеллы. Пишет, что неподдерживаемая версия файла и просит Reparse'ровать. Помоги, пожалуйста!
А ты указал, что работаешь с Готикой 2?  :)
Ответить с цитированием
Старый 30.01.2005, 10:25   #371
tty

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

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

2TycoooN:
Вообюще-то, эти символы вводиться последовательностью нажатых клавиш. Сначала зажимаешь alt, а потом последовательно нажимаешь(неудерживая) на цифры.
¦- alt+3
§-alt+789
Дальше по аналогии.
Ответить с цитированием
Старый 01.02.2005, 03:26   #372
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam: При декомпиляции компилированного датника возникают ошибки. Любое изменение в датнике приводит к еще большим ошибкам.
Например, функция InitPerceptions(), строка первая (и далее также): Perc_SetRange(PERC_ASSESSDAMAGE, 9999);
После: Perc_SetRange(PERC_ASSESSDAMAGE, her);
В файлах диалогов также her очень полюбилась этой проге. Особенно в функциях сравнения вейпоинтов.
С этим нужно бороться! :)
Из-за этого немного стремновато компилировать исходники. А вдруг? ;)
Ответить с цитированием
Старый 01.02.2005, 09:48   #373
Vam

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

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

2Dagot_Ur:
Например, функция InitPerceptions(), строка первая (и далее также): Perc_SetRange(PERC_ASSESSDAMAGE, 9999);
После: Perc_SetRange(PERC_ASSESSDAMAGE, her);
В файлах диалогов также her очень полюбилась этой проге. Особенно в функциях сравнения вейпоинтов.
С этим нужно бороться!
Проверил с последней версией декомпилятора 1.8, данных ошибок нет, а ты какую версию используешь?
Ответить с цитированием
Старый 02.02.2005, 00:38   #374
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam: Последнюю 1.8. Но как я уже сказал, это больше проявляется при добавлении чего-нибудь нового в скрипты. Ты попробуй что-нибудь добавить или изменить. И при этом - при каждом новом изменении или дополнении появляются новые неточности. :)
Родные исходники я не пробовал обратно компилить, поэтому не могу сказать - есть ошибки или нет. Сейчас поробую. Но на измененных однозначно есть.
Ответить с цитированием
Старый 10.02.2005, 05:43   #375
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam:
Ты можешь сделать, чтобы при декомпи- функции записывались с разделением одна от другой. Например, в диалогах: AI_Output все вместе, но если между ними встречается B_TurnToNpc, то соответственно пустые строки с обоих сторон. То же и с B_LogEntry и остальным. Если идут похожие функции - опять же их слитно.

Пример:

     AI_Output      (self, other, "DIA_Addon_Bartok_MissingPeople_04_03"); //
     AI_Output      (self, other, "DIA_Addon_Bartok_MissingPeople_04_04"); //

     MIS_Bartok_MissingTrokar = LOG_RUNNING;
     
     Info_ClearChoices      (DIA_Addon_Bartok_MissingPeople);
     Info_AddChoice      (DIA_Addon_Bartok_MissingPeople, "Ты?", DIA_Addon_Bartok_MissingPeople_such );
     Info_AddChoice      (DIA_Addon_Bartok_MissingPeople, "А?", DIA_Addon_Bartok_MissingPeople_wo );

     if (MIS_Bosper_Bogen != LOG_SUCCESS)
     {    
           MIS_Bosper_Bogen = LOG_RUNNING;
     };

     Log_CreateTopic (Topic_CityTeacher, LOG_NOTE);
     B_LogEntry (Topic_CityTeacher, "...");

Так гораздо удобнее будет. А то все вместе, разбирать сложнее... :)
Ответить с цитированием
Старый 10.02.2005, 09:31   #376
Vam

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

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

2Dagot_Ur:
Ты можешь сделать, чтобы при декомпи- функции записывались с разделением одна от другой. Например, в диалогах: AI_Output все вместе, но если между ними встречается B_TurnToNpc, то соответственно пустые строки с обоих сторон. То же и с B_LogEntry и остальным. Если идут похожие функции - опять же их слитно.
Попробую, в следующей версии.  :)
Ответить с цитированием
Старый 10.02.2005, 10:08   #377
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

2Dagot_Ur:
В диалогах это подойдет, а что будет с другими файлами? Фактически, там все будет написано через строчку ::)
Отправить личное сообщение для Ответить с цитированием
Старый 10.02.2005, 10:29   #378
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

Ну, например, вот это:

func void B_GivePlayerXP(var int add_xp)
{
     var string concatText;
     if(hero.level == 0)
     {
           hero.exp_next = 500;
     };
     hero.exp = hero.exp + add_xp;
     concatText = PRINT_XPGained;
     concatText = ConcatStrings(concatText,IntToString(add_xp));
     PrintScreen(concatText,-1,YPOS_XPGained,FONT_ScreenSmall,2);
     if(hero.exp >= hero.exp_next)
     {
           hero.level = hero.level + 1;
           hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);
           hero.attribute[1] = hero.attribute[1] + HP_PER_LEVEL;
           hero.attribute[0] = hero.attribute[0] + HP_PER_LEVEL;
           hero.lp = hero.lp + LP_PER_LEVEL;
           PrintScreen(PRINT_LevelUp,-1,YPOS_LevelUp,FONT_Screen,2);
           Snd_Play("LevelUp");
     };
     B_CheckLog();
};

лучше было бы так:

func void B_GivePlayerXP(var int add_xp)
{
     var string concatText;

     if(hero.level == 0)
     {
           hero.exp_next = 500;
     };

     hero.exp = hero.exp + add_xp;

     concatText = PRINT_XPGained;
     concatText = ConcatStrings(concatText,IntToString(add_xp));
     PrintScreen(concatText,-1,YPOS_XPGained,FONT_ScreenSmall,2);

     if(hero.exp >= hero.exp_next)
     {
           hero.level = hero.level + 1;
           hero.exp_next = hero.exp_next + ((hero.level + 1) * 500);
           hero.attribute[1] = hero.attribute[1] + HP_PER_LEVEL;
           hero.attribute[0] = hero.attribute[0] + HP_PER_LEVEL;
           hero.lp = hero.lp + LP_PER_LEVEL;

           PrintScreen(PRINT_LevelUp,-1,YPOS_LevelUp,FONT_Screen,2);
           Snd_Play("LevelUp");
     };

     B_CheckLog();
};
Ответить с цитированием
Старый 10.02.2005, 10:41   #379
DimaD

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

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

2Dagot_Ur: и по какому признаку ты предлагаешь разбивать код?
ИМХО все это очень персоонально. мне вот например вообще не нравится такой стиль форматирования :)
Ответить с цитированием
Старый 10.02.2005, 11:11   #380
Vam

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

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

2Dagot_Ur:
func void B_GivePlayerXP(var int add_xp)
Или необходимо выработать конкретные правила, или оставляем как есть. Твой второй пример автоматом не реализуем, есть противоречивые моменты.  ::)
В принципе, где нужно, можно и ручками поправить и вставить нужные комментарии.  ;)
Ответить с цитированием
Старый 10.02.2005, 18:05   #381
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam:
Ну тогда хотя бы:
* * * * * * * * * * * * * * * * * * * * * *//{
if*(...)
{
* * *if*(...)
* * *{
* * * * * *a1*+*a2*=*a3;
* * *};
* * **
* * *return;
};
*
Npc_ChangeAttribute*(self,*ATR_STRENGTH,*100); * * * * * * * //};

Места помеченные звездочкой - это пробелы, либо пустые строки.

А также:

if*(a1*>=*a2)
&&*(a2*>=*a3)
&&*((a3*<=*a1)
||*(a1*==*a2))
{
* * *//
};
Ответить с цитированием
Старый 10.02.2005, 18:20   #382
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

2Dagot_Ur:
А я вот, к примеру, не люблю пробелы в подобных местах - Npc_ChangeAttribute*(self,*ATR_STRENGTH,*100)

a1*+*a2*=*a3;
(a1*>=*a2)
А разве сейчас не так? ::)
Отправить личное сообщение для Ответить с цитированием
Старый 10.02.2005, 18:24   #383
Vam

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

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

2Dagot_Ur:
Пробелами отделить выражения от операций просто, имя функции от аргументов, и аргументы друг от друга, оператор if от выражения - тоже просто, вставить пустые строки после закрытия блока - элементарно.
Но, разбить выражение под if на несколько строк очень сложно, оно строится рекурсивно, а потом записывается в файл. Возможное решение: запись построенного выражения в буфер, анализ на подвыражения с учетом скобок и т.д. - так ли уж это надо?  :(
Ответить с цитированием
Старый 10.02.2005, 18:29   #384
--fitil--

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

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

Господа, помогите исправить ошибку!!!

[F] 00:18 Fatal:-1 U:   PAR: STORY\DIALOGE\DIA_SLD_810_DAR.D: Unknown identifier : TRUESELF.AIVAR ( line 245 ) .... <zParser.cpp,#599>


Вот...

func int DIA_Dar_Kameradenschwein_Condition()
{
     if(Dar_LostAgainstCipher == TRUE)
     {
           TRUEself.aivar[AIV_LastFightComment] == FALSE;
     };
};
Ответить с цитированием
Старый 10.02.2005, 18:35   #385
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam: Если это обладает повышенной сложность, то обойдемся и без этого. :)
Но вот пробелы - это весч нужная!

Вот кое-что интересное на декомпи- :

if((a1 > a2) && (a3 > a4) && ((((a5 > a6)))))
* * * * * * * * * * * * * * * * *         ???


2TycoooN:
А разве сейчас не так?
Ну это я так, для более лучшей понятливости написал (чтобы все обобщить). :)
Ответить с цитированием
Старый 10.02.2005, 18:40   #386
Vam

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

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

2Dagot_Ur:
if((a1 > a2) && (a3 > a4) && ((((a5 > a6)))))
Такого быть не должно, скобки расставляются чисто логически, можешь привести нормальную строку из скриптов?
Ответить с цитированием
Старый 16.02.2005, 20:00   #387
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam:
Такого быть не должно, скобки расставляются чисто логически, можешь привести нормальную строку из скриптов?
Сейчас, к сожалению, посмотреть не могу... Есть точно в файле диалога Мики (ополчение). Строка 200 с чем-то (в условии). Посмотри. :)
Ответить с цитированием
Старый 16.02.2005, 20:21   #388
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

Точно, здесь явно намудрено:

if(!Npc_IsDead(Alvares) && !Npc_IsDead(Engardo) && ((((Akils_SLDStillthere == TRUE) ¦¦ Npc_KnowsInfo(other,DIA_Sarah_Bauern)))))
Отправить личное сообщение для Ответить с цитированием
Старый 17.02.2005, 16:33   #389
Vam

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

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

* * [glow=red,2,300]Декомпилятор V1.9 выложен на DiccuricAG.[/glow]
* * *- исправлена ошибка с множественными скобками под оператором if
* * *- для любителей пробелов добавлен новый параметр -zopt:x где х=1 - вставка пробелов, если параметр не введен или х=0 - пробелы не вставляются.
Ответить с цитированием
Старый 17.02.2005, 17:10   #390
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam: Отлично!
Ответить с цитированием
Старый 18.02.2005, 01:44   #391
basilio58

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

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

Кстати, никто не пробовал декомпилировать мод Gestrandet?
Версия декомпилятора 1.8 вообще не увидела ничего, и zspy не выдал сообщений кроме начало и конец.
Версия 1.9 декомпилировала нормально.
Ответить с цитированием
Старый 18.02.2005, 12:48   #392
Vam

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

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

2basilio58:
Кстати, никто не пробовал декомпилировать мод Gestrandet?
Версия декомпилятора 1.8 вообще не увидела ничего, и zspy не выдал сообщений кроме начало и конец.
Версия 1.9 декомпилировала нормально.
Странно, версия 1.9 от 1.8 мало чем отличаются, по идее 1.8 тоже должна была декомпиляцию выполнить, может она у тебя попорчена?  ::)
Ответить с цитированием
Старый 18.02.2005, 13:32   #393
PA
Строители Миртаны
*
 
Регистрация: 29.08.2004
Сообщений: 1
PA вне форума

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

2Vam:
Странно, версия 1.9 от 1.8 мало чем отличаются, по идее 1.8 тоже должна была декомпиляцию выполнить
У меня версия 1.8 мод Gestrandet нормально декомпилировала - тогда  версия 1.9 еще не вышла.

Ответить с цитированием
Старый 18.02.2005, 15:49   #394
B_Wolf

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

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

2Pa:
У меня версия 1.8 мод Gestrandet нормально декомпилировала - тогда  версия 1.9 еще не вышла.
Аналогично. Все нормально декомпилировалось версией 1.8.
Ответить с цитированием
Старый 18.02.2005, 17:35   #395
TycoooN
Строители Миртаны
  Аватар для TycoooN
 
 
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
TycoooN вне форума

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

У меня тоже в 1.8 все Ok :)

2B Wolf: 2basilio58:
Немного не по теме:
Господа, переводить мод Gestrandet будем? Предлагаю скооперироваться, чтобы не заниматься одним и тем же ;D :D ;D
Отправить личное сообщение для Ответить с цитированием
Старый 18.02.2005, 18:06   #396
PA
Строители Миртаны
*
 
Регистрация: 29.08.2004
Сообщений: 1
PA вне форума

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

2TycoooN:
Господа, переводить мод Gestrandet будем? Предлагаю скооперироваться, чтобы не заниматься одним и тем же
В репе я попросил basilio58 сделать перевод.

Сам я сейчас играю на немецком - текстовки в принципе не много.
МОД просто прелесть!!!
Если скооперируетесь и переведете быстро - то думаю Все только огромное Спасибо скажут.

Ответить с цитированием
Старый 18.02.2005, 22:46   #397
basilio58

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

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


В репе я попросил basilio58 сделать перевод.

Что-то я не получал никакой просьбы... ;)
Хотя можно конечно, но мод то уж больно маленький.

Кстати, насчёт декомпилятора: я видимо ввёл всех в заблуждение. Сегодня всё нормально декомпилировалось 1.8.
Хм...тёмные силы электричества.... ;D ::)
Ответить с цитированием
Старый 20.02.2005, 03:42   #398
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam: Кстати, как ты считаешь - ранее декомпилированные скрипты "со скобками" совместимы с компиляцией на 1.9?
Ответить с цитированием
Старый 20.02.2005, 11:22   #399
Vam

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

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

2Dagot_Ur:
Кстати, как ты считаешь - ранее декомпилированные скрипты "со скобками" совместимы с компиляцией на 1.9?
Если компилятор не выдает ошибок - то все совместимо (в смысле грамматики), но есть еще и логика, которую компилятор проверить не может, а вот здесь не все так просто.
Попробую объяснить на примере, первоначально предполагалось сделать так:
if((!выражение) && (!варажение) && (!выражение) && выражение), а до версии 1.9 получалось вот так -
if(!выражение && !варажение && !выражение && (((выражение)))), то есть скобки с отрицания выражения уходили на последнее выражение, если оно было.
В принципе, здесь логической ошибки нет, смысл выражения остается прежним.
Но в некоторых местах встречаются сложные выражения, например, в файле ZS_Attack.h
вместо правильного выражения -

if(Npc_GetDistToNpc(self,other) < self.aivar[AIV_Dist]) ¦¦ ((!C_BodyStateContains(other,BS_RUN)) && (!C_BodyStateContains(other,BS_JUMP)))

получалось выражение -

if((Npc_GetDistToNpc(self,other) < self.aivar[AIV_Dist]) ¦¦ !(C_BodyStateContains(other,BS_RUN) && !C_BodyStateContains(other,BS_JUMP)))

в котором присутствует логическая ошибка (вместо отрицания только второго выражения имеем суммарное отрицание второго и третьего выражения). Увы, последствия таких ошибок иногда непредсказуемы.
Ответить с цитированием
Старый 21.02.2005, 04:49   #400
Dagot_Ur
Строители Миртаны
Строители Миртаны
 
Регистрация: 25.05.2004
Сообщений: 3
Dagot_Ur вне форума

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

2Vam:
Увы, последствия таких ошибок иногда непредсказуемы.
А ты больше нигде ничего подобного не замечал?
Ответить с цитированием
Страница 10 из 31 « Первая 345678910 1112131415161720 Последняя »


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе

Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Текущее время: 20:07. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2020

Яндекс.Метрика