|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор и сырцы к нему доступны по http://homepages.atnet.ru/drony/int2ssl.rar Умеет декомпилировать скрипты от Fallout2 в сырцы пригодные для BIS-ова компилятора.
|
Отправлено: 18:46 - 21 Апр., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Скажу одно: работает! Проверено на подопытном Клинте. Иностранцам сообщать будешь?
|
Отправлено: 22:41 - 21 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Доверю это дело тебе
|
Отправлено: 5:32 - 22 Апр., 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
А куда декомпилируемый скрипт класть,чтобы он декомпильнулся?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 11:46 - 22 Апр., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
... И мпортные вары видны корректно. А что с Ф1? Там есть особенности, в частности, attack...
|
Отправлено: 15:17 - 22 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Есть разница в числе аргументов для ряда функций. Кроме того есть скрыпты, в которых в процедуры передается неверное число аргументов. Похоже компилятор просто ничего не проверял. Если надо - могу доделать под декомпиляцию скриптов от Ф1.
|
Отправлено: 16:29 - 22 Апр., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Очень надо. Только с Алхимиком спишись. Он много в этом направлении нарыл.
|
Отправлено: 17:35 - 22 Апр., 2005
|
|
Raven
Пользователь
Откуда: Владик Регистрация: Февр. 2004
Всего: 408 сообщений
|
Anchorite, спасибо. Сильная штука. Скрипт покера на 60кб декомпильнула один в один.
|
Отправлено: 15:42 - 23 Апр., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Сообщил забугоровцам, но ответов пока нет. Неужто не заметили?
|
Отправлено: 19:43 - 23 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор обновлен до версии 1.01 Исправлен баг с critter_attempt_placement - выдавал critter_attemp_placement. Спасибо Tehnokrat-у.
|
Отправлено: 8:51 - 24 Апр., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
2Anchorite und Wasteland Ghost: Информацию по всем известным мне грабелькам (что не так уж много) отослал. Проблемы с attack на самом деле не существует. Просто в исходниках от BIS всюду используется вот такой макрос: #define attack(WHO) attack_complex(WHO,0,1,0,0,30000,0,0). У разработчика опкода с именем attack просто нет. Это меня с толку Noid'овский подход сбил. Коли появится декомпилер для F1, то я, когда освобожусь, в первую очередь нарисую парсер исходников для возврата имён скриптовых переменных (если были незадействованные импорты). Обработкой одного скрипта этого не решить. Сегодня, может ещё сделаю глубокий тест декомпилятора. Очень способствует. (Отредактировал(а) Alchemist - 9:51 - 24 Апр., 2005)
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 9:49 - 24 Апр., 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Duble2: А куда декомпилируемый скрипт класть,чтобы он декомпильнулся?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 16:36 - 24 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
2binyan: Где лежит там и оставь. Просто имя декомпилируемого скрипта надо передать в качестве параметра для int2ssl.exe (Добавление от 17:37 - 24 Апр., 2005.) 2Alchemist: Вообще-то в Fallout2 есть два опкода в которых встречается слово attack: O_ATTACK_COMPLEX - 0x80D0h - attack_complex O_ATTACK - 0x80DDh - attack У обоих 8 аргументов. Возвращаемых значений - нет. Чем различаются - не знаю
|
Отправлено: 17:32 - 24 Апр., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
Упс. Точно я у Noid'а плохого набрался, числил O_ATTACK как "attack2". Надо будет код поправить. Тем не менее даже в первом Fallout используется исключительно O_ATTACK_COMPLEX. То есть 0x80D0. Хотя работают оба опкода, на первый взгляд, совершенно одинаково.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 18:31 - 24 Апр., 2005
|
|
binyan
Пользователь
Откуда: Israel Регистрация: Март 2005
Всего: 292 сообщения
|
Цитата: Quote: from Anchorite on 17:32 - 24 Апр., 2005 2binyan: Где лежит там и оставь. Просто имя декомпилируемого скрипта надо передать в качестве параметра для int2ssl.exe
В смысле в качестве параметра?Где его прописать?
----- ...выражая озадаченность, граничащую с озабоченностью..
|
Отправлено: 21:09 - 24 Апр., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
2binyan: В командной строке всё это прописывается: int2ssl.exe путь_к_скрипту\имя_скрипта.int Результат будет лежать в той же директории, что и сам скрипт.
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 21:46 - 24 Апр., 2005
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
Классный декомпилятор. Единственное - визуальное форматирование кода просто убивает. Долго в исходниках править чтобы назначить свое?
----- hit me, nail me, make me god
|
Отправлено: 0:58 - 25 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Что не устраивает-то?
|
Отправлено: 5:28 - 25 Апр., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Действительно, в чём проблема? ИМХО, всё олично. И ничем, кстати, не отличается от БИСовых исходников.
|
Отправлено: 14:25 - 25 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор обновлен до версии 1.2 Теперь он умеет декомпилировать скрипты от Fallout 1. (надеюсь правильно). Также добавлен ключик позволяющий заменить табуляции в отступах на указанное число пробелов. Доступен по прежднему месту: http://homepages.atnet.ru/drony/int2ssl.rar
|
Отправлено: 20:39 - 25 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор обновлен до версии 1.3 Добавлена обработка объявленных, но не реализованных функций. URL тот же.
|
Отправлено: 20:25 - 27 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор обновлен в очередной раз до версии 1.31. Исправлен небольшой баг с ключиком -s.
|
Отправлено: 5:44 - 28 Апр., 2005
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
Цитата: Также добавлен ключик позволяющий заменить табуляции в отступах на указанное число пробелов.
Да. Я имел в виду именно горизонтальное выравнивание. Мелочь, но приятно.
----- hit me, nail me, make me god
|
Отправлено: 1:33 - 29 Апр., 2005
|
|
Alchemist
Модератор
Откуда: Арзамас-17 Регистрация: Дек. 2004
Всего: 298 сообщений
|
2Anchorite: Есть suggetion по поводу ключика -dump. Хотелось бы, чтобы он вёл себя так же, как в бэте. Ибо дамп скрипта обычно смотрят, если полноценная декомпиляция невозможна. В данный же момент дампинг, по сути, возможен только для тех скриптов, которые и так нормально декомпилируются. Проверь, скажем, на файлике, который Бастер кидал в рассылку. (Отредактировал(а) Alchemist - 21:49 - 29 Апр., 2005)
----- /// What'ya be sain'? Vault 100+? We need nothing o'that!
|
Отправлено: 21:37 - 29 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Пришли, если не сложно. У меня его нет.
|
Отправлено: 21:42 - 29 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор обновлен до версии 1.4 Добавлена обработка неверного числа аргументов для процедур (ключики -a и -b) . В планах реализовать декомпиляцию скриптов с уж "совсем нестандартным Startup code". Честно говоря меня удивляет как они вообще работают.
|
Отправлено: 16:03 - 30 Апр., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Декомпилятор обновлени до версии 1.5 Теперь он стал еще более "всеядным". Также исправлен мелкий недочет - переменные не определялись как импортированные при полном отсутствии в скрипте глобальных переменных.
|
Отправлено: 12:18 - 15 Мая, 2005
|
|
Dioron
Пользователь
Откуда: Россия Регистрация: Дек. 2004
Всего: 9 сообщений
|
Вещь хорошая! Декомпилит. Вопрос такой это нормально что он убивает #include и #define и еще в как в командной строке прописывать ключи int2ssl.exe my_script.int -d
----- Оставь надежду Всяк сюда входящий.
|
Отправлено: 12:30 - 17 Июня, 2005
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
>>Вопрос такой это нормально что он убивает #include и #define Ты просто не понимаешь суть того, что есть #include и #define. Декомпилятор ничего не убивает, а просто выдаёт скрипт, где #define one 1 // для примера уже заменено. Вместо обозначений подставляются значения
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 19:41 - 17 Июня, 2005
|
|
Mynah
Модератор
Откуда: Пермь Регистрация: Окт. 2004
Всего: 469 сообщений
|
Просто поделюсь полезной информацией. В Fallout Script Editor (aka FSE) 1.5 есть функция - "Convert Noid->Iplay". Дак вот, если прогнать скрипт, декомпиленный int2ssl через эту функцию, он принимает человеческий вид, показывает большинство макросов и делает все include и define. Остаётся заменить только CheckKarma, GetReaction и inc_xxxx_critter. Потом исправлять скрипт - одно удовольствие :)
----- Scio me nihil scire
|
Отправлено: 21:12 - 17 Июня, 2005
|
|
Alan Killenger
Пользователь
Откуда: Россия, Ижевск Регистрация: Июль 2004
Всего: 404 сообщения
|
У меня вопрос. Почему в любом декомпилированном скрипте присутствует чек_пати_неарс_доор, хотя в исходнике его нет и она ни разу не вызывается? Можно ли как-нибудь на автомате убивать различный мусор, который никак не используется в скрипте, да и не может быть никак использован?
----- hit me, nail me, make me god
|
Отправлено: 22:44 - 4 Авг., 2005
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
А ты пропусти исходник скрипта через препроцессоор, но не компилируй и все увидишь. А на самом деле эта процедура просто определена в одном из включаемых тобой h-файлов. В каком точно - не помню.
|
Отправлено: 5:41 - 5 Авг., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
party.h
|
Отправлено: 9:47 - 5 Авг., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Заметил такой косяк при декомпилировании скрипта с помощью int2ssl: В файле depolva.int одна из строк декомпилировалась как: LVar1 := LVar6 (60 * 10) / 10; Довольно непонятная конструкция, особенно учитывая то, что нойдовский компиль вывел следующее: LVar2 := LVar7 % (60 * 10) / 10; Однако, косяк.
|
Отправлено: 13:01 - 3 Сент., 2006
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Это в какой функции? И какая версия декаомпилятора?
|
Отправлено: 8:37 - 4 Сент., 2006 | ИСПРАВЛЕНО: Anchorite - 8:38 - 4 Сент., 2006
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Короче, вот что выдает int2ssl (v. 1.52): procedure CountDown begin variable LVar0 := 0; variable LVar1 := 0; variable LVar2 := 0; variable LVar3 := 0; variable LVar4 := 0; variable LVar5 := 0; variable LVar6 := 0; LVar2 := game_time - global_var(149); LVar6 := 600 + (600 + (600 + 600)) - LVar2; LVar5 := 600 + (600 + 600) - LVar2; LVar4 := 600 + 600 - LVar2; LVar3 := 600 - LVar2; if (global_var(global_var(149)) != 0) then begin display_msg(message_str(146, 100)); end if (LVar2 < 600) then begin LVar0 := LVar6 / (60 * 10); LVar1 := LVar6 (60 * 10) / 10; а вот что получается с декомпилем Нойда: procedure CountDown begin variable LVar1 := 0; variable LVar2 := 0; variable LVar3 := 0; variable LVar4 := 0; variable LVar5 := 0; variable LVar6 := 0; variable LVar7 := 0; LVar3 := op_game_time() - op_global_var(149); LVar7 := 600 + (600 + (600 + 600)) - LVar3; LVar6 := 600 + (600 + 600) - LVar3; LVar5 := 600 + 600 - LVar3; LVar4 := 600 - LVar3; if (op_global_var(op_global_var(149)) != 0) then op_display_msg(op_msg_string(146, 100)); if (LVar3 < 600) then begin LVar1 := LVar7 / (60 * 10); LVar2 := LVar7 % (60 * 10) / 10;
|
Отправлено: 18:12 - 4 Сент., 2006
|
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
А в закромах TeamX до сих пор 1.52. Ай-яй-яй-яй-яй-яй. :)
|
Отправлено: 19:06 - 5 Сент., 2006
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Anchorite Есть ли такая функция в декомпиляторе при декомпелировании он не декомпелировал лишние end Как у Noid Пример Декомпелятор Noid if (local_var(4) == 0) then display_msg( mstr(102) ); else display_msg( mstr(103) ); Декомпелятор int2ssl if (local_var(4) == 0) then begin display_msg( mstr(102) ); end else begin display_msg( mstr(103) ); end Я декомпелирую скрипты fallout1 и если бы он декомпелировал как Noid то очень бы облегчило чтение скрипта
|
Отправлено: 16:05 - 5 Июля, 2007
|
|
Jordan 63
Пользователь
Откуда: Россия, Самара Регистрация: Июль 2007
Всего: 228 сообщений
|
Anchorite Будет ли в декомпилятор добавлены новык функции из sfall'а?
|
Отправлено: 16:52 - 12 Янв., 2008
|
|
Anchorite
Пользователь
Откуда: Не здесь Регистрация: Янв. 2003
Всего: 283 сообщения
|
Сам я добавлять ничего не стану, т.к. давным давно отошел от дел. Сырцы декомпилятора лежат на сайте. Добавь нужный тебе функционал самостоятельно.
|
Отправлено: 23:05 - 13 Янв., 2008 | ИСПРАВЛЕНО: Anchorite - 8:19 - 13 Фев., 2008
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Как только разберусь со всеми делами - обязательно добавлю совместимость с sfall.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 0:23 - 14 Янв., 2008
|
|
|