Quote:
Originally Posted by jinianri
dead!!! already patched
|
I don't think so. This hack could not be working anymore but I doubt they fixed it for ever.
I don't know how benja did it but one of the possible ways to do it (i.e always use the strongest attack for blades) is
"simply" to
hook the CDPClient::SendMeleeAttack function (use MS detours for example) and always return the same function but with the first parameter equal to the strongest attack for blades (one possible value between these: 29, or 30 or 31 or 32)
Function prototype:
Code:
CDPClient::SendMeleeAttack ( DWORD dwAtkMsg, DWORD objid, int nParam2, int nParam3, FLOAT fVal )
=> Hook it and return something like:
Code:
SendMeleeAttack ( 30, objid, nParam2, nParam3, fVal )
Then everytime your blade hits a mob, it will send the strongest attack.
=> I didn't check it so I can not confirm but it should work
For more help....
The function to hook => it maybe be different tomorrow after a patch so you should be able to find it everytime using a byte signature for example or break on memory access to the target id (i.e DWORD objid) or referenced strings (this is the fastest way using CE) or with finding the network "packet Send" function (i.e WSASend) and analysing the stacktrace to find our function,...
Pointer class (always in ECX register for
thiscall calling convention with VC++ compiler) should be passed into the first parameter of the function to hook as an LPVOID (void*) or pushed to the stack directly using inline _asm if you prefer have "fun" and make the hack into 2 different ways...