|
|
vulcancolak

 
   
Famous Hero
|
posted July 01, 2025 09:54 AM |
|
|
|
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
|
|
vulcancolak

 
   
Famous Hero
|
posted December 01, 2025 08:56 PM |
|
|
|
Hourglass animation? Is it seems different than normal?
|
|
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
|
|
vulcancolak

 
   
Famous Hero
|
posted August 02, 2026 12:51 PM |
|
|
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.
|
|
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.
|
|
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
|
|
vulcancolak

 
   
Famous Hero
|
posted August 03, 2026 10:32 AM |
|
|
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"
|
|
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>].
|
|
vulcancolak

 
   
Famous Hero
|
posted August 05, 2026 12:51 PM |
|
|
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.
|
| |
|
|