这里是1.10f的代码,不提供1.13c的代码,需要改1.13c可以根据1.10f的代码自己分析,或者找我定制。
D2Game.dll+B4030
mov eax,[esp+34]
push eax
mov edx,esi
push ebx
call D2Game.dll+F6EA6 -> 劫持到自定义函数
test eax,eax
D2Game.dll+F6EA6
mov eax,[esp+08] ; 获取Y坐标
push 4
push 1
push eax ; 使用Y坐标作为参数
mov eax,[esp+10] ; 获取X坐标
push eax ; 使用X坐标作为参数
test ebp,ebp ; 是否有所有者?(在此AI中,pOwner此时存储在EBP中)this AI, at this point)
je D2Game.dll+F6EC8 ; 如果不是,就使用WL
cmp dword ptr [ebp+00],00 ; 是否为玩家类型的单位?
jne D2Game.dll+F6EC8 ; 如果它们不是,则使用WL
cmp dword ptr [ebp+10],03 ; pOwner是否正在使用RN动画?
jne D2Game.dll+F6EC8 ; 如果它们不是,则使用WL
push F ; 以 RN 作为参数
jmp D2Game.dll+F6ECA ; 跳过WL使用
push 2 ; 以WL作为参数
push 0 ;(不需要,因为该函数已使用x\y坐标)
call D2Game.dll+A0240 ; 调用标准的AI_Approach函数
ret 8 ; 返回至原版代码
D2Game.dll+B414F
mov ecx,[esp+40]
push 64 ; 100额外速度
push ecx
xor edx,edx
mov ecx,esi ; monster
call D2Game.dll+A01B0
mov ecx,edi
mov edx,esi
mov eax,[esp+38]
push ebx
push ebp
call D2Game.dll+A04C0 -> 劫持到D2Game.0xA04C0(approach_RN)
test eax,eax
jne D2Game.dll+B45E1
把D2Game.dll+B4169 改为 E852C3FEFF
把D2Game.dll+B4038 改为 E8692E0400
把d2game.dll+F6EA6改为8B4424086A046A01508B4424105085ED7410837D0000750A837D100375046A0FEB026A026A00E86F93FAFFC20800CC