Heroes of Might and Magic Community
visiting hero! Register | Today's Posts | Games | Search! | FAQ/Rules | AvatarList | MemberList | Profile


Age of Heroes Headlines:  
5 Oct 2016: Heroes VII development comes to an end.. - read more
6 Aug 2016: Troubled Heroes VII Expansion Release - read more
26 Apr 2016: Heroes VII XPack - Trial by Fire - Coming out in June! - read more
17 Apr 2016: Global Alternative Creatures MOD for H7 after 1.8 Patch! - read more
7 Mar 2016: Romero launches a Piano Sonata Album Kickstarter! - read more
19 Feb 2016: Heroes 5.5 RC6, Heroes VII patch 1.7 are out! - read more
13 Jan 2016: Horn of the Abyss 1.4 Available for Download! - read more
17 Dec 2015: Heroes 5.5 update, 1.6 out for H7 - read more
23 Nov 2015: H7 1.4 & 1.5 patches Released - read more
31 Oct 2015: First H7 patches are out, End of DoC development - read more
5 Oct 2016: Heroes VII development comes to an end.. - read more
[X] Remove Ads
LOGIN:     Username:     Password:         [ Register ]
HOMM1: info forum | HOMM2: info forum | HOMM3: info mods forum | HOMM4: info CTG forum | HOMM5: info mods forum | MMH6: wiki forum | MMH7: wiki forum
Heroes Community > Heroes 4 - Lands of Axeoth > Thread: All of my questions (started by vulcancolak in July 2025)
All of my questions
vulcancolak
vulcancolak


Famous Hero
posted July 01, 2025 09:54 AM
Edited by vulcancolak at 16:35, 14 Dec 2025.

All of my questions

Hello everyone. I have many unanswered questions and decided to put all of them in one place. Maybe it helps who is looking for specific requests. I will flag them as "solved" if it is solved.

1) How can we change spells tiers WITHIN guild tab and shrines

2) SOLVED. Thanks to IliveInaBox
Why game is not running when i change these texts?

3) Can we edit Mayhem Staff damage amount

4) Can we "prevent" hire creatures from dwellings?

5) SOLVED. Thanks to Albyx
Have we found how to change opal, ruby and sapphire defense bonuses?

6) SOLVED. Thanks to NimoStar
Funny. I already made it and forgot. I do not remember how to do it again...

7) Can we turn off fog of war?

8) Have we discovered sight range of units or buildings?

9) SOLVED. Thanks to IliveInaBox  
How can i reimport strings.text file?

10) Can we change starting skills of Heroes?
____________
YouTube Volcanic Melodies

 View Profile
Ghost
Ghost


Undefeatable Hero
Therefore I am
posted November 13, 2025 08:38 PM

Sorry for another topic..

Thanks for sharing YouTube Volcanic Melodies.. I wondered your hourglass has animation.. My H4 hasn't animation.. So I left YouTube.. When I go to bed.. Later on I check hourglass in my machine.. Thus if I remember wrong.. And I take tablet then.. Now I write a post on mobile..
____________
Fight MWMs - stand teach

 View Profile
vulcancolak
vulcancolak


Famous Hero
posted December 01, 2025 08:56 PM

Hourglass animation? Is it seems different than normal?

 View Profile
Ghost
Ghost


Undefeatable Hero
Therefore I am
posted December 01, 2025 09:40 PM

I haven't a time.. My broken motherboard, so I can't check on standard, GS and WoW.. But I can check on laptop.. Maybe I remember wrong..
____________
Fight MWMs - stand teach

 View Profile
vulcancolak
vulcancolak


Famous Hero
posted August 02, 2026 12:51 PM
Edited by vulcancolak at 14:42, 02 Aug 2026.

Still i have a lot of work to do. And the saddest part i am developing my mod for few people. Me and my 3-4 friends. Years have been passed, played many games and still i need discoveries.
Nevon was shared many offsets and someone i do not remember was told me how to change Iron Plate armor value.
IF there was a list for ALL ITEMS it would be nice but i have to find rest of the items.

