Cтруктура командира

   HEX-конвертер:

Структура командира 0x128h (296).
Все смещения указаны в hex-нотации.

	Смещение		Описание
   // +00 dd = Доступность
   // +04 dd = Жив или мёртв  
   // +08 dd = Номер героя хозяина (ну и номер командира) 
   // +0C dd = Тип командира
   // +10 dd = Тип героя
   // +14 dd = Опыт в прошлых битвах
   // +18 dd = Если установить 1 = первичные навыки не будут изменяться с продвижением командира по уровням
   //                Если установить 0 = здоровье и урон будут автоматически прибавляться вместе с уровнем командира (CO:P)
   // +1C dd = Атака
   // +20 dd = Защита
   // +24 dd = Здоровье
   // +28 dd = Урон
   // +2C dd = Сила магии
   // +30 dd = Скорость
   // +34 dd = Сопротивление

   // +38 dd = Уровень Атаки
   // +3C dd = Уровень Защиты
   // +40 dd = Уровень Здоровья
   // +44 dd = Уровень Урона
   // +48 dd = Уровень Сила магии
   // +4C dd = Уровень Скорости
   // +50 dd = Уровень Сопротивления

_word_ arts[10][8]; // +54 = Номер артефакта; Кол-во проведённых с ним битв
_char_ name[32];    // +F4 = Имя
   // +114 dd = Старый опыт героя
   // +118 dd = Текущий опыт
   // +11C dd = Текущий уровень (при отображении добавляем +1)
specBon[2];	// +120 dd = Особые бонусы (сумма битов); Запрещённые бонусы (сумма битов)

// функция получения адреса структуры командира inline _Npc_* GetNpc(_int_ hero_id) {return ((_Npc_ *)(0x28620C0 + 296 * hero_id));}

// функция получения строк из командирского текстовика znpc00.txt:
inline char* Get_ITxt(int StrNum, int ItemNum) {return CALL_3 (char*, __cdecl, 0x77710B, StrNum, ItemNum, 0x2860724);}

// функция получения Имени и Биографии из файла znpc00.txt:
inline char* Get_ITxtBio(int StrNum, int ItemNum) {return CALL_3 (char*, __cdecl, 0x77710B, StrNum, ItemNum, 0x286072C);}

// функция получения силы первичного командирского навыка: inline int Get_NpcSkillPower(_Npc_* npc, int skill_id) {return CALL_2 (int, __thiscall, 0x769460, npc, skill_id);}