跟其他人發的不同代碼
//疾風N合一
[enable]
//疾風N合一 for TWMS0107
//修改:悠哉o傻貓
//原作:jajaja, 感謝99,A,D,L,N,W,W(縮寫)
//原出處:疾風之莊
//功能:走,跳怪方向【左趴往左,右趴往右,坐下停止控制】、笨怪、58秒損血一次、
//紅點不停、跳怪不跳、致命的吸引力【定點及跟隨角色二種模式,啟動方式提示:5秒】
//Address:00415DB6
//EIP:MyLR
//=================================================
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)
//--------↓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 [00B38708],00000000
je MyLR1
//mov eax,[00B38708]
//mov eax,[eax+18]
//cmp eax,0
//jne MyLR1
pop eax
cmp dword ptr [esp], 00945C72
je GoLR
cmp dword ptr [esp], 0094608C
je JmpLR
cmp dword ptr [esp], 00944C09
je MyStupid
cmp dword ptr [esp], 008E7D36
jz MyNoBack
cmp dword ptr [esp], 00946044
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 00945C7C
//================================
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 0094608E
//================================
MyCharX:
mov eax [00B386F4]
mov eax, [eax+0E50]
ret
//================================
MyState:
push eax
mov eax, [00B386F4]
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 00944C54
cmp [esi+0000023c],edi
lea ecx,[esi+0000023c]
je 00944C54
jmp 00944C3A
//============================
MyNoBack:
add esp,4
//--------↓PG無敵↓--------------
push eax
push ebx
push ecx
push edx
xor edx, edx
mov eax,[00B0D934]
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+00001A20]
push FFFF1D70 //原始值=FFFFFA24,修改此處可更改無敵秒數
jmp 008E845F
//============================
MyNoJmp:
add esp,4
jmp 00946058
00415DB2:
jmp MyLR
[disable]
00415DB2:
db 5f 5e 5d 5b c3
dealloc(MyLR)
unregistersymbol(MyLR)
dealloc(MyDir)
dealloc(MyCt)
dealloc(MyPt1) |