Cтруктура героя на карте приключений
HEX-конвертер:
// +00 dw = X координата // +02 dw = Y координата // +04 dw = L уровень, старшая часть Y (Y<<2>>C) // +06 db = 1: есть на карте (вне фокуса или не активен) Byte _u1[17]; Dword MapItemXYZ[4]; // +07 db = X // +08 db = (?) мусор (к X) // +09 db = Y // +0A db = L(?) мусор (к Y) // +0B db = ? Byte _u1; // +0C dd - тип объекта, на котором герой стоит PlOType; // dd +1E с карты // +10 db - бит занятости во флагах поверхности (0x0C) Pl0Cflag; // этот бит означает, что здесь есть/была точка входа (жёлтая клетка) // +14 dd - Контрольное слово объекта, на котором герой стоит PlSetUp; // dd +0 с карты // +18 dw = баллы заклинаний // +1A dd = номер подтипа (конкретный герой) _unk_Id; // +1E dd = ??? Id // +22 db = хозяин (цвет игрока) char Name[13]; // +23 db*D = имя героя // +30 dd = класс// +34 db = номер картинки портрета (0..156) // +35 db = намеченная коорд. X куда побежать // +39 db = намеченная коорд. Y куда побежать // +3D db = уровень на карте, где намечен путь перемещения Byte _u2[15]; // +3E db - ??? 4E3BB5 - используется для подсчёта Удачи // +44 db = базовый X для патрулирования (FF = не ограничен) // +45 db = базовый Y для патрулирования (FF = не ограничен) // +46 db = радиус патрулирования (FF = не ограничен) // +47 db = ??? // +48 8*bb флаги (463253)str[8] str=(*[67CD08])[номер подтипа *5C] // 00000001 - 0x00 Рыцарь // 00000002 - 0x01 Клирик // 00000004 - 0x02 Рейнджер // 00000008 - 0x03 Друид // 00000010 - 0x04 Алхимик // 00000020 - 0x05 Волшебник // 00000040 - 0x06 Демон // 00000080 - 0x07 Еретик // 00000100 - 0x08 Рыцарь смерти // 00000200 - 0x09 Некромант // 00000400 - 0x0A Лорд // 00000800 - 0x0B Чернокнижник // 00001000 - 0x0C Варвар // 00002000 - 0x0D Боевой маг // 00004000 - 0x0E Хозяин зверей // 00008000 - 0x0F Ведьма // 00010000 - 0x10 Путешественник // 00020000 - 0x11 Элементалист // 00040000 - 0x12 sprite лодки (только внешне, нельзя плавать)// +49 dd = полное перемещение начальное // +4D dd = оставшиеся перемещения // +51 dd = опыт // +55 dw = уровень Visited[10]; // Флаги посещения объектов (как HE:V)// 01 - тип группировки юнитов // 02 - разрешена тактика для героя_u4[18]; // +7F db int Ct[7]; // +91 dd*7 = тип существ (-1 = нет) int Cn[7]; // +AD dd*7 = кол-во SSkill[28]; // +C9 db*1C = уровень вторич.навыков //один байт = уровень этого навыка: 1,2,3; 0=нет// * bitfields of 32 visited object types per hero // +57 dd Камень знаний (1=посещён, 2=нет) // +5B dd Башня Марлетто // +5F dd Сад откровения // +63 dd Лагерь наёмников // +67 dd Звёздное колесо // +6B dd Древо знаний // +6F dd Библиотека просвещения // +73 dd Арена // +77 dd Школа магии // +7B dd Школа войныSShow[28]; // +E5 db*1C = порядок отображения вторич.навыков в окне героя (1,2,3,4,5,6) // +101 dd = кол-во вторич.навыков RefData1; // +105 db 4814D3 + … RefData2; // +107 db 4DA466 // +105 dd временные модификаторы морали (HE:R7)// +C9 = Поиск пути // +CA = Стрельба // +CB = Логистика // +CC = Разведка // +CD = Дипломатия // +CE = Навигация // +CF = Лидерство // +D0 = Мудрость // +D1 = Мистицизм // +D2 = Удача // +D3 = Баллистика // +D4 = Орлиный глаз // +D5 = Некромантия // +D6 = Имущество // +D7 = Магия огня // +D8 = Магия воздуха // +D9 = Магия воды // +DA = Магия земли // +DB = Грамотность // +DC = Тактика // +DD = Артиллерия // +DE = Обучение // +DF = Нападение // +E0 = Оборона // +E1 = Интеллект // +E2 = Волшебство // +E3 = Сопротивление // +E4 = Первая помощьByte _u6[9]; // +109 // +10D db = сколько раз в этот день сколдовал Дверь измерений // +10E dd = сила, с которой сколдована Маскировка (0..3), -1 = не активно // +112 dd = сила, с которой сколдован Полёт (0..3), -1 = не активно // +116 dd = сила, с которой сколдовано Хождение по воде (0..3), -1 = не активно // +11A db - модиф.морали до след.битвы (оазис), накапливаются // +11B db - модиф.удачи до след.битвы // +11C db = 1, герой СПИТ // +129 dd = сила, с которой сколдовано Видение (0..3), -1 = не активно int IArt[19][2]; // +12D dd*2*13h = артефакты dd-номер, dd-номер закла (или -1) (книга 3,FF) FreeAddSlots; // +1C5 db = количество пустых доп. слотов слева char LockedSlot[14]; // +1C6 int OArt[64][2]; // +1D4 dd*2*4 = арт в рюкзаке dd-номер, dd-номер закла(или -1) Byte OANum; // +3D4 db = число артефактов в рюкзаке // +3D5 dd = пол (как HE:R2) // +3D9 db = есть настроенная биография // +3DA dd → биография Byte _u7[12]; // +3DE Spell[70]; // +3EA db*46 = заклинание (есть/нет) LSpell[70]; // +430 db*46 = уровень заклинания (>=1) char PSkill[4]; // +476 db = Атака // +477 db = Защита // +478 db = Сила магии // +479 db = Знания Byte _u8[24]; // +47A * AI stuff// нач. иниц. при найме 0xFFF9FFFF // 00000001 - 0x00 Волшебный колодец // 00000002 - 0x01 Конюшни // 00000004 - 0x02 Буй // 00000008 - 0x03 Лебединое озеро // 00000010 - 0x04 Идол удачи (дни 1..6) // 00000020 - 0x05 Фонтан удачи (-1 удача) // 00000040 - 0x06 Водоворот // 00000080 - 0x07 Оазис // 00000100 - 0x08 Храм (дни 1..6) // 00000200 - 0x09 Кораблекрушение // 00000400 - 0x0A Склеп // 00000800 - 0x0B Ветхий корабль // 00001000 - 0x0C Пирамида // 00002000 - 0x0D Домик фей // 00004000 - 0x0E Фонтан молодости // 00008000 - 0x0F Русалки // 00010000 - 0x10 Флаг битвы // 00020000 - 0x11 ? // 00040000 - 0x12 В лодке (герой на воде) // 00080000 - 0x13 ? // 00100000 - 0x14 Сирены // 00200000 - 0x15 Гробница воина // 00400000 - 0x16 Максимум удачи (как HE:R6) // 00800000 - 0x17 Максимум морали (как HE:R5) // 01000000 - 0x18 WOGSHADOWFAX (чит-код на 1 млн. очков хода) // 02000000 - 0x19 Идол удачи (день 7) // 04000000 - 0x1A Храм (день 7) // 08000000 - 0x1B Фонтан удачи (+1 удачи) // 10000000 - 0x1C Фонтан удачи (+2 удачи) // 20000000 - 0x1D Фонтан удачи (+3 удачи) // 40000000 - 0x1E ? // 80000000 - 0x1F ?