下面是我的走路副程式c++寫的
我記得以前都可以用
今天再用的時候一直無法走到座標點
後來我就把座標改成固定值
我在監視ecx+0x20 ecx+0x24 ecx+0x28的時候發現好像座標都無法正確寫入
ecx+0x20 ecx+0x24變成一個很小的值
ecx+0x28變成x座標的值了
@@有大大知道原因嗎
void MyCall4(float XZY[3])//走路
{
int* W2I_GOTO_COS_CALL1=(int*)0x0045F450;
int* W2I_GOTO_COS_CALL2=(int*)0x00462F80;
int* W2I_GOTO_COS_CALL3=(int*)0x0045F850;
float x=2668;//XZY[0];
float z=228;//XZY[1];
float y=-1779;//XZY[2];
_asm{
pushad
mov eax, [W2I_BASE_ADDR]
mov eax, dword ptr [eax+0x1c]
mov esi, dword ptr [eax+0x20]
mov ecx, dword ptr [esi+0xBF4]
push 1
call W2I_GOTO_COS_CALL1
mov edi, eax
mov ecx, dword ptr [esi+0xBF4]
mov ecx, dword ptr [ecx+0x30]
mov ecx, dword ptr [ecx+0x4]
mov eax, x
mov [ecx+0x20], eax
mov eax, z
mov [ecx+0x24], eax
mov eax, y
mov [ecx+0x28], eax
lea eax, dword ptr [ecx+0x18]
push eax
push 0
mov ecx, edi
call W2I_GOTO_COS_CALL2
push 0
push 1
push edi
mov ecx, dword ptr [esi+0xBF4]
push 1
call W2I_GOTO_COS_CALL3
popad
}
} |