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
kkfkkkfk
kkfkkkfk


Adventuring Hero
Nothing is impossible
posted April 28, 2025 06:28 PM

1. Learning C++, most games are written in C++, including H4. In IDA, the code within the TEXT segment can be converted to C++code by pressing F5.

2.The maximum movement  and the current movement  are two different memory data.You need to modify multiple functions related to it.Add the memory address of some creatures movement in CE, move two steps,  right-click on the memory address, and search for what modified this address ,than end the round. You can find some functions related to the movement force.


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

Tavern Dweller
posted April 29, 2025 06:52 AM

Thank you I already solved it by using search next/previous B004h in Hexeditor. It has a seperate adress for day one movement. The max movement (right number) doesn't affect anything it just displays the number i think.
If anyone needs this in the future here are the 3 adresses: 2511A0, 2523B0, 251140

Another Question: Can I have permission to use or Summon Gargantuan Spell Icon and Raise Dark Champion Spell Icon?

Finally: I asked already somewhere else, would it be hard to make Combat ability not give Armor but increase Damage? So wheater you pick Archery or Melee they would both benefit from it. When playing multiplayer I always disliked that you must take it to not die and so Advanced classes are more or less pointless.
And then increase Defense stat just by level up (I think 3 per level would be good because most multiplayer maps i played you reach ~ Level 18)

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


Adventuring Hero
Nothing is impossible
posted April 29, 2025 09:43 PM


1. Allowed-to-use.

2.I don't think it's difficult. It depends on your proficiency in programming. Not adding defense only requires modifying the code of combat skills(Erase code related to combat skills),Or change the parameter to 1 (at 00989170 ,no combat ~ GM combat).
It is not recommended to change the parameter.

3.Increasing defense based on level already exists in EQ and can be modified.You can also write one yourself.


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

Page compiled in 0.0307 seconds