AGFC
Страница 2 из 31 12 345678912 Последняя »

AGFC (http://agfc.ru/index.php)
-   AGFC: Valley of Gothic (http://agfc.ru/forumdisplay.php?f=46)
-   -   М:Декомпилятор скриптов Готики (http://agfc.ru/showthread.php?t=1095241429)

PA 14.10.2004 12:07

Re: Декомпилятор скриптов Готики
 
2Vam:<br><br>Извини, но запамятовал и не сообщил сразу, что можно покопаться и в исходниках.<br><br>Залезь сюда, на этой системе делались все Готики и МОД-ы.<br>Сорри, знал давно, но как-то в ум не пришло, посоветовать сюда заглянуть.<br><br>http://nsis.sourceforge.net/<br>

14.10.2004 13:21

Re: Декомпилятор скриптов Готики
 
2Pa:<br>
Цитата:

на этой системе делались все Готики и МОД-ы
<br>NSIS can create Windows installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because NSIS is based on script files, you can create both simple or advanced installers.<br>Вот дословно что это такое, да, на нем делались все инсталляторы Готик и модов, но не сама программа.<br>Спасибо за попытку помощи. &nbsp;;)

14.10.2004 15:02

Re: Декомпилятор скриптов Готики
 
2Mitrich:<br>
Цитата:

Ты уверен, что надо знать все функции?
<br>Если мы хотим использовать возможности скриптов полностью, то знать надо все функции. &nbsp;:D

14.10.2004 15:26

Re: Декомпилятор скриптов Готики
 
2Vam:
Цитата:

Если мы хотим использовать возможности скриптов полностью, то знать надо все функции.
Логично, но чтобы использовать все возможности скриптов при работе с ними вручную, тоже надо знать все функции. :) Таким образом можно говорить о некотором базовом уровне, основных функциях и версиях утилиты по работе с ними.

14.10.2004 15:58

Re: Декомпилятор скриптов Готики
 
Если я правильно понимаю, основная проблема при скриптовании в соблюдении правильной структуры скрипта при задании некоторых условий и связей. И именно эту проблему утилита и должна помочь решить, а функции, не вошедшие в условную библиотеку, можно позволить забивать вручную тем одаренным созданиям, которые знают их название. :)

14.10.2004 16:15

Re: Декомпилятор скриптов Готики
 
2Mitrich:<br>В скриптах Готики вообще как-бы отсутствует структура, есть базовые (библиотечные) функции (про них я и говорил), а есть функции, созданные теми, кто пишет скрипт. Выполняются же функции совсем не в том порядке, в каком они представлены в скриптах. Базовые функции с их параметрами надо знать, на их основе создается все остальное.<br>Есть предложение в отдельной теме, например: [glow=red,2,300]Уроки скриптологии[/glow] или что-то в этом роде, рассматривать и обсуждать базовые функции. Это можно сделать таким образом, я выкладываю тройку функций с параметрами, и каждый, кто в этом что-нибудь понимает, пытается описать действие функции и все ее параметры, на основе этого я делаю описание функции и переходим к следующей тройке. Это, конечно, займет много времени, а какой есть другой выход? Дело-то нужное. Ну, как? *;) :D

Killer-XXX 14.10.2004 22:07

Re: Декомпилятор скриптов Готики
 
2Vam:<br>
Цитата:

Есть предложение в отдельной теме, например: <br>Уроки скриптологии
<br>Превосходно, очень и очень разумная мысля... Для немцев все расписано, а нам что по немецким руководствам учится?? А то опишем, и получится русская полноценная дока, после прочтенья несколько раз которой чел, хоть что то, да сможет уже реализовать. Предлагаю ведущим рубрики сделать или Ра или Dagot_Ur`а :))<br><br>2Mitrich:<br>Вот ссылка на прогу писанную на яве, это состовлять диалоги, хелп непомню где, попробуй глянь www.fizzban.net, если не найдешь то &nbsp;внимательно ищи топ на WorldofGothic форуме, это я там надыбал ее, сам так и не разобрался с ней, глючила, если кто то разберется, прошу запостить :)

14.10.2004 22:31

Re: Декомпилятор скриптов Готики
 
2Killer-XXX:<br>
Цитата:

Предлагаю ведущим рубрики сделать или Ра или Dagot_Ur`а
<br>Я согласен, а что скажут они? &nbsp;::) Количество базовых функций - 290. Это большая работа. &nbsp;;) :)