Currently i am looking here
0065CB24  PUSH 0x64
0065CB26  CALL FUN_0065F010
0065CB2B  ADD ESP,0x4
0065CB2E  LEA ECX,[ESP+0x20]
0065CB32  PUSH EAX
0065CB33  PUSH 0x7E
0065CB35  CALL FUN_00666F90

and trying to understand what is going on there. This is the Armor Value for Iron Plate. I know that. BUT i am trying to figure "how we know that? how we discovered"
I am still new with Reverse Engineering and i need to learn how to learn artifact offsets.

And dear moderators. I cannot edit my first message because of 1 years old. Please sent me PM and let me show you updated version of my post.

 View Profile
AlexSpl
AlexSpl


Responsible
Supreme Hero
posted August 02, 2026 04:53 PM
Edited by AlexSpl at 16:59, 02 Aug 2026.

Quote:
0065CB24  PUSH 0x64
0065CB26  CALL FUN_0065F010
0065CB2B  ADD ESP,0x4

This fragment calls __cdecl FUN_0065F010(0x64) with one argument 0x64 = 100. Is it ID of something?

Quote:
0065CB2E  LEA ECX,[ESP+0x20]
0065CB32  PUSH EAX
0065CB33  PUSH 0x7E
0065CB35  CALL FUN_00666F90

This is __thiscall FUN_00666F90(this, 0x7E, eax). A method of some class. 0x7E = 126. Again, does 126 have some meaning for you?

Quote:
This is the Armor Value for Iron Plate. I know that.

If you are sure, take a closer look to those two functions and try to get insight into what they really do.

 View Profile
AlexSpl
AlexSpl


Responsible
Supreme Hero
posted August 02, 2026 09:58 PM
Edited by AlexSpl at 23:07, 02 Aug 2026.

Well, I don't think those functions are what you are looking for.

Take a look here -

.text:0065CAFF                 push    0
.text:0065CB01                 push    0
.text:0065CB03                 push    71
.text:0065CB05                 mov     ecx, eax
.text:0065CB07                 call    sub_6669D0


This, at least, looks promising (thanks to RTTI) -

_DWORD *__thiscall sub_6669D0(_DWORD *this, int a2, int a3, int a4)
{
 _DWORD *result; // eax

 result = this;
 this[2] = a3;
 this[1] = 0;
 *this = &t_artifact_prop::t_effect<t_artifact_prop::t_single_spell,20>::`vftable';
 this[3] = a4;
 this[4] = a2;
 return result;
}


* * *
Btw, sub_65E980 has to do something with giving an ability -

mov     dword ptr [eax], offset const t_artifact_prop::t_give_ability::`vftable'

Here it takes 54 -

.text:00659E99                 push    0
.text:00659E9B                 push    54
.text:00659E9D                 mov     ecx, eax
.text:00659E9F                 call    sub_65E980


and here 51 -

.text:00659ECE                 push    0
.text:00659ED0                 push    51
.text:00659ED2                 mov     ecx, eax
.text:00659ED4                 call    sub_65E980


If we change 51 or 54 to something else, will we see any effect? If so, then the whole function sub_659450 is about artifacts' properties. Starting from -

.text:006594A2                 push    500
.text:006594A7                 push    ebp
.text:006594A8                 push    1
.text:006594AA                 push    1
.text:006594AC                 mov     ecx, eax
.text:006594AE                 call    sub_666530

 View Profile
vulcancolak
vulcancolak


Famous Hero
posted August 03, 2026 10:32 AM
Edited by vulcancolak at 20:04, 03 Aug 2026.


Thank you for your kindness. I was giving example but you really helped I already have the some of the offsets (thanks to devon) in here http://heroescommunity.com/viewthread.php3?TID=37350&PID=1579493#focus but i want to find all arfitacts. I know i am in the right place but still trying to understand how this "things" connected with Plate Mail.

This is the values of Platemail. Check the picture please.
https://ibb.co/fGnL0793
I can see armor value, -2 movement penalty and +2 spell cost penalty.

I know that but there are lot of artifacts in there. How should i know which section linked with which artifact?
I just want to learn follow trail. I want say something like that "I have followed data and reached Plate Mail within software"

 View Profile
AlexSpl
AlexSpl


Responsible
Supreme Hero
posted August 03, 2026 08:54 PM
Edited by AlexSpl at 21:46, 03 Aug 2026.

Different properties of artifacts are initialized by different calls to corresponding methods. You should search the whole sub_659450 for fragments like this -

.text:006594A2                 push    500
.text:006594A7                 push    ebp
.text:006594A8                 push    1
.text:006594AA                 push    1
.text:006594AC                 mov     ecx, eax
.text:006594AE                 call    sub_666530


and analyze every argument (push argument). Here 500 might mean 50 (Defense, Attack, whatever), ebp might be just 0, and so on.

So, for the Plate Mail you, probably, have to search for push 100 (to change its Melee and Ranged Defense bonus), then search for push -2 (decreases movement by 2), and, finally, for push 2 (increases the casting cost of all spells by 2 spell points). I think I saw both three pushes (push 100 several times even). Just note that push -2 is push 0xFE in the code.

The function sub_659450 ends @ 65E975h with retn (C3), it's big but manageable. For your convenience, note that push {byte} is 6A XX in hex, push {dword} is 68 XX XX XX XX in hex. Positive numbers, greater than 127, and negative numbers, smaller than -128, are pushed to the stack with push {dword} instruction.

Here is an example of spell points reduction for Magic Amplifier -

.text:0065D391                 push    -33
.text:0065D393                 push    0
.text:0065D395                 push    0
.text:0065D397                 call    t_spell_cost_base


To find it by yourself, you have to search for 6A DF, as 0xDF = -33 > -128.

Btw, if there is a table with artifacts' IDs, it might help to find needed fragments quicker.

.text:0065D22C                 push    36
.text:0065D22E                 mov     byte ptr [esp+0E8h+var_4], 19
.text:0065D236                 call    sub_661AF0
.text:0065D23B ; ---------------------------------------------------------------------------
.text:0065D23B                 add     esp, 4
.text:0065D23E                 mov     ecx, edi
.text:0065D240                 push    eax
.text:0065D241                 lea     eax, [esp+0E8h+var_D0]
.text:0065D245                 push    eax
.text:0065D246                 call    sub_667170
.text:0065D24B                 mov     edi, eax
.text:0065D24D                 push    30
.text:0065D24F                 push    1
.text:0065D251                 push    0
.text:0065D253                 mov     byte ptr [esp+0F0h+var_4], 20
.text:0065D25B                 call    sub_660090
.text:0065D260 ; ---------------------------------------------------------------------------
.text:0065D260                 add     esp, 0Ch


Here we have two numbers that probably stand for IDs - 19 and 20. sub_661AF0 gives an ability #36 [t_artifact_prop::t_give_ability] and sub_660090 gives some combat properties 30, 1 (true), 0 (false) [t_artifact_prop::t_effect<t_artifact_prop::t_combat,55>].

 View Profile
vulcancolak
vulcancolak


Famous Hero
posted August 05, 2026 12:51 PM
Edited by vulcancolak at 12:57, 05 Aug 2026.

Thank you Alex. Thank you but sadly still i do not understand
Yes, i have the all values but i don't know how to track. Currently trying to figure out how to find values of this item
60 Druids chain 0x00972298
But it will be nice if you can show me on discord. Maybe i will learn how to track offsets. My discord server is Volcanic Melodies you can find it on discovery. Do not get me wrong. IF you have time or want to help me. This is not a request. I am just trying to tell i am not capable enough to understand.
BUT if you can simply find and share offset just like this "go to here, these section includes abilities of x artifact" it is ok. I can give you the offset of the items but still i prefer to find by myself.

 View Profile
Jump To: « Prev Thread . . . Next Thread »
Post New Poll   Post New Topic   Post New Reply

Page compiled in 0.0578 seconds