📄 calls.vb
字号:
Module Calls
Structure WanJia
Dim name As String
Dim id As Integer
Dim hp As Integer
Dim hpmax As Integer
Dim mp As Integer
Dim mpmax As Integer
Dim degree As Integer
Dim px, py As Single
Dim distance As Integer
Dim addr As Integer
Dim status As Integer
End Structure
Structure Guai
Dim name As String
Dim id As Integer
Dim hp As Integer
Dim hpmax As Integer
Dim mp As Integer
Dim mpmax As Integer
Dim degree As Integer
Dim px, py As Single
Dim distance As Integer
Dim addr As Integer
Dim status As Integer
Dim type As Integer
Dim attack As Boolean
End Structure
Structure Goods
Dim addr As Integer
Dim id As Integer '物品編號
Dim sysid As Integer '系統編號
Dim name As String
Dim num As Integer
Dim px, py As Single
Dim distance As Integer
End Structure
Structure Bag
Dim addr As Integer
Dim id As Integer
Dim name As String
Dim pos As Integer
Dim num As Integer
Dim max As Integer
Dim kind As Integer
End Structure
Structure Skill
Dim addr As Integer
Dim id As Integer
Dim name As String
Dim cool As Integer
Dim type As String
End Structure
Structure parameter
Dim 打坐 As Integer
Dim 取消打坐 As Integer
Dim 回城 As Integer
Dim 選怪 As Integer
Dim 放棄怪 As Integer
Dim 撿物 As Integer
Dim 普攻 As Integer
Dim 使用物品 As Integer
Dim 技能 As Integer
Dim 死亡回城 As Integer
Dim 走路1 As Integer
Dim 走路2 As Integer
Dim 走路3 As Integer
Dim 尋路 As Integer
Dim 激活 As Integer
End Structure
Public hwnd As Integer, Thrid As Integer, hProcess As Integer, hProcessID As Integer
Public ESI As Integer
Public ESIaddr As Integer
Public Base0 As Integer, base1 As Integer, base2 As Integer, base3 As Integer
Public Base As Integer
Public SkillBase As Integer
Public map As Integer
Public px, py, pz As Single
Public ptx, pty, ptz As Single
Public CallAddr As New Parameter
Public savebuysell(,) As String
Public CalladdrArray As New ArrayList '參數
Sub New()
CallAddr.打坐 = &H5C8FD0 : CalladdrArray.Add("打坐 = &H5C8FD0")
CallAddr.取消打坐 = &H5C9010 : CalladdrArray.Add("取消打坐 = &H5C9010")
CallAddr.普攻 = &H5C8990 : CalladdrArray.Add("普攻 = &H5C8990")
CallAddr.選怪 = &H599480 : CalladdrArray.Add("選怪 = &H599480")
CallAddr.放棄怪 = &H5C90F0 : CalladdrArray.Add("放棄怪 = &H5C90F0")
CallAddr.撿物 = &H599410 : CalladdrArray.Add("撿物 = &H599410")
CallAddr.使用物品 = &H599240 : CalladdrArray.Add("使用物品 = &H599240")
CallAddr.技能 = &H4663E0 : CalladdrArray.Add("技能 = &H4663E0")
CallAddr.死亡回城 = &H5C8DB0 : CalladdrArray.Add("死亡回城=&H5C8DB0")
CallAddr.走路1 = &H470A30 : CalladdrArray.Add("走路1 = &H470A30")
CallAddr.走路2 = &H475250 : CalladdrArray.Add("走路2 = &H475250")
CallAddr.走路3 = &H470EA0 : CalladdrArray.Add("走路3 = &H470EA0")
CallAddr.尋路 = &H42A9D0 : CalladdrArray.Add("尋路 = &H42A9D0")
CallAddr.激活 = &H5CA2A0 : CalladdrArray.Add("激活 = &H5CA2A0")
End Sub
Sub 無參數call(ByVal s As Integer)
If s = 0 Then Exit Sub
Dim asmc As New asm
With asmc
.Pushad()
.Call_x(s)
.Popad()
.Ret()
End With
asmc.Run_ASM(hProcessID)
End Sub
Sub 選怪CALL(ByVal id As Integer)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_ESI(id)
.Push_ESI()
.Mov_ECX_DWORD_Ptr(Base)
.Mov_ECX_DWORD_Ptr_ECX_Add(&H20)
.Add_ECX(&HD4)
.Call_x(CallAddr.選怪)
.Popad()
.Ret()
End With
sasm.Run_ASM(hProcessID)
End Sub
Sub 放棄怪CALL(ByVal id As Integer)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_EAX(id)
.Call_x(CallAddr.放棄怪)
.Popad()
.Ret()
End With
sasm.Run_ASM(hProcessID)
End Sub
Sub 撿東西CALL(ByVal id As Integer, ByVal sysid As Integer)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_ECX_DWORD_Ptr(Base)
.Mov_ECX_DWORD_Ptr_ECX_Add(&H20)
.Add_ECX(&HD4)
.Mov_EAX(sysid)
.Mov_EDX(id)
.Push_EDX()
.Push_EAX()
.Call_x(CallAddr.撿物)
.Popad()
.Ret()
End With
sasm.Run_ASM(hProcessID)
End Sub
Sub 使用物品CALL(ByVal id As Integer, ByVal position As Integer)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_EAX(id)
.Mov_EDI(position - 1)
.Mov_ECX_DWORD_Ptr(Base0 + &H20)
.Add_ECX(&HD4)
.Push(1)
.Push_EAX()
.Push_EDI()
.Push(0)
.Call_x(CallAddr.使用物品)
.Popad()
.Ret()
.Run_ASM(hProcessID)
End With
End Sub
Sub 技能CALL(ByVal id As Integer)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_EDX_DWORD_Ptr(Base0 + &H1C)
.Mov_ECX_DWORD_Ptr_EDX_Add(&H28)
.Mov_EAX(id)
.Push(-1)
.Push(0)
.Push(0)
.Push_EAX()
.Call_x(CallAddr.技能)
.Popad()
.Ret()
.Run_ASM(hProcessID)
End With
End Sub
Sub 走路CALL(ByVal gx As Single, ByVal gy As Single)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_EDI(ESI)
.Mov_ECX_DWORD_Ptr_EDI_Add(&H93C)
.Push(1)
.Call_x(CallAddr.走路1)
.Lea_ECX_DWORD_Ptr_ESP_Add(&H50)
.Mov_ESI_EAX()
.Push_ECX()
.Push(0)
.Mov_ECX_ESI()
.Call_x(CallAddr.走路2)
'.Lea_EDX_DWORD_Ptr_ESP_Add(&H90)
'.Lea_EAX_DWORD_Ptr_ESP_Add(&H84)
'.Push_EDX()
'.Push_EAX()
'.Mov_ECX_ESI()
'.Call_x(&H475370)
.Mov_ECX_DWORD_Ptr_EDI_Add(&H93C)
.Push(0)
.Push(1)
.Push_ESI()
.Push(1)
.Call_x(CallAddr.走路3)
.Mov_EAX(Base0)
.Mov_EAX_DWORD_Ptr_EAX_Add(&H1C)
.Mov_EAX_DWORD_Ptr_EAX_Add(&H28)
.Mov_EAX_DWORD_Ptr_EAX_Add(&H93C)
.Mov_EAX_DWORD_Ptr_EAX_Add(&H30)
.Mov_ECX_DWORD_Ptr_EAX_Add(&H4)
.Mov_EAX(BitConverter.ToInt32(BitConverter.GetBytes(gx), 0))
.Mov_Dword_Ptr_ECX_plus_x_EAX(&H20)
.Mov_EAX(BitConverter.ToInt32(BitConverter.GetBytes(pz), 0))
.Mov_Dword_Ptr_ECX_plus_x_EAX(&H24)
.Mov_EAX(BitConverter.ToInt32(BitConverter.GetBytes(gy), 0))
.Mov_Dword_Ptr_ECX_plus_x_EAX(&H28)
.Popad()
.Ret()
.Run_ASM(hProcessID)
End With
End Sub
Sub 尋路CALL(ByVal gx As Single, ByVal gy As Single, ByVal dm As Integer)
Dim addr1 As Integer = &H97FE38 '目的座標位置
Dim addr2 As Integer = &H977BC8 '是否到達(0為到達,2為未到達)
Dim addr3 As Integer = &H42A9D0 'Call位置
Dim sasm As New asm
With sasm
.Pushad()
.Mov_EAX(addr1)
.Mov_DWORD_Ptr_EAX(BitConverter.ToInt32(BitConverter.GetBytes(gx), 0))
.Mov_EAX(addr1 + 4)
.Mov_DWORD_Ptr_EAX(BitConverter.ToInt32(BitConverter.GetBytes(pz), 0))
.Mov_EAX(addr1 + 8)
.Mov_DWORD_Ptr_EAX(BitConverter.ToInt32(BitConverter.GetBytes(gy), 0))
.Push(1)
.Mov_EAX(ESI + &H66C)
.Push(dm)
.Push(addr1)
.Push_EAX()
.Mov_ECX(addr2)
.Call_x(addr3)
.Popad()
.Ret()
.Run_ASM(hProcessID)
End With
End Sub
Sub 激活CALL(ByVal id As Integer)
Dim sasm As New asm
With sasm
.Pushad()
.Mov_EDX(id)
.Push_EDX()
.Call_x(CallAddr.激活)
.Popad()
.Ret()
.Run_ASM(hProcessID)
End With
End Sub
End Module
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -