IPB

Здравствуйте, гость ( Вход | Регистрация )

> Инженерный анализ, Reverse Engineering
Чёртос-2 (Chorto...
сообщение 24 Sep 2007, 21:39 (Сообщение отредактировал Iv - 19 Oct 2012, 15:23)
Сообщение #1

The Unicode Man
Сообщений: 993
Спасибо сказали: 6 раз




Предлагаю всем, у кого есть какая бы то ни была информация о технической стороне игры, поделиться ею.

Обсуждение в соответствующей теме.


--------------------
© 2005–2011 Чёртос-2
Go to the top of the pageAdd Nick
 
+Quote Post
 
Start new topic
Ответов
Чёртос-2 (Chorto...
сообщение 30 Sep 2007, 20:50 (Сообщение отредактировал Чёртос-2 (Chortos-2) - 30 Sep 2007, 23:31)
Сообщение #2

The Unicode Man
Сообщений: 993
Спасибо сказали: 6 раз




Всё для WoG 3.58f.

Все адреса указаны в шестнадцатиричной системе счисления и являются виртуальными адресами с image base (400000). Когда числа указаны в формате «от … до …», оба конца отрезка берутся включительно.


Таблица с типами стрелковых снарядов (стрел и т. п.) для стандартных существ

Хранится в адресах 00797BB8–00797C7B (неиспользующаяся оригинальная — 0043DBA4–0043DC34). На каждое существо отводится один байт с номером типа снаряда. Таблица начинается с лучника (существо № 2) и заканчивается неким существом № 197 (оригинальная — баллистой, существом № 146).


Имена изображений стрелковых снарядов (стрел и т. п.)

В адресах 0043DAAA–0043DB1C расположен оператор выбора (switch для любителей C‐подобных языков, case для любителей Pascal‐подобных). Он содержит 16 имен DEF‐файлов (для типов снаряда №№ 00–0Fh), плюс один дополнительный пункт, выполняемый по умолчанию, то есть для всех остальных типов снаряда. При запуске WoG код оператора изменяется так, чтобы для типа 01 совершался прыжок на 007649D0, где проводится проверка на драколича — если это существо № 196, используется изображение дыхания драколича, если нет — стандартное изображение стрелы лучника из замка.


SUB_L004F6C00, функция отображения сообщения

Код
enum msg_type: long
{
    MSG_OK = 1,
    MSG_YES_NO = 2,
    MSG_RIGHT_CLICK = 4,
};

// Display a message
fastcall void SUB_L004F6C00(const char *text, msg_type type, int, int, int, int, int, int, int, int, int, int);

// Example (taken from 004F879A):
SUB_L004F6C00("This game runs in 65536 color mode. You must switch the desktop to this mode before playing the game.", MSG_OK, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0);
Есть идея, что таинственные аргументы −1 и 0 могут являться типами и подтипами изображений (как в ERM у !!IF:M и !!IF:Q).


SUB_L0050CEA0, функция смены курсора мыши

Код
enum pointer_type: long
{
    POINTER_DEFAULT,
    POINTER_ADVMAP,
    POINTER_COMBAT,
    POINTER_SPELL, // This is an animated pointer, subtype = frame index
    POINTER_ARTIFACT,
};

// Change the mouse pointer
pascal void SUB_L0050CEA0(pointer_type type, int subtype);


Непонятные функции

Код
// Get a text file from the bitmap LOD (details not found out yet)
// If unsuccessful (?), returns NULL
cdecl char *SUB_L0055BFE0(const char *filename);

// ?? Do something with a creature-related sound;
//    pattern like '%sshot.82M'
void SUB_L006179DE(void *, const char *pattern, int);

По адресу 00559390 что‑то делается с LOD‐файлами.


--------------------
© 2005–2011 Чёртос-2
Go to the top of the pageAdd Nick
 
+Quote Post

Сообщений в этой теме
- Чёртос-2 (Chortos-2)   Инженерный анализ   24 Sep 2007, 21:39
- - sergroj   Таблица монстров состоит из таких структур: (одина...   28 Sep 2007, 21:30
- - Irh   sergroj, зачет! Добавлю то, что известно мне. ...   29 Sep 2007, 15:03
- - sergroj   1. На самом деле, Славин файл - это exe. Для WoG 3...   29 Sep 2007, 21:37
- - Чёртос-2 (Chortos-2)   Всё для WoG 3.58f. Все адреса указаны в шестнадца...   30 Sep 2007, 20:50
- - Irh   Координаты строений в городе по смещению 0x0028AA...   04 Oct 2007, 21:52
- - Irh   Рекомендую редактор двоичных файлов 010 Editor. Та...   12 Oct 2007, 22:23
- - Irh   В принципе, для добавления отображаемого спрайта с...   12 Oct 2007, 22:54
- - major   Регенерация существ 002F55C7 83F8 3C C...   15 Nov 2007, 20:27
- - Irh   Номер города, у которого Грааль дает все заклинани...   17 Nov 2007, 15:49
- - Д'якон   По указателю 0х004С2001 +224091 содержаться адр...   17 Nov 2007, 16:00
- - Entuser   7AD78 - тут в екзишнеке храниться число 5 - после ...   22 Jan 2008, 11:10
|- - Master Of Puppets   Цитата(Entuser @ 22 Jan 2008, 11:10)7AD78 - т...   27 Mar 2010, 08:02
- - Чёртос-2 (Chortos-2)   Функция проверяет, есть ли у героя заданный артефа...   07 Mar 2008, 21:37
- - major   Бесстрашие 002F7C6C 817F 34 84000000 CMP DWORD PT...   01 Jul 2008, 16:57
|- - major   Магическое зеркало 00048528 8179 34 86000000 CMP ...   01 Jul 2008, 17:30
- - hippocamus   А Драколич разве облаком смерти стреляет? Какой-то...   04 Jul 2008, 11:37
- - major   Облако смерти + иногда травит   04 Jul 2008, 12:50
- - major   Таблица существ, в которые трансформируются сущест...   04 Jul 2008, 17:59
- - sergroj   24130C и 31DA14 - не постоянные адреса. На эти бло...   07 Jul 2008, 13:48
- - Чёртос-2 (Chortos-2)   Цитата(FakerNeo @ 31 Jul 2008, 16:35)атака 44...   28 Sep 2008, 16:05
- - Master Of Puppets   Заклинания, даваемые артефактами По адресу mem004...   03 Feb 2010, 12:40
- - Дьяк   341 - не соглашусь. Никаких ограничений нет! Т...   04 Feb 2010, 19:24
- - Master Of Puppets   Неважно, как я понял код. Всё равно ничего мне это...   05 Feb 2010, 13:30
- - Дьяк   Я просто поправил информацию, что ты предоставил, ...   05 Feb 2010, 23:38
- - Master Of Puppets   Спасибо, поправил. Тут тоже поправь меня, если ош...   07 Feb 2010, 08:18
- - feanor   КодCPU Disasm 0040EF33      BE 02000000   MOV ESI,...   10 Feb 2010, 22:44
- - Master Of Puppets   Открытие окна героя: !!SN:E5118576/1/x1/x2...   26 Feb 2010, 10:56
- - CrackedMind   Создали бы давно уже какую нибудь вики и наполняли...   27 Feb 2010, 04:37
- - EtherniDee   Была вики. Посещение - 0, желание создавать и офор...   27 Feb 2010, 15:21
- - feanor   Боевые машины, покупаемые в кузнях 6AAA60 - табли...   28 Feb 2010, 21:44
- - tolich   Цитата(feanor @ 28 Feb 2010, 21:44) Боева...   28 Feb 2010, 21:48
- - feanor   00642EA0 - таблица отображаемых в окне кузни сущес...   28 Feb 2010, 21:59
- - tolich   Я имел в виду, что в Кузне телега и на Дворе Балли...   28 Feb 2010, 22:12
- - Master Of Puppets   Вызов Торгового Поста: !!SN:E6202560/1;   07 Mar 2010, 11:07
- - feanor   5A0649 - switch для боевых заклинаний. Вроде как и...   18 Mar 2010, 21:17
- - Master Of Puppets   SUB_L004631E0 - функция, расставляющая существа (в...   21 Mar 2010, 07:47
- - laViper   То есть можно нормально поставть 10 балист и они б...   25 Mar 2010, 19:38
|- - etoprostoya   Цитата(laViper @ 25 Mar 2010, 19:38)То есть м...   25 Mar 2010, 19:41
- - feanor   Структура заклинаний. Указатель на таблицу заклин...   25 Mar 2010, 19:51
- - Дьяк   красава!!!!   25 Mar 2010, 19:53
- - Astaroth   Кодint null; //?? - Может это невозможность появле...   26 Mar 2010, 15:56
|- - etoprostoya   Цитата(Astaroth @ 26 Mar 2010, 15:56)Кодint n...   26 Mar 2010, 16:45
- - feanor   Для этого есть другая таблица, емнип. У меня вчера...   26 Mar 2010, 15:58
- - Master Of Puppets   Шарпшутерство 75DD50 cmp eax,00000095h 75DD55 jz ...   30 Mar 2010, 10:15
- - feanor   Комбо-артефакты Кажется, таблица комбо-артефактов...   11 Apr 2010, 21:17
- - Iv   Размещаю изыскания Master Of Puppets, по его же пр...   14 Apr 2010, 23:59
- - Дьяк   Маленькое наблюдение. Описанные тобой, МОР, свойст...   16 Apr 2010, 21:32
- - feanor   Емнип, абилки вынесены в воговскую секцию для возм...   16 Apr 2010, 21:53
- - feanor   Привязка удачи к артефактам. К сожалению, это сдел...   17 Apr 2010, 21:56
- - Master Of Puppets   Чуть-чуть. Контрудары В начале битвы: 43D6A0 cm...   21 Apr 2010, 13:21
- - feanor   5BDCE0 - Начисление плюшек спецстроениями типа вод...   25 Apr 2010, 16:19
- - feanor   Цитата(Чёртос-2 (Chortos-2) @ 20 Ju...   25 Apr 2010, 17:05
- - Master Of Puppets   SUB_L0044AA90 - функция проверки наличия существ у...   29 Apr 2010, 09:45
- - Vade Parvis   ЦитатаF800 - красный. Гоблины с бластерами?   29 Apr 2010, 13:20
- - Master Of Puppets   ЦитатаМаленькое наблюдение. Описанные тобой, МОР, ...   01 May 2010, 07:19
- - feanor   Навыки, дающиеся в Университете Сопряжения: Код005...   10 Jun 2010, 10:35
- - feanor   Объекты на карте 4A8160 - функция (один большой св...   12 Jun 2010, 20:49
- - Master Of Puppets   Боян, но пусть будет: 679DD0h - массив стартовых ...   14 Jun 2010, 12:35
- - feanor   Репортаж с чемоданов (:. Структуры стэков на поле...   19 Jul 2010, 18:26
- - feanor   Данные, как обычно, почти непроверенные и вообще и...   29 Jul 2010, 21:14
- - feanor   Проверка на Доспехи Проклятого и Альянс Ангелов - ...   30 Jul 2010, 11:49
- - sergroj   Вот покопал тип, подтип недели и месяца: 69844C W...   30 Jul 2010, 16:42
- - sergroj   AI Вычисляет ценность объекта для AI: .text:005285...   14 Aug 2010, 19:55
- - feanor   Структуры классов героя. Адрес - 67В86С. Ссылки -...   15 Aug 2010, 01:29
- - sergroj   что-то у тебя непонятное. Адрес где-то в середине ...   15 Aug 2010, 16:53
- - feanor   ага, напортачил при поиске ссылок. Никогда больше ...   18 Aug 2010, 11:30
- - Master Of Puppets   Тоже немного об ИИ. Довольно часто (я насчитал 46 ...   04 Sep 2010, 05:48
- - feanor   006747B4 - таблица обитателей жилищ в городах. По ...   25 Dec 2010, 18:50
- - feanor   Еще об артефактах, точнее, о расчете их (и не толь...   08 Jan 2011, 16:41
- - Лорд Хаарт   Цитата004E3ED0 - функция, возвращающая тип поднима...   09 Jan 2011, 16:25
- - feanor   sub_757045 - проверки на прямые атаки воговских су...   19 Jan 2011, 22:47
- - feanor   688f04 - таблица ресурсов, приносимых хранилищем. ...   23 Jan 2011, 22:52
- - MasterOfPuppets   Настройки игры Все адреса в порядке возрастания. ...   28 Feb 2011, 15:15
- - feanor   Генератор случайного монстра sub_4C8F80(void *thi...   02 Mar 2011, 23:56
- - Дьяк   Правка генератора случайных монстров при старте ка...   13 Mar 2011, 14:41
|- - MasterOfPuppets   6436A8h - родные почвы городов. 63D0A8h - таблица ...   05 Apr 2011, 14:21
- - etoprostoya   Моя ИДА распознала эту функцию как __ftol (convert...   07 May 2011, 20:48
|- - MasterOfPuppets   [[0x699420]+0x132C4] 0 - человек сам управляет бое...   10 Jun 2011, 14:44
- - tolich   А разве автобой с человеком не по той же схеме счи...   10 Jun 2011, 15:05
|- - MasterOfPuppets   Имеется в виду реальный бой, но в авторежиме. Когд...   10 Jun 2011, 15:07
|- - tolich   Цитата(MasterOfPuppets @ 10 Jun 2011, 15...   10 Jun 2011, 15:10
|- - MasterOfPuppets   Кстати, ошибся. Установка тоже работает.   05 Jul 2011, 13:30
- - Berserker   Полезная штука.   05 Jul 2011, 14:46
- - Valery   Is there any way to remove the 48 towns limit in g...   17 Jul 2011, 17:30
- - Sav   Цитата(Dead @ 05 Nov 2011, 02:55 (Соо...   11 Feb 2012, 14:50
- - feanor   Работа с моралью и удачей. Наконец-то добрался до...   31 Jul 2012, 15:08
- - feanor   Всякие мелочи, которые я возможно допилю до инстру...   14 Aug 2012, 19:31
- - feanor   В рантайме же палитра {цвета игрока для интерфейса...   04 Nov 2012, 21:02
- - feanor   О анимации почв и рек. Как известно, вода, лава и...   18 Jan 2013, 22:34
- - feanor   Все забываю. https://dl.dropbox.com/u/61759222/H...   05 Apr 2013, 22:32
- - feanor   Обновил файл на тот, что с новой базы Чуть-чуть п...   12 Apr 2014, 00:49
- - feanor   всяческие неупомянутые вещи из геймменеджера Окно...   28 Nov 2015, 16:34
- - igrik   Многие зашитые абилки существ by Hawaiing ; ------...   14 Jan 2016, 15:31
- - feanor   Кодint __stdcall ReadAdditionalFields(LoHook* ...   20 Mar 2016, 12:47
- - AlexSpl   Кто-нибудь знает, как в Тройке определить, что игр...   21 Mar 2016, 23:28
2 страниц V   1 2 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 24 May 2026 - 00:36
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика