prt 發表於 2019-5-15 23:32:43

TwMS v216.1 ICS 座標左右走(指定範圍)

//TwMS v216.1 ICS 座標左右走(指定範圍)
//Author: Onion
//修改:   PearDelicious, Thx to MS88088

RegisterSymbol(SwitchLR)
RegisterSymbol(X)
RegisterSymbol(RBound)
RegisterSymbol(LBound)
Alloc(AutoLRICS,512)
Alloc(MyLR,4)
Alloc(X,4)        //初始位置
Alloc(Step,4)
Alloc(LBound,4)        //左方距離
Alloc(RBound,4)        //右方距離
Alloc(SwitchLR,4)
Label(InitFun)
Label(AutoLR)
Label(GetWall)
Label(GetChrX)
Label(GoRight)
Label(GoLeft)

//-----------------------------------------------
LBound:
DD 1A       //距離 16進制 1A=26
RBound:
DD 12C     //距離 16進制 12C=300
X:
ReadMem([[+BE38]+34]+60, 4)
//-----------------------------------------------

SwitchLR:
DD 01
Step:
DD 0
MyLR:
DD 1 //開啟後先向右走

AutoLRICS:
Cmp ,009C1EE0
Jne GetFocus
Mov Eax,
Cmp Eax,0
je  InitFun
Mov Eax,
Cmp Eax,01
jne GetFocus
Mov ,AutoLR
Jmp GetFocus

InitFun:
Mov ,1
Mov Eax,
Sub Eax,
Mov ,Eax
Mov Eax,
Add Eax,
Mov ,Eax
Ret

AutoLR:
Call GetWall
Mov  ,Eax
Xor  Ecx,Ecx
Xor  Eax,Eax
Cmp  ,Eax
Jmp  009C1D02

GetWall:
call GetChrX
Mov  Ecx,
Sub  Eax,Ecx
Cmp  Eax,0
Jle  GoRight
call GetChrX
Mov  Ecx,
sub  Ecx,Eax
cmp  Ecx,0
Jle  GoLeft
Mov  Eax,
Ret

GetChrX:
Mov Eax,
Mov Eax,
Mov Eax,
Mov Eax,
ret

GoRight:
Mov ,1
Mov Eax,1
Ret

GoLeft:
Mov ,FFFFFFFF
Mov Eax,FFFFFFFF
Ret

03C2AEC8:
DD AutoLRICS


03C2AEC8:
DD GetFocus

DeAlloc(LBound)
DeAlloc(RBound)
DeAlloc(Step)
DeAlloc(X)
DeAlloc(MyLR)
DeAlloc(AutoLRICS)
UnRegisterSymbol(SwitchLR)
UnRegisterSymbol(X)
UnRegisterSymbol(RBound)
UnRegisterSymbol(LBound)
頁: [1]
查看完整版本: TwMS v216.1 ICS 座標左右走(指定範圍)