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

 
Tavern Dweller
|
posted April 10, 2025 08:53 AM |
|
|
thanks alot for your effort
|
|
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?
|
|
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
|
|
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
|
|
jakisa

 
Tavern Dweller
|
posted April 24, 2025 01:40 PM |
|
|
yes i did it, thank you so much, you made my life
|
|
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.
|
|
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)
|
|
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.
|
|
|
|