//=================================================
[enable]
//疾風N合一 for TWMS0103
//原作:jajaja, 感謝99,A,D,L,N,W,W(縮寫)
//原出處:疾風之莊
//功能:走,跳怪方向【左趴往左,右趴往右,坐下停止控制】、笨怪、58秒損血一次、PG無敵、跳怪掉落
//紅點不停、跳怪不跳、致命的吸引力【定點及跟隨角色二種模式,啟動方式提示:5秒】
//=================================================
alloc(MyLR,1024)
registersymbol(MyLR)
alloc(MyDir,4)
alloc(MyCt,4)
alloc(MyPt1,4)
label(MyLR1)
label(GoLR)
label(GoLR1)
label(GoLR2)
label(GoLR3)
label(GoLR4)
label(GoLR5)
label(GoLRback)
label(JmpLR)
label(JmpLR1)
label(JmpLR2)
label(JmpLRback)
label(MyStupid)
label(MyNoBack)
label(MyState)
label(MyCharX)
label(MyNoJmp)
label(LRDir1)
label(LRDir2)
label(LRDir3)
label(LRDir4)
label(LRDir5)
label(LRDir6)
registersymbol(VarMax●禁私人部落格●無敵
registersymbol(VarMin●禁私人部落格●無敵
alloc(VarMaxBloom, 4) //PG無敵
alloc(VarMinBloom, 4) //PG無敵
label(CBR100) //PG無敵
registersymbol(LR)
alloc(LR,4)
registersymbol(MAXONE)
alloc(MAXONE,2048)
label(MAXONE00)
label(ONE)
registersymbol(ONEKEY)
alloc(ONEKEY,4)
registersymbol(ONEKEY00)
alloc(ONEKEY00,4)
registersymbol(JUPKEY)
alloc(JUPKEY, 4)
label(JUP)
label(JUP2)
label(TWO)
label(TWO00)
registersymbol(JUPKEY2)
alloc(JUPKEY2, 4)
//--------↓PG無敵↓--------------
VarMaxBloom: //
dd 2 //最高損血量: 初始值: 2滴, 採用16進次
VarMinBloom: //
dd 1 //最低損血量: 初始值: 1滴, 採用16進次 (設0=miss)
MyDir:
DD 1
MyLR:
pop edi
pop esi
pop ebp
pop ebx
push eax
cmp [00B0B918],00000000
je MyLR1
pop eax
cmp dword ptr [esp], 0092147D
je GoLR
cmp dword ptr [esp], 00921897
je JmpLR
cmp dword ptr [esp], 00920414
je MyStupid
cmp dword ptr [esp], 008C6390
jz MyNoBack
cmp dword ptr [esp], 0092184F
jz MyNoJmp
ret
MyLR1:
pop eax
ret
//================================
GoLR:
add esp,4
call MyState
push 03
pop ecx
mov [edi+20],eax
xor edx,edx
div ecx
cmp [MyDir], 1
je GoLRback
cmp [MyDir], 3
je GoLR1
cmp [MyDir], 4
je GoLR3
cmp edx, [MyDir]
je GoLRback
mov [esi+000004D8],0
jmp GoLRback
GoLR1:
push eax
call MyCharX
jmp GoLR4
GoLR3:
push eax
mov eax,[MyPt1]
GoLR4:
cmp edx, 1
je GoLR5
jg GoLR2
cmp eax,[esi+1c4]
pop eax
mov [esi+000004D8],5
jl GoLRback
mov [esi+000004D8],0
jmp GoLRback
GoLR2:
cmp eax,[esi+1c4]
pop eax
mov [esi+000004D8],5
jg GoLRback
mov [esi+000004D8],0
jmp GoLRback
GoLR5:
pop eax
mov [esi+000004D8],0
GoLRback:
jmp 00921487
//================================
JmpLR:
add esp,4
call MyState
cmp [MyDir], 1
je JmpLRback
cmp [MyDir], 2
mov eax,2
je JmpLRback
cmp [MyDir], 0
mov eax,3
je JmpLRback
cmp [MyDir], 4
je JmpLR1
call MyCharX
jmp JmpLR2
JmpLR1:
mov eax,[MyPt1]
JmpLR2:
cmp eax,[esi+1c4]
mov eax,2
mov [esi+000004D8],5
jg JmpLRback
mov eax,3
JmpLRback:
push 03
jmp 00921899
//================================
MyCharX:
mov eax [00B0B904]
mov eax, [eax+0E50]
ret
//================================
MyState:
push eax
mov eax, [00B0B904]
mov eax, [eax+0398]
cmp eax, a
je LRDir1
cmp eax, b
je LRDir2
cmp eax, 14
je LRDir3
cmp eax, 15
je LRDir3
mov [MyCt], 0
jmp LRDir4
LRDir1:
mov [MyDir],2
cmp [MyCt], 32
ja LRDir5
inc [MyCt]
jmp LRDir4
LRDir2:
mov [MyDir],0
cmp [MyCt], 32
ja LRDir6
inc [MyCt]
jmp LRDir4
LRDir3:
mov [MyDir],1
jmp LRDir4
LRDir5:
mov [MyDir],3
jmp LRDir4
LRDir6:
mov [MyDir],4
call MyCharX
mov [MyPt1],eax
LRDir4:
pop eax
ret
//============================
MyStupid:
add esp, 4
xor edx,edx
mov ecx,0000ea60
div ecx
lea eax,[esi+00000238]
add edx,0002bf20
mov [esi+00000240],edx
mov edx,[esp+10]
cmp [eax],edx
je 0092045F
cmp [esi+0000023c],edi
lea ecx,[esi+0000023c]
je 0092045F
jmp 00920445
//====================================
MyNoBack:
add esp,4
//--------↓PG無敵↓--------------
push eax
push ebx
push ecx
push edx
xor edx, edx
mov eax,[00B0B904]
mov eax,[eax+18]
mov ecx, [VarMaxBloom]
mov ebx, [VarMinBloom]
sub ecx, ebx
jz CBR100
div ecx // edx:eax 除 ecx, 餘數放edx 簡單說 就是 除以差值 取餘數
CBR100:
add edx, ebx //餘數+上最小值
mov [ebp+8], edx //把結果丟進去扣寫
pop edx
pop ecx
pop ebx
pop eax
//--------↑PG無敵↑--------------
mov eax,[ebp-10]
lea ecx, [eax+00001A0C]
push FFFF1D70 //原始值=FFFFFA24,修改此處可更改無敵秒數
jmp 008C6AB9
//============================
MyNoJmp:
add esp,4
jmp 00921863
00414952:
jmp MyLR
//-----------------------------------------------
ONEKEY00:
DD 1 //總開關: 0.關 1.開
JUPKEY:
DD 1 //跳怪掉落1: 0.關 1.開
JUPKEY2:
DD 1 //跳怪掉落2: 0.關 1.開
//-----------------------------------------------
MAXONE:
cmp [ONEKEY00],0
je MAXONE00
cmp dword ptr [esp], 009221b6
je ONE
cmp dword ptr [esp], 009226B2
je TWO
ret
MAXONE00:
ret
//-----------------------------------------------
ONE:
add esp,4
cmp [JUPKEY],1
je JUP
fsubr qword ptr [ebp-18]
jmp 009221B9
//-----------------------------------------------
JUP:
cmp [ebx+0230],2
jne JUP2
mov [ebx+490],0
fsubr qword ptr [ebp-18]
add esp,10
fst qword ptr [ebp-18]
fcomp qword ptr [00a3ebc0]
jmp 00922545
//-----------------------------------------------
JUP2:
fsubr qword ptr [ebp-18]
jmp 009221B9
//-----------------------------------------------
TWO:
add esp,4
cmp [JUPKEY2],1
jne TWO00
fcomp qword ptr [ebp-08]
pop ecx
pop ecx
jmp 0092271C
TWO00:
fcomp qword ptr [ebp-08]
jmp 009226B5
005286f7:
jmp MAXONE
//-----------------------------------------------
[disable]
00414952:
db 5f 5e 5d 5b c3
dealloc(MyLR)
unregistersymbol(MyLR)
dealloc(MyDir)
dealloc(MyCt)
dealloc(MyPt1)
005286f7: //ok
DB c3
dealloc(MAXONE)
unregistersymbol(MAXONE)
dealloc(ONEKEY)
unregistersymbol(ONEKEY)
dealloc(ONEKEY00)
unregistersymbol(ONEKEY00)
dealloc(JUPKEY)
unregistersymbol(JUPKEY)
dealloc(JUPKEY2)
unregistersymbol(JUPKEY2) |