Current time: 14.12.2018, 22:26 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
feanor Offline

Posts: 497
Post: #751

Code:
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  /

};
(This post was last modified: 26.08.2015 01:09 by feanor.)
26.08.2015 01:08
Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #752

Большое спасибо.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
26.08.2015 10:16
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #753

Изменение координат отображения WoG диалогов DL
thanks gamecreator, sergroj.


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
10.09.2015 18:17
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Offline
Administrators

Posts: 2661
Post: #754

igrik, т.е. можно показывать диалог не по центру?
Если да, то очень большое спасибо. Я хотел такое в BH сделать, но прямо и без артефактов не получалось.


10.09.2015 18:38
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #755

да, ты сам можешь динамически изменять координаты, НО перед вызовом диалога. Как обновлять/перерисовывать диалог на лету я так и не разобрался
(17.07.2015 16:11)gamecreator Wrote:  Ну и не забыть перерисовать диалог:
hdlg->0x7299FD(-1
!!SN:E7510525/1/-1; вызывает у меня вылет, тут видимо я не так что-то понял

upd: Algor, если будут вопросы или нужна помощь по этой функции, обращайся. Например можно ее дописать, чтобы прилеплять диалог к правому/ левому/нижнему/верхнему бокам экрана


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
10.09.2015 18:41
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 3168
Post: #756

igrik, может тут есть что-то для обновления?


10.09.2015 19:30
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #757

жаль, но нет


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
10.09.2015 19:40
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 3168
Post: #758

igrik, а обновлять такой смещённый диалог через DL:S уже не помогает?
ведь это и есть обновление, если грубо Unsure


10.09.2015 19:47
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #759

Нет, DL:S тоже не помогает

ппц, не прошло и года с того момента, как мне нужна была эта функция


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
10.09.2015 22:24
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #760

(10.09.2015 18:41)igrik Wrote:  Как обновлять/перерисовывать диалог на лету я так и не разобрался
(17.07.2015 16:11)gamecreator Wrote:  Ну и не забыть перерисовать диалог:
hdlg->0x7299FD(-1
!!SN:E7510525/1/-1; вызывает у меня вылет, тут видимо я не так что-то понял
-> - это же thiscall, а слева от стрелки - this.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
11.09.2015 01:08
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #761

хех, клевое обозначение...
Но всё равно не работает. Скорее всего адрес не тот, либо нужны доп. параметры


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
11.09.2015 09:38
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #762

А можно пример кода и диалога? Потому что вникать что такое DL, если честно, сейчас не хочется.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
11.09.2015 11:53
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #763

Запаковано в виде мода. Скачать
Это диалоговое окно выбора режима битвы. Нападешь на монстра - появится это окно. На нажатие клавиши "7" происходит отрисовка диалога в других координатах. Клавиша "5" просто информация.


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
11.09.2015 12:22
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #764

А где вариант с thiscall, который не работает?


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
11.09.2015 15:11
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1486
Post: #765

там же. строка 054. Записана так:


upd, и да, я пробовал и так !!SN:E7510525/2/-1; результат тот же = вылет
а еще:


Скачать HoMM3 ERA 2.7.7 (Repack: Rus & HD) || (wogNativeDialogs)
11.09.2015 15:17
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2018 MyBB Group