Quote:
Originally Posted by griswald
i have no clue about the skill function, im guessing it would be just pushing the arguments into stack then calling the function? I understand if you want to keep the method secret. I just want to learn how to do this, since i see you already have everything figured out in your cooperative >< Thanks for any help bro
first of all maybe i should learn how to find functions in general. I don't understand the first step you guys used to find functions. Do you just go through the whole assembly to see what everything is doing? Or do you somehow narrow a call down and breakpoint and see if it is the function. If so how do you narrow it down is what im asking.
~griswald
|
The easiest way for finding specific functions inside CO (this is just my opinion) is using Cheat Engine or ollydbg, I prefer Cheat Engine.
If you want to find the skill use function, you could, for example, try finding the address that contains your current selected skill with Cheat Engine, and then find out what instructions that accesses that address when you use a skill in CO.
This is taken directly from my COoperative (written in VB6):
Code:
Private Function UseSkill()
Dim ASM As New clsASM
With ASM
.Pushad
.Push &H0
.Push (targetid)
.Push (skill)
.Mov_ESI &H5DABB8
.Mov_ECX_ESI
.Mov_EAX &H4EACEA
.Call_EAX
.Popad
.Ret
End With
ASM.Run_ASM (pid)
End Function
The "Use skill" function inside Conquer is located at 004966E5 and looks like this:
Code:
004966E5 - 6a 00 - push 00
004966E7 - ff 77 50 - push [edi+50] [COLOR="YellowGreen"]'(This pushes the skill ID - e.g. 1095 (Hexadecimal: 0x447) for Stig)[/COLOR]
004966EA - ff b3 4c f3 0a 00 - push [ebx+000af34c] [COLOR="YellowGreen"]'(This pushes the target/player ID)[/COLOR]
004966F0 - 8b ce - mov ecx,esi [COLOR="YellowGreen"]'(ESI must be 005DABB8 (for patch 5125 Conquer.exe's))[/COLOR]
004966F2 - e8 f3 45 05 00 - call 004eacea