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
Ответов
Iv
сообщение 14 Apr 2010, 23:59
Сообщение #2

Immortal
Сообщений: 6 287
Спасибо сказали: 12724 раза




Размещаю изыскания Master Of Puppets, по его же просьбе.

Ненависть

443138 mov dl,[eax+CASE_004434DC]
44313E jmp [CASE_PROCTABLE_004434C8+edx*4]

В маленькой (монстры 112-129) таблице 5 значений. Значения 00-03 чисто для элементалей - каждый элементаль ненавидит обоих элементалей противоположной стихии. Управление, однако, всё равно передаётся на PROC0004 - она же для остальных существ, т.е., там case вложен в case. Диапазон - от Ангела до Чёрного Дракона.
Содовский код там имеет вид:

CASE_004434C8_PROC0004:

443195 mov eax,[edi+34h]
443198 add ecx,FFFFFFF4h
44319B cmp ecx,00000047h
44319E ja CASE_004434F0_PROC0006
4431A4 xor edx,edx
4431A6 mov dl,[ecx+CASE_0044350C]
4431AC jmp [CASE_PROCTABLE_004434F0+edx*4]

Однако при запуске WoG код изменяется так:

CASE_004434C8_PROC0004:

443195 mov ecx,[ebp+08h]
443198 call SUB_L00766DE6
44319D or eax,eax
44319F jz L00443410
4431A5 mov ecx,[ebp-10h]
4431A8 jmp L00443211
4431AA nop
4431AB nop

Код меняет отрезок воговского копирования exe3273A4-3273AF (78BD8Ch/443195h/17h).
В итоге ненавистью существ в WoG занимается SUB_L00766E14, куда скопирован и case, и таблица СОДа. Туда же, видимо, встроена и ненависть через опыт существ.
При условии, что тип существа соответствует "ненавистному", задаётся процент доп. урона. В СОД это унифицировано, в ВОГ же - рутинно задаётся одной и той же командой:

mov dword ptr [ebp-0Ch],00000032h

Исключения - Титан и Чёрный Дракон. У них это:

mov dword ptr [ebp-0Ch],00000005h

Похоже на опечатку: вместо 150% урона - 105%. Несложный тест подтверждает, что баг реален и мы с ним жили.( Впрочем, у себя я его уже исправил. smile.gif
Кстати, и в СОД, и в ВОГ Чёрный Дракон равнодушен к Гигантам. Справедливо - Титан тоже равнодушен к Красным.
Независимо от реальных процентов доп. урона, в логе битвы будет показано "50%". Проблема в упрощённом обращении к строке genrltxt.txt.


Кавалерийский бонус

75D823 cmp dword ptr [L028460C0],0000000Ah; - Каварелист
75D82A jnz L0075D838
75D82C mov dword ptr [L02846420],0000000Bh
75D836 jmp L0075D860
75D838 cmp dword ptr [L028460C0],0000000Bh; - Чемпион
75D83F jnz L0075D84D
75D841 mov dword ptr [L02846420],0000000Bh


Отсос 2-х очков маны

4650D0 sub eax,0000003Dh; - Привидение
..........
465174 add eax,FFFFFFFEh; - кол-во забираемых очков


Магический канал

5A24DC cmp dword ptr [eax-000000C0h],0000002Bh; - Чёрт


Смертельный удар
766DB9 sub eax,43; - Рыцарь Смерти
4435C0 jz L004435D1
............
4436DE cmp eax,00000014h; - шанс срабатывания абилки


Снижение стоимости заклинаний

766BFA cmp dword ptr [ebp-18h],00000022h - Маг
766BFE jz L00766C06
766C00 cmp dword ptr [ebp-18h],00000023h - АрхиМаг
766C04 jnz L00766C0D
766C06 mov dword ptr [ebp-0Ch],00000002h - кол-во очков на удешевление


Особые земли

Case:

4FD5A1 mov cl,[eax+CASE_004FD5E8]
4FD5A7 jmp [CASE_PROCTABLE_004FD5D0+ecx*4]

Проверки для подсказок при наведении мыши, ПКМ и для !!TR:

4FD52A cmp eax,00000015h
4FD52D lea ecx,[edi+ecx*4]
4FD530 jz L004FD57F
4FD532 cmp eax,0000002Eh
4FD535 jz L004FD57F
4FD537 cmp eax,000000E3h
4FD53C jz L004FD57F
4FD53E cmp eax,000000E0h
4FD543 jz L004FD57F
4FD545 cmp eax,000000DEh
4FD54A jz L004FD57F
4FD54C cmp eax,000000E1h
4FD551 jz L004FD57F
4FD553 cmp eax,000000E4h
4FD558 jz L004FD57F
4FD55A cmp eax,000000E2h
4FD55F jz L004FD57F
4FD561 cmp eax,000000E7h
4FD566 jz L004FD57F
4FD568 cmp eax,000000E5h
4FD56D jz L004FD57F

Посмотреть журнал

!!SN:E5433616/1;


--------------------


Спасибо сказали:
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

 



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