15.10.2004 11:28

Re: Декомпилятор скриптов Готики
 
2Vam: <br>
Цитата:

В скриптах Готики вообще как-бы отсутствует структура, есть базовые (библиотечные) функции (про них я и говорил), а есть функции, созданные теми, кто пишет скрипт.
<br>Мне вчера как раз в тему показывали структуру базовой функции &quot;сядь в стул!&quot;. Алгоритм примерно выглядит как &quot;найди стул (обращение к вшитой функции поиска)/подойди/посади свою задницу на него/проиграй рандомную анимацию из сета 1-10/вынь попу из стула&quot;. Условному модмейкеру не обязательно эту структуру знать, он просто обращается к Sit_Chair и нужный НПС садиться. Я привел эту последовательность для примера - если бы, допустим!, такой базовой функции не существовало, а ее только предстояло создать из базовых (в данном случае - ф-ция поиска, запуска анимации посадки и высадки, запуска сидячей анимации) чем может быть полезна гипотетическая утилита скриптования для создания новой функции - &quot;сядь в стул!&quot;? Я просто пытаюсь понять предполагаемую задачу.<br> <br>
Цитата:

Есть предложение в отдельной теме, например: <br>Уроки скриптологии<br>Превосходно, очень и очень разумная мысля...
<br>Решение скорее неизбежное. :) Только у меня есть предложение постить не по три функции, а сразу дать публичный запрос на известные к-л функции, внести их в список и выложить его для пополнения. А по три функции проще выделять для рассмотрения (изучения), и вот это действительно долго.<br>Не думаю, что Dagot_Ur нужно ведущим &quot;назначать&quot;. Во-первых, при услови, что сочтет это нужным, он и так внесет свою лепту, а во-вторых, он сейчас занимается не менее важным делом и ограничен во времени. Думаю, главное задаться целью и начать, а тема сама себя поведет.

15.10.2004 12:19

Re: Декомпилятор скриптов Готики
 
2Mitrich:<br>
Цитата:

Только у меня есть предложение постить не по три функции, а сразу дать публичный запрос на известные к-л функции
<br>Полный список всех базовых функций у меня есть, но если его выложить целиком, то начнется &quot;каша&quot;, на какие-то функции будут ответы, а остальные будут забыты, потом опять по новой? А три, это я написал условно, конечно лучше обсуждать функции, сгруппированные по темам (вывод на экран текста, работа с магией и т.д.) &nbsp;;)<br><br>
Цитата:

Не думаю, что Dagot_Ur нужно ведущим &quot;назначать&quot;.
<br>Насчет Dagot_Urа согласен, но хотелось бы услышать ответ от Ра, ведь его тоже предложили. &nbsp;:)

15.10.2004 13:09

Re: Декомпилятор скриптов Готики
 
Цитата:

хотелось бы услышать ответ от Ра, ведь его тоже предложили
<br>Согласен.<br><br>А по первому вопросу что думаешь?

15.10.2004 14:46

Re: Декомпилятор скриптов Готики
 
2Mitrich:<br>
Цитата:

Мне вчера как раз в тему показывали структуру базовой функции &quot;сядь в стул!&quot; и т.д.
<br>Как раз &quot;сядь в стул!&quot; и не является базовой функцией, базовые - это те, из которых она состоит, а эта - производная. &nbsp;;) В остальном все правильно. Да, модмейкеру, может быть, и необязательно знать структуру производной функции, но тот, кто будет создавать утилиту скриптования, это должен знать обязательно (как и весь набор базовых функций). &nbsp;:D

15.10.2004 16:36

Re: Декомпилятор скриптов Готики
 
2Vam:
Цитата:

Как раз &quot;сядь в стул!&quot; и не является базовой функцией, базовые - это те, из которых она состоит, а эта - производная.
Вот ведь! &nbsp;:D

18.10.2004 15:24

Re: Декомпилятор скриптов Готики
 
2Mitrich:<br>Что-то не наблюдается энтузиазма в деле изучения скриптов? Может это никому и не надо. &nbsp;:(<br>

PA 18.10.2004 15:59

Re: Декомпилятор скриптов Готики
 
2Vam:<br>
Цитата:

Что-то не наблюдается энтузиазма в деле изучения скриптов? Может это никому и не надо. &nbsp;
<br><br>Очень даже надо!<br>Тем более сейчас появился новый немецкий вариант скриптов АДДОН-а - Gothic.dat версии .2 на вордофготик.<br>Стал изучат дедовским способом, и через раз вспминал &quot;как бы прекрасно было бы, если бы был декомпилятор!&quot;<br><br>2Killer-XXX:<br>
Цитата:

Предлагаю ведущим рубрики сделать или Ра или Dagot_Ur`а )
<br><br>Сорри. Спасибо за доверие, но честно некогда - запарка.<br>А почему бы Killer-XXX самому не взяться -очень достойный комрад.<br>

18.10.2004 16:02

Re: Декомпилятор скриптов Готики
 
2Vam:
Цитата:

Что-то не наблюдается энтузиазма в деле изучения скриптов? Может это никому и н
<br>А нам нужен энтузиазм? Думаю, сами скрипты лучше энтузиазма. ;)

TycoooN 18.10.2004 16:07

Re: Декомпилятор скриптов Готики
 
2Pa: <br>
Цитата:

Очень даже надо!<br>Тем более сейчас появился новый немецкий вариант скриптов АДДОН-а - Gothic.dat версии .2
<br>А чем этот gothic.dat отличается от старого?<br><br>2Vam: <br>
Цитата:

Что-то не наблюдается энтузиазма в деле изучения скриптов? Может это никому и не надо.
<br>Ну, допустим, я энтузиаст ;D. А что делать-то?

18.10.2004 16:25

Re: Декомпилятор скриптов Готики
 
2TycoooN:<br>
Цитата:

Ну, допустим, я энтузиаст . А что делать-то?
<br>Посмотри с поста #45 и ниже, нужен ведущий новой рубрики, затем необходимо задокументировать описание и параметры базовых функций и т.д. &nbsp;:D<br>Я мог бы и сам за это взяться, но сейчас в полным ходом идет работа над компилятором, а затем и декомпилятор. &nbsp;;)<br><br>2Mitrich:<br>
Цитата:

А нам нужен энтузиазм? Думаю, сами скрипты лучше энтузиазма.
<br>Они, конечно, лучше, но подход к ним должен быть серьезным! &nbsp;::)<br>

Killer-XXX 18.10.2004 20:56

Re: Декомпилятор скриптов Готики
 
2Pa:<br>Благодарю за честь, но я в этом чайник :)<br>Так что, предлагаю... мммм.... Ну кто? Люди, ну нужен ведущий рубрики... Vam, может после написания компилятора, берешься? Будем дружно помогать...

PA 19.10.2004 14:17

Re: Декомпилятор скриптов Готики
 
2TycoooN:<br>
Цитата:

А чем этот gothic.dat отличается от старого?
<br><br>Отличается предостаточно.<br>Где,кое что убрали.<br>Где,кое что добавили.<br><br>Текстовка один в один.<br>Но добавлены вызванные животные или превращения ГГ, не в смысле добавлены, а дополнительно прописаны и изменены статсы.<br>И т.д.<br><br>

19.10.2004 22:46

Re: Декомпилятор скриптов Готики
 
Достигнут определенный успех в деле компиляции. Сегодня, моей программой были откомпилированы все файлы скриптов Диккурика. Осталось разобрать и написать функцию записи результата компиляции в dat файл (попросту говоря - линковщик). &nbsp;:D

Killer-XXX 20.10.2004 00:05

Re: Декомпилятор скриптов Готики
 
2Vam: <br>Ну так это сам компилятор, но еще же надо будет написать обратную функцию?

20.10.2004 08:21

Re: Декомпилятор скриптов Готики
 
2Killer-XXX:<br>
Цитата:

но еще же надо будет написать обратную функцию?
<br>Конечно надо, только не функцию, а целую программу, а чтобы это сделать необходимо знать формат dat файлов.

26.10.2004 13:27

Re: Декомпилятор скриптов Готики
 
Формат dat файлов полностью изучен. Осталось определить перечень ограничений, с которыми можно сгенерить скрипты из dat файла, и переходить к написанию декомпилятора. &nbsp;:D

31.10.2004 10:43

Re: Декомпилятор скриптов Готики
 
Определено несколько ограничений, возможно, это не все.<br><br>1. Имена файлов скриптов, а так же и директории, где они лежат, в dat файлах отсутствуют, поэтому файлы будут нумероваться 0.d, 1.d и т.д. и располагаться в одной директории (номера файлов соответствуют порядку компиляции).<br>2. В именах переменных отсутствует деление на нижний и верхний регистры символов (например имя AI_Output после компиляции будет AI_OUTPUT), поэтому при декомпиляции имена переменных можно представить только в нижнем или верхнем регистрах. Это не относится к инициализации текстовых строк, там все ОК!<br>3. В dat файле после компиляции отсутствуют имена размерностей и индексов массивов, есть только числовые значения. Поэтому при декомпиляции можно сделать так:<br>было - <br>const int max_menu_item = 5;<br>const int monster = 2;<br>...<br>menu[max_menu_item]; menu[monster] = aaa;<br><br>станет - <br>const int max_menu_item = 5;<br>const int monster = 2;<br>...<br>menu[5]; menu[2] = aaa;<br><br>Все эти ограничения на круговые процессы компиляция &lt;-&gt; декомпиляция влияния оказывать не будут, результат будет всегда один.<br><br>Хочу привести первый результат работы декомпилятора при обработке файла music.dat, можно сравнить эти файлы с оригиналами и высказать замечания.<br><br>Первый файл 0.d<br><br>const string MOTIF_DEATH = &quot;J_DEATH&quot;;<br>const string MOTIF_RESURRECTION = &quot;J_RESURRECT&quot;;<br>const string MOTIF_FOUNDITEM = &quot;J_FOUNDITEM&quot;;<br>const string MOTIF_SOLVEDMISSION = &quot;J_MISSOLVED&quot;;<br>const string MOTIF_FAILEDMISSION = &quot;J_MISFAILED&quot;;<br>const string MOTIF_KILLEDENEMY = &quot;J_KILLEDENEMY&quot;;<br>const string MOTIF_KILLEDBIGENEMY = &quot;J_KILLEDBIGENEMY&quot;;<br>const string MOTIF_LEVEL_GAIN = &quot;J_LEVELGAIN&quot;;<br>const string MOTIF_ATTITUDE_INCREASE = &quot;J_INC_AT&quot;;<br>const string MOTIF_ATTITUDE_DECREASE = &quot;J_DEC_AT&quot;;<br>const string MOTIF_TRAP_ACTIVATE = &quot;J_TRAP_ACTIVATE&quot;;<br>const string MOTIF_STEAL_FAIL = &quot;J_STEAL_FAIL&quot;;<br>const string MOTIF_REFRESH_MANA = &quot;J_MANA_REFRESH&quot;;<br>const string MOTIF_REFRESH_HEALTH = &quot;J_HEALTH_REFRESH&quot;;<br>const string MOTIF_REFRESH_PSI = &quot;J_PSI_REFRESH&quot;;<br>const string MOTIF_HEALTHLOW = &quot;J_HEALTH_LOW&quot;;<br><br>const int TRANSITION_TYPE_NONE = 1;<br>const int TRANSITION_TYPE_GROOVE = 2;<br>const int TRANSITION_TYPE_FILL = 3;<br>const int TRANSITION_TYPE_BREAK = 4;<br>const int TRANSITION_TYPE_INTRO = 5;<br>const int TRANSITION_TYPE_END = 6;<br>const int TRANSITION_TYPE_ENDANDINTRO = 7;<br>const int TRANSITION_SUB_TYPE_IMMEDIATE = 1;<br>const int TRANSITION_SUB_TYPE_BEAT = 2;<br>const int TRANSITION_SUB_TYPE_MEASURE = 3;<br><br>class C_MUSICSYS_CFG<br>{<br> * * *var float volume;<br> * * *var int bitresolution;<br> * * *var int globalreverbenabled;<br> * * *var int samplerate;<br> * * *var int numchannels;<br> * * *var int reverbbuffersize;<br>};<br><br>class C_MUSICTHEME<br>{<br> * * *var string file;<br> * * *var float vol;<br> * * *var int loop;<br> * * *var float reverbmix;<br> * * *var float reverbtime;<br> * * *var int transtype;<br> * * *var int transsubtype;<br>};<br><br>class C_MUSICJINGLE<br>{<br> * * *var string name;<br> * * *var int loop;<br> * * *var float vol;<br> * * *var int transsubtype;<br>};<br><br>prototype C_MUSICTHEME_DEF(C_MUSICTHEME)<br>{<br> * * *vol = 1;<br> * * *loop = 1;<br> * * *transtype = TRANSITION_TYPE_NONE;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br> * * *reverbmix = -10;<br> * * *reverbtime = 8500;<br>};<br><br>prototype C_MUSICJINGLE_DEF(C_MUSICJINGLE)<br>{<br> * * *name = &quot;&quot;;<br> * * *vol = 1;<br> * * *loop = 0;<br> * * *transsubtype = TRANSITION_SUB_TYPE_BEAT;<br>};<br><br>Второй файл 1.d<br><br>instance MUSICSYSCONFIG(C_MUSICSYS_CFG)<br>{<br> * * *volume = 1;<br> * * *bitresolution = 16;<br> * * *globalreverbenabled = 1;<br> * * *samplerate = 44100;<br> * * *numchannels = 16;<br> * * *reverbbuffersize = 262144;<br>};<br><br>instance JINGLEFOUNDITEM(C_MUSICJINGLE_DEF)<br>{<br> * * *name = &quot;E-Positive 2&quot;;<br> * * *transsubtype = TRANSITION_SUB_TYPE_BEAT;<br>};<br><br>instance JINGLELEVELGAIN(C_MUSICJINGLE_DEF)<br>{<br> * * *name = &quot;E-Positive 1&quot;;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance JINGLEKILLEDFOE(C_MUSICJINGLE_DEF)<br>{<br> * * *name = &quot;E-Positive 2&quot;;<br> * * *transsubtype = TRANSITION_SUB_TYPE_BEAT;<br>};<br><br>instance JINGLELEARNTALENT(C_MUSICJINGLE_DEF)<br>{<br> * * *name = &quot;E-Positive 1&quot;;<br> * * *transsubtype = TRANSITION_SUB_TYPE_BEAT;<br>};<br><br>instance SYS_MENU(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;menu.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_NONE;<br> * * *transsubtype = TRANSITION_SUB_TYPE_BEAT;<br> * * *reverbmix = -10;<br> * * *reverbtime = 8500;<br>};<br><br>instance SYS_LOADING(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;menu.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_NONE;<br> * * *transsubtype = TRANSITION_SUB_TYPE_BEAT;<br> * * *reverbmix = -12;<br> * * *reverbtime = 8500;<br>};<br><br>instance DEF_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce DEF_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_thr.sgt&quot;;<br>};<br><br>insta nce DEF_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_fgt.sgt&quot;;<br>};<br><br>insta nce DEF_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce DEF_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce DEF_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_fgt.sgt&quot;;<br>};<br><br>insta nce OC_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OC_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OC_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OC_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce OC_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_thr.sgt&quot;;<br>};<br><br>insta nce OC_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance ARE_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;foc_day_std.sgt&quot;;<br>};<br><br>insta nce ARE_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;foc_day_std.sgt&quot;;<br>};<br><br>insta nce ARE_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance IE_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_std.sgt&quot;;<br>};<br><br>instan ce IE_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce IE_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_std.sgt&quot;;<br>};<br><br>instan ce IE_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br>};<br><br>instan ce NCO_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance NCO_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_thr.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance NCO_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance NCO_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce NCO_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce NCO_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce NCI_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;nci_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance NCI_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;nci_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance NCI_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;nci_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance NCI_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;nci_day_std.sgt&quot;;<br>};<br><br>insta nce NCI_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;nci_day_std.sgt&quot;;<br>};<br><br>insta nce NCI_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;nci_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance PSI_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;psi_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance PSI_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;psi_day_thr.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance PSI_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;psi_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance PSI_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;psi_ngt_std.sgt&quot;;<br>};<br><br>insta nce PSI_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;psi_ngt_std.sgt&quot;;<br>};<br><br>insta nce PSI_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;psi_day_fgt.sgt&quot;;<br>};<br><br>insta nce OW_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce OW_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce OW_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce OW_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce OW_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce OW_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce STA_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce BEA_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce BEA_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce BAN_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce CAM_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_std.sgt&quot;;<br>};<br><br>insta nce CAS_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_thr.sgt&quot;;<br>};<br><br>insta nce CAS_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce DT_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_thr.sgt&quot;;<br>};<br><br>insta nce DT_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce FC_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce FC_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce FOC_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;FOC_day_std.sgt&quot;;<br>};<br><br>insta nce FOC_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;FOC_day_std.sgt&quot;;<br>};<br><br>insta nce FOC_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;FOC_day_std.sgt&quot;;<br>};<br><br>insta nce FOC_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;FOC_day_std.sgt&quot;;<br>};<br><br>insta nce OGR_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;foc_day_std.sgt&quot;;<br>};<br><br>insta nce OGR_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;foc_day_std.sgt&quot;;<br>};<br><br>insta nce OL1_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce OL1_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce OME_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_day_thr.sgt&quot;;<br>};<br><br>insta nce OME_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce ORC_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;orc_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance ORC_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;orc_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance ORC_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance ORC_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;orc_day_std.sgt&quot;;<br>};<br><br>insta nce ORC_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;orc_day_std.sgt&quot;;<br>};<br><br>insta nce ORC_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br>};<br><br>instan ce OR_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce OR_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce OR_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;oc_day_fgt.sgt&quot;;<br>};<br><br>instan ce OR_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce OR_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce OR_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce PDN_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce PDN_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce PIR_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ban_day_std.sgt&quot;;<br>};<br><br>insta nce STO_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;foc_day_std.sgt&quot;;<br>};<br><br>insta nce STO_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;foc_day_std.sgt&quot;;<br>};<br><br>insta nce TA_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce TA_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce TD_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce TD_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce TRU_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ow_day_std.sgt&quot;;<br>};<br><br>instan ce TRU_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;cam_ngt_std.sgt&quot;;<br>};<br><br>insta nce TPL_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce TPL_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce TPL_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_fgt.sgt&quot;;<br>};<br><br>insta nce TPL_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce KAT_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce KAT_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce KAT_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_fgt.sgt&quot;;<br>};<br><br>insta nce KAT_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce SPL_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce SPL_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce SPL_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_fgt.sgt&quot;;<br>};<br><br>insta nce SPL_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce FRM_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance FRM_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_thr.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance FRM_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance FRM_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OLM_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OLM_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_std.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OLM_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_thr.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_BREAK;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OLM_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;olm_day_fgt.sgt&quot;;<br> * * *transtype = TRANSITION_TYPE_FILL;<br> * * *transsubtype = TRANSITION_SUB_TYPE_MEASURE;<br>};<br><br>instance OGY_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce OGY_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce OGY_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_fgt.sgt&quot;;<br>};<br><br>insta nce OGY_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;ogy_day_std.sgt&quot;;<br>};<br><br>insta nce DIC_DAY_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;dic_day_std.sgt&quot;;<br>};<br><br>insta nce DIC_DAY_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;dic_day_std.sgt&quot;;<br>};<br><br>insta nce DIC_DAY_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;dic_day_std.sgt&quot;;<br>};<br><br>insta nce DIC_NGT_STD(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;dic_day_std.sgt&quot;;<br>};<br><br>insta nce DIC_NGT_THR(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;dic_day_std.sgt&quot;;<br>};<br><br>insta nce DIC_NGT_FGT(C_MUSICTHEME_DEF)<br>{<br> * * *file = &quot;dic_day_std.sgt&quot;;<br>};<br><br>Приму все дальнейшие пожелания. *;)<br>

03.11.2004 16:59

Re: Декомпилятор скриптов Готики
 
2TycoooN:<br>Ответ по декомпилятору:<br>Все основные выражения языка декомпилировать уже могу. Идет отладка некоторых моментов (вложенность блоков if - else, использование функций в качестве аргументов других функций и т.д), все это реализуемо.<br><br>Выявил еще одно ограничение (хотя ограничением его назвать сложно, кто знает отличие С от С++ в области локальных переменных - тот поймет): Локальные переменные внутри функции будут объявляться сразу при входе в функцию, а не по мере их использования (как сделано в скриптах).<br><br>Я думаю, что недели через две будет готов &quot;черновой&quot; рабочий вариант декомпилятора. Затем необходимо будет сделать графическую оболочку и отдать на тестирование. *:D

04.11.2004 04:21

Re: Декомпилятор скриптов Готики
 
2Vam:
Цитата:

Я думаю, что недели через две будет готов &quot;черновой&quot; рабочий вариант декомпилятора. Затем необходимо будет сделать графическую оболочку и отдать на тестирование. &nbsp;
<br>Отлично! Я долго наблюдал за вашей тяжелейшей работой, и наконец декомпилятор уже почти готов. Будем ждать с нетерпением! Желаю успешного завершения...

TycoooN 04.11.2004 12:25

Re: Декомпилятор скриптов Готики
 
2Vam: <br>А сколько он (примерно) будет весить?

04.11.2004 13:55

Re: Декомпилятор скриптов Готики
 
2TycoooN:<br>
Цитата:

А сколько он (примерно) будет весить?
<br>Ответить пока сложно,зависит от того, как много места займет оболочка.<br>На сегодняшний день экзешник весит около 300 кило. &nbsp; :)

Killer-XXX 05.11.2004 00:02

Re: Декомпилятор скриптов Готики
 
2Vam: <br>Кстати у тебя нету какой нибудь Бета версии самого компилятора? А то столкнулся с проблемой, Спэйсер глючит, люди говорят у них такое же было, только сносом системы вылечилось, вот я бы пока и пользовался твоим компилятором, он же оригинальный, просто выдранный?

05.11.2004 09:27

Re: Декомпилятор скриптов Готики
 
2Killer-XXX:<br>
Цитата:

Кстати у тебя нету какой нибудь Бета версии самого компилятора?
<br>Компилятор с декомпилятором делаю в одном пакете, а пока все до конца не отлажено, возможно есть ошибки, допущенные при создании исходников компилятора. Придется немного подождать. &nbsp;;)

08.11.2004 18:05

Re: Декомпилятор скриптов Готики
 
Ошибка в скриптах Диккурика (версия rus beta 0.60, возможно и в других версиях).<br><br>В файле B_AssignAmbientInfos.d в одноименной функции в строке 12 имеется<br>else if (amb_self.voice = 16), а должно быть else if (amb_self.voice == 16).<br>Внутри if выражения присвоение не разрешается!<br>

TycoooN 08.11.2004 22:46

Re: Декомпилятор скриптов Готики
 
2Vam: <br>Ну и к чему эта ошибка приводит? Имхо она не очень важна, т.к. файл B_AssignAmbientInfos.d сам по себе не очень важен :)

09.11.2004 09:31

Re: Декомпилятор скриптов Готики
 
2TycoooN:<br>
Цитата:

Ну и к чему эта ошибка приводит?
<br>Возможна ошибка в диалоге с рабочими в поле у мельницы и с мельником.<br>Файл B_AssignAmbientInfos.d отвечает еще и за другие диалоги - разговор с охранником на входе в крепость и многие другие, они все подробно расписаны в файлах B_AssignAmbientInfos_***.d *;)

13.11.2004 21:27

Re: Декомпилятор скриптов Готики
 
В принципе ядро компилятор-декомпилятор закончено. Проверил на скриптах и дат файлах Готики 1 и Диккурика.<br>Могу выложить консольный вариант на тестирование, а сам начну делать графическую оболочку. Наверняка найдутся замечания и пожелания. По оболочке тоже хотелось бы предложений, какие функции реализовать.<br><br>Для подготовки консольного варианта мне необходимо пару дней.<br>Как вы на это смотрите? &nbsp;;)

TycoooN 13.11.2004 22:26

Re: Декомпилятор скриптов Готики
 
2Vam: <br>Конечно хотим! :) Выкладывай.<br>По оболочке главное пожелание - это чтобы при ошибках компиляции писалось, в каком конкретно скрипте ошибка.

13.11.2004 23:51

Re: Декомпилятор скриптов Готики
 
Декомпилятор выложен на DiccuricAg. Понадобилось гораздо меньше времени на подготовку консольки, чем ожидал. &nbsp;;)

TycoooN 14.11.2004 00:04

Re: Декомпилятор скриптов Готики
 
2Vam: <br>Мог бы по такому случаю и сайтик забацать :)<br>Скорость, с которой ты подготовил программу впечатляет, щас скачаю и попробую потестить :D :D :D

TycoooN 14.11.2004 00:46

Re: Декомпилятор скриптов Готики
 
2Vam: <br>Ну что ж, я с успехом декомпилировал снежковский Готик.дат :)<br>Разумеется, пожеланий довольно много, так что ты сразу скажи, что реально сделать, а что нет :)<br>1. Нельзя ли называть файлы не числами, а хотя бы примерно как это сделано у разработчиков? Ведь вполне реально назвать файл диалогов с Кор Галомом DIA_GUR_1201_CORKALOM.<br>2. Было бы неплохо, если бы в скриптах диалогов шел сначала Instance (C_Info), потом его _Condition, потом _Info (т.е. как принято у разрабов)<br>3. При наличии ou.csl/ou.bin чтобы после строк AI_Output добавлялся комментарий с фразами.<br>4. Собираешься ли ты делать декомпилятор для Готики 2? Он ведь тоже нужен ::)

14.11.2004 11:19

Re: Декомпилятор скриптов Готики
 
2TycoooN: <br>1. К сожалению, в дат файле нет никаких имен исходных файлов, есть только номера файлов в том порядке, в котором проходила компиляция. Мы, сравнивая исходники и декомпилированный текст, видим очевидные имена файлов. Но, если бы у нас не было исходников, исходные имена файлов просто точно не восстановить, можно только предполагать, а декомпилятор не такой умный, чтобы предполагать. Может у кого-нибудь, поработав с программой, возникнет осуществимая идея - рассмотрим.<br>2. Декомпилятор создает текст строго в той последовательности, в какой проходила компиляция, никакие перестановки он не делает, да и не может делать, иначе возникнут ошибки. Твой вопрос мне не понятен. Если при сравнении декомпилированного файла и исходника наблюдаются перестановки, то это ошибка, требующая устранения (я такого не встречал).<br>3. Это сделаю обязательно, даже до графической оболочки. Необходимо реализовать два варианта - создание ou.bin и занесение информации из ou.bin в декомпилированные скрипты.<br>4. Да, следующим этапом, скрипты и дат файлы обеих Готик одинаковы, за исключением некоторых встроенных функций и переменных. Закончив рассмотрение функций Готики 1 (в теме Уроки скриптологии), перейду к Готике 2, а затем и модифицирую программу.<br>


Текущее время: 04:10. Часовой пояс GMT +4.
Страница 2 из 31 12 345678912 Последняя »

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

AGFC: Valley of Gothic © 2004-2022