一个1631走路Call写法
游戏内CALL调用:0048FF7D|> \8B8F EC130000 MOV ECX,DWORD PTR DS:
0048FF83|.6A 01 PUSH 1
0048FF85|.6A 01 PUSH 1
0048FF87|.E8 54070100 CALL 004A06E0
0048FF8C|.84C0 TEST AL,AL
0048FF8E|.0F84 53010000 JE 004900E7
0048FF94|.8B8F EC130000 MOV ECX,DWORD PTR DS:
0048FF9A|.6A 01 PUSH 1
0048FF9C|.E8 DFF60000 CALL 0049F680 //走路call1
0048FFA1|.8D5424 1C LEA EDX,DWORD PTR SS:
0048FFA5|.8BF0 MOV ESI,EAX
0048FFA7|.52 PUSH EDX
0048FFA8|.6A 02 PUSH 2
0048FFAA|.8BCE MOV ECX,ESI
0048FFAC|.E8 0F580100 CALL 004A57C0 //走路call2
0048FFB1|>8B8F EC130000 MOV ECX,DWORD PTR DS: //走路偏移
0048FFB7|.6A 00 PUSH 0
0048FFB9|.56 PUSH ESI
0048FFBA|.6A 01 PUSH 1
0048FFBC|.E8 FFFB0000 CALL 0049FBC0 //走路call3
0048FFC1|.5F POP EDI
0048FFC2|.5E POP ESI
0048FFC3|.5D POP EBP
0048FFC4|.5B POP EBX
0048FFC5|.81C4 88000000 ADD ESP,88
0048FFCB|.C2 0400 RETN 4
-------------------------------------------------------------------------
void CallGotoCoordinates(float X, float Y, float Z)
{
BOOL IsFlying = (W2I_ROLE_POSITION>0);
_asm
{
pushad
moveax, W2I_BASE_ADDR
moveax,
movesi,
movecx, //偏移
push 1
movedx, W2I_GOTO_COS_CALL1
call edx
movedi, eax
movecx, //偏移
movecx,
movecx,
moveax, X
mov, eax
moveax, Z
mov, eax
moveax, Y
mov, eax
leaecx,
push ecx
push IsFlying
movecx, edi
movedx, W2I_GOTO_COS_CALL2
call edx
push 0
push 1
push edi
movecx, //偏移
push 1
movedx, W2I_GOTO_COS_CALL3
call edx
popad
}
}
着玩意还是很有用处的。。。 好东西,谢谢楼主! 看完了 回复一下 不知道说什么 好好的帖子,必须得顶起 着玩意还是很有用处的。。。
页:
[1]