04.04.2015, 15:37
Berserker Wrote:Более того, я эту функцию перевёл под Эру и опубликовал здесь и на HC...Не видел. А в эровском хэлпе про нее что-нить сказано?
Berserker Wrote:Более того, я эту функцию перевёл под Эру и опубликовал здесь и на HC...Не видел. А в эровском хэлпе про нее что-нить сказано?
(30.03.2015 23:17)igrik Wrote: [ -> ] Обновляет весь диалог и при любом разрешении экрана (с HD и без него). В том числе и арты
PS: не без помощи Berserker'a
MOV ECX, [$6A3D90]
PUSH 0
MOV EAX, $5AF4E0
CALL EAX
MOV ECX, [$6A3D90]
PUSH 1
MOV EAX, $5AF4E0
CALL EAX
MOV ECX, [$6A3D90]
MOV EAX, $5B1200
CALL EAX
MOV ECX, [$6A3D90]
MOV ECX, [ECX + 56]
MOV EAX, [ECX]
MOV EAX, [EAX + 20]
PUSH $0000FFFF
PUSH $FFFF0001
PUSH 0
CALL EAX
MOV ECX, [$6992D0]
PUSH DWORD [$40144F] // 600
PUSH DWORD [$401448] // 800
PUSH 0
PUSH 0
MOV EAX, $603190
CALL EAX
NOALIGN struct _BattleStack_ : public _Struct_ // размер 0x548
{
_byte_ already_attack; // +0 ?
_byte_ field_01; // +1 ?
_byte_ field_02; // +2 ?
_byte_ field_03; // +3 ?
_byte_ field_04[4]; // +4 ?
_int32_ all_stacks_count; // +8 //полное число стеков у игрока
_byte_ field_0C[4]; // +12 0x0C
_dword_ field_10; // +16 0x10 //=-1 после атаки и/или ответа(????)
_byte_ field_14[8]; // +20 0x14 ?
_int32_ aim_to_move_or_shoot; // 28 +0x1C //позиция на поле боя (куда бежать/стрелять)
_byte_ fireshield; // +32 0x20 // огненный щит
_byte_ field_21[7]; // +33 0x21 ?
_int32_ clone_index; // +40 0x28 //номер стэка клона этого
_byte_ field_2C[4]; // +44 0x2C ?
_dword_ field_30; // +48 0x30 ?
_int32_ creature_id; // +52 0x34 // тип монстра
_int32_ hex_ix; // +56 0x38 //позиция на поле боя
_int32_ def_group_ix; // +60 0x3C
_int32_ def_frame_ix; // +64 0x40
_dword_ second_hex_is_right; // +68 0x44 //(=1) сдвиг в сторону второй занятой клетки для монстра с двумя клетками
_dword_ field_48; // +72 0x48 ?
_int32_ count_current; // +76 0x4C // число монстров
_int32_ count_before_attack; // +80 +0x50 // число монстров до удара по ним в тек. атаку
_dword_ field_54; // +84 0x54 ?
_int32_ lost_hp; // +88 0x58 потери здоровья последнего монстра
_int32_ army_slot_ix; // +92 0x5C номер слота of _Army_ (0...6), -1 - будет удален после битвы
_int32_ count_at_start; // +96 0x60 число монстров в начале битвы
_dword_ field_64; // +100 0x64 ?
_dword_ anim_value; // +104 0x68 = cranim.f[15] при инициализации
_int32_ full_hp; // +108 0x6C полное здоровье (исп. как база для лечения)
_bool32_ field_70; // +112 0x70 ?
//////////////////////////////////////////////////////////////////////////////////
_CreatureInfo_ creature;
//////////////////////////////////////////////////////////////////////////////////
//_int_ town; //+116 0x74
//_int_ level; //+120 0x78
//_char_* sound_name; //+124 0x7C
//_char_* def_name; //+128 0x80
//_int_ flags; //+132 0x84
//_char_* name_single; //+136 0x88
//_char_* name_plural; //+140 0x8C
//_char_* specification_description; //+144 0x90
//_int_ cost_wood; //+148 0x94
//_int_ cost_mercury; //+152 0x98
//_int_ cost_ore; //+156 0x9C
//_int_ cost_sulfur; //+160 0xA0
//_int_ cost_crystal; //+164 0xA4
//_int_ cost_jems; //+168 0xA8
//_int_ cost_gold; //+172 0xAC
//_int_ fight_value; //+176 0xB0
//_int_ AI_value; //+180 0xB4
//_int_ growth; //+184 0xB8
//_int_ horde_growth; //+188 0xBC
//_int_ hit_points; //+192 0xC0
//_int_ speed; //+196 0xC4
//_int_ attack; //+200 0xC8
//_int_ defence; //+204 0xCC
//_int_ damage_min; //+208 0xD0
//_int_ damage_max; //+212 0xD4
//_int_ shots; //+216 0xD8
//_int_ spells_count; //+220 0xDC
//_int_ advmap_low; //+224 0xE0
//_int_ advmap_high; //+228 0xE4
///////////////////////////////////////////////////////////////////////////////
_byte_ field_E8; // +232 0xE8 ?
_bool8_ is_1_killed; // +233 0xE9 =1, если умирал хоть один
_bool8_ is_killed; // +234 0xEA =1, если был убит весь стэк
_byte_ field_EB; // +235 0xEB ?
_int32_ current_creatures_spell_id; // +236 0xEC номер заклинания существа в тек раунде 0x50 Acid breath
_int32_ field_F0; // +240 0xF0 _byte_=1 перед атакой на него 441434
_int32_ side; // +244 0xF4 0 - attacker, 1 - defender
_dword_ index_on_side; // +248 F8 dd = номер стэка у стороны на поле боя
_dword_ field_FC; // +252 FC dd = ? что-то с магией
_dword_ field_100; // +256 100 dd 43DEA4
_dword_ field_104; // +260 104 dd 43DEAD
_dword_ field_108; // +264 108 dd
_dword_ field_10C; // +268 10C dd
_CreatureAnim_ cr_anim; // +272 0x110
_Def_* def; // +356 0x164 def монстра, загрузка: 43DA8E
_Def_* def_shot; // +360 0x168 def выстрела, загрузка: 43DA8E
_dword_ field_16C; // +364 0x16С ?
_Wav_* wav_move; // +368 0x170 звук перемещения (move), загрузка: 43DA8E
_Wav_* wav_attack; // +372 0x174 звук атаки (attk/wnce/shot), загрузка: 43DA8E
_Wav_* wav_wnce; // +376 0x178 звук 'колдует' (wnce), загрузка: 43DA8E
_Wav_* wav_shot; // +380 0x17C звук выстрела (shot), загрузка: 43DA8E
_Wav_* wav_kill; // +384 0x180 звук смерти (kill), загрузка: 43DA8E
_Wav_* wav_defend; // +388 0x184 звук обороны (wnce/dfnd), загрузка: 43DA8E
_Wav_* wav_ext1; // +392 0x188 звук дополнительный 1 (ext1), загрузка: 43DA8E
_Wav_* wav_ext2; // +396 0x18С звук дополнительный 2 (ext2), загрузка: 43DA8E
_dword_ field_190; // +400 0x190 ?
_int32_ active_spells_count; // +404 0x194 dd = количество уже наложенных заклинаний
_int32_ active_spell_duration[81]; // +408 0x198 есть заклинание (длительность) или нет
_int32_ active_spells_power[81]; // +732 0x2DC (сила действия заклинания)
_byte_ field_420[52]; // +1056 0x420 ?
_int32_ retaliations; // +1108 0x454 // 441B17 (кол-во ответов на атаку 0= не отв. на атаку)// настройка для грифонов 46D6A0
_int32_ bless_value; // +1112 0x458 Bless добавка к Max. Damage
_int32_ curse_value; // +1116 0x45C Curse убавка к Min. Damage
_int32_ field_460; // +1120 0x460 ?
_int32_ bloodlast_value;// +1124 0x464 Bloodlast добавка к Атаке с бонусами
_int32_ precision_value;// +1128 0x468 Precision добавка к Атаке с бонусами
_byte_ field_46C[32]; // +1132 0x46C ?
_int32_ king_type; // +1164 0x48C dd KING_123 тип (1=KING_1,2=KING_2,3=KING_3) // исп для расчета Slayer. Бонус 8 к Атаке: 0x4421D2
_int32_ field_490; // +1168 0x490 dd номер атакера по порядку??? уже атаковал??? (сбрасывается после первого удара)
_int32_ counerstrike_retaliations; // +1172 0x494 dd кол. доп. ответов на атаку, добавленных Counerstrike заклом
_byte_ field_498[40]; // +1176 0x498 ?
_bool8_ blinded; // +1216 0x4C0 db Blinded - снизить защиту (сбросить после?) при атаке на него (уст. перед ударом)
_bool8_ paralized; // +1217 0x4C1 db Paralized - снизить защиту (сбросить после?) при атаке на него (уст. перед ударом)
_bool8_ forgetfulness; // +1218 0x4C2 dd Forgetfulness - уровень (>2 - не может стрелять)
_byte_ field_4C3[25]; // +1219 0x4C3 ?
_int32_ defend_bonus; // +1244 0x4DC dd = величина бонуса при выборе защиты
_int32_ faerie_dragon_spell;// +1248 0x4E0 dd заклинание для сказ дракона
_byte_ field_4E4[100];
// +4EC dd 44152A
// +4F1 db 43DF88
// +514 dd
// +518 dd -> dd first \ adjusted stacks pointers
// +51C dd -> dd last /
// +524 dd
// +528 dd -> dd first \ adjusted to wich stacks pointers
// +52C dd -> dd last /
};
(17.07.2015 16:11)gamecreator Wrote: [ -> ]Ну и не забыть перерисовать диалог:!!SN:E7510525/1/-1; вызывает у меня вылет, тут видимо я не так что-то понял
hdlg->0x7299FD(-1