Code:
#define o_Npc ((_Npc_*)0x28620C0) // получение структуры командира
// Структура командира 0x128h (296)
NOALIGN struct _Npc_
{
_dword_ on; // 0x00 +0 Доступность
_dword_ alive; // 0x04 +4 Жив_или_мёртв
_dword_ id; // 0x08 +8 Номер_героя_хозяина (ну и номер командира)
_dword_ type; // 0x0C +12 Тип_командира
_dword_ type_Hero; // 0x10 +16 Тип_героя
_dword_ LastExpaInBattle; // 0x14 +20 Опыт в прошлых битвах
_dword_ CustomPrimary; // 0x18 +24 Если вы установить 1 (вкл), первичные навыки не будут изменяться с продвижением командира по уровням
// Если установить 0, то здоровье и урон будут автоматически прибавляться вместе с уровнем командира (из ERM Help = CO:P)
_dword_ attack; // 0x1C +28 Атака
_dword_ defence; // 0x20 +32 Защита
_dword_ hit_points; // 0x24 +36 Здоровье
_dword_ damage; // 0x28 +40 Урон
_dword_ spell_power; // 0x2C +44 Сила_магии
_dword_ speed; // 0x30 +48 Скорость
_dword_ resistance; // 0x34 +52 Сопротивление
_dword_ lvl_attack; // 0x38 +56 Уровень_Атаки
_dword_ lvl_defence; // 0x3C +60 Уровень_Защиты
_dword_ lvl_hit_points; // 0x40 +64 Уровень_Здоровья
_dword_ lvl_damage; // 0x44 +68 Уровень_Урона
_dword_ lvl_spell_power; // 0x48 +72 Уровень_Сила_магии
_dword_ lvl_speed; // 0x4C +76 Уровень_Скорости
_dword_ lvl_resistance; // 0x50 +80 Уровень_Сопротивления
_word_ arts[10][8]; // 0x54 +84 Номер_артефакта; Кол-во проведённых с ним битв
_char_ name[32]; // 0xF4 +244 Имя
_dword_ old_expa; // 0x114 +276 Старый_опыт_героя
_dword_ now_expa; // 0x118 +280 Текущий_опыт
_dword_ now_level; // 0x11C +284 Текущий_уровень (при отображении добавляем +1)
_dword_ specBon[2]; // 0x120 +288 Особые_бонусы(сумма_битов); Запрещенные_бонусы(сумма_битов)
};
// функция получения адреса структуры командира
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);}
// функция получения строк из командирского текстовика "znpc01.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);}