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: How can i revert Dragon Strenght to 100 % in 3.55
Thread: How can i revert Dragon Strenght to 100 % in 3.55
jakisa
jakisa

Tavern Dweller
posted April 07, 2025 11:32 AM
Edited by jakisa at 07:52, 08 Apr 2025.

How can i revert Dragon Strenght to 100 % in 3.55

So I like that in 3.55 Prayer affects not only Life Units, but I dislike that Dragon Strength is only 66% bonus.
So I thought I try to change Dragon Strenght
I found out that the change has to be in the h4.dll file, because when i use h4mod.exe from 3.51 with h4.dll from 3.55 it still applies 66%

So I tried to change and test seperately each 42(=66 dez) hex with 64(=100 dez) ... no change in Dragon Strenght

Then I tried the same with A6(= 166 dez) with C8(=200 dez), also no change

What else could I try?

Edit: Found a solution with that chinese tool from nosence

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
kkfkkkfk
kkfkkkfk


Adventuring Hero
Nothing is impossible
posted April 08, 2025 09:59 PM

This is not an integer, and in games, such percentage increases are related to floating-point numbers.
They always perform multiplication calculations.

The code is as follows:

//START
push    ebx
push    edx
push    eax
cdq
xor     ebx, ebx
mov     bl, 3      
idiv    bx
shl     eax, 1
pop     ebx
add     eax, ebx
pop     edx
pop     ebx
mov     edi, eax
retn
//END

0x0003da7 in hex editor
mov     bl, 3  
//Change 3 to 2
mov     bl, 2

The effect of Dragon Strength will not diminish.




 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
jakisa
jakisa

Tavern Dweller
posted April 10, 2025 08:53 AM

thanks alot for your effort

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
jakisa
jakisa

Tavern Dweller
posted April 17, 2025 09:42 AM

kkfkkkfk said:
This is not an integer, and in games, such percentage increases are related to floating-point numbers.
They always perform multiplication calculations.

The code is as follows:

//START
push    ebx
push    edx
push    eax
cdq
xor     ebx, ebx
mov     bl, 3      
idiv    bx
shl     eax, 1
pop     ebx
add     eax, ebx
pop     edx
pop     ebx
mov     edi, eax
retn
//END

0x0003da7 in hex editor
mov     bl, 3  
//Change 3 to 2
mov     bl, 2

The effect of Dragon Strength will not diminish.






since you know how this stuff works, can you tell how you would approach to change the adventure movement formula? let's say i want to change 12 + 0.44 creature movement to 18 + 0.44 creature movement?
is there a point using cheat engine, making a map with only one creature and then typing in current movement, move a little and then look what adress it shows?
or use ida and look for integer 12 and change and test?

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
kkfkkkfk
kkfkkkfk


Adventuring Hero
Nothing is impossible
posted April 20, 2025 02:18 AM

Check function 651180 in IDA.
It is responsible for calculating the creatures movement.

To modify some complex content, you need to have some knowledge of assembly and a high-level programming language.
Otherwise, you wouldn't even know where to start.

Many data are not integers because there are decimal points in their calculation process.
For example, 30 movment is represented as 3000 in memory.
At this time, it is not possible to search for this data through CE, it requires analyzing the function first.

If you need more information, you can browse my mod tutorials.
https://wiki.biligame.com/heroes4/Modtutorials

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
jakisa
jakisa

Tavern Dweller
posted April 24, 2025 12:58 PM
Edited by jakisa at 13:32, 24 Apr 2025.

Thank you again. I am really amazed how people like you know this stuff
I actually do a coding course on boot.dev , but i still want to mod heroes 4 right away
how would you learn as a noob to understand assembly, any video recommendation?

i was able to find and change the 1200 movement floating point and change it to 1800, and while it displays new max movement in game(right number), the actual movement (left number) is still the same as before and not equal max movement at start of turn??
[url=https://postimg.cc/QVXdPVP8][/url]

[url=https://postimg.cc/MXdp8q2y][/url]


Edit: only day 1 the movement is lower/ as before change, maybe i can figure out why

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
jakisa
jakisa

Tavern Dweller
posted April 24, 2025 01:40 PM

yes i did it, thank you so much, you made my life

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Jump To: Next Thread »
Post New Poll    Post New Topic    Post New Reply

Page compiled in 0.0345 seconds