📄 mdlsubcall.bas
字号:
Attribute VB_Name = "mdlSubCall"
Option Explicit
Public Sub fnUseSkill(skillid As Long, targetid As Long)
'技能CALL
If dwProcessId = 0 Then Exit Sub
Dim asm As New clsASM
With asm
.Pushad
.Push &HBF800000
.Push &HBF800000
.Push &HBF800000
.Push targetid '怪ID
.Push &HFFFFFFFF
.Push skillid '普攻技能ID
'MOV ECX,ESI传进去的参数
.Mov_ECX_DWORD_Ptr CharBaseAddr
.Mov_EAX_DWORD_Ptr_ECX_Add &H64
.Mov_ECX_DWORD_Ptr_EAX_Add &H160
.Mov_EAX UseSkillCallAddr
.Call_EAX
.Popad
.Ret
End With
asm.Run_ASM dwProcessId
End Sub
' 捡物
Public Sub PickPack(packid As Long, x As Single, y As Single)
'Call fnPackOpen(packid)
'Call SleepX(500)
Call fnWalk(x, y)
Dim hProcess As Long
hProcess = OpenProcess(PROCESS_VM_READ, 0, dwProcessId)
If hProcess = 0 Then Exit Sub
Dim addr As Long
Dim x0 As Single, y0 As Single, x1 As Single, y1 As Single
x0 = 0: y0 = 0
Do
Call SleepX(100)
ReadProcessMemory hProcess, CharBaseAddr, addr, 4, 0&
ReadProcessMemory hProcess, addr + &H64, addr, 4, 0&
ReadProcessMemory hProcess, addr + &H44, x1, 4, 0&
ReadProcessMemory hProcess, addr + &H4C, y1, 4, 0&
If x0 = x1 And y0 = y1 Then Exit Do
x0 = x1: y0 = y1
Loop While True
CloseHandle hProcess
Call fnPackOpen(packid)
Call SleepX(7000) '采集中
Call fnPackPickAll
End Sub
Private Sub fnPackOpen(packid As Long)
'打开物品包包CALL
If dwProcessId = 0 Then Exit Sub
Dim asm As New clsASM
With asm
.Pushad
.Push packid
.Mov_ECX_DWORD_Ptr CharBaseAddr
.Mov_ECX_DWORD_Ptr_ECX_Add &H64
.Mov_ECX_DWORD_Ptr_ECX_Add &H160
.Mov_EAX PackOpenCallAddr
.Call_EAX
.Popad
.Ret
End With
asm.Run_ASM dwProcessId
End Sub
Private Sub fnPackPickAll()
'全部拾取CALL,调用打开物品包包CALL后有效,否则出错
If dwProcessId = 0 Then Exit Sub
Dim asm As New clsASM
With asm
.Pushad
.Mov_EBX PackPickAllCallAddr
.Call_EBX
.Popad
.Ret
End With
asm.Run_ASM dwProcessId
End Sub
Public Sub fnWalk(x As Single, y As Single)
'走路CALL
If dwProcessId = 0 Then Exit Sub
Dim asm As New clsASM, xl As Long, yl As Long
Call CopyMemory(xl, x, 4)
Call CopyMemory(yl, y, 4)
With asm
.Pushad
.Push yl
.Push xl
.Mov_EAX_DWORD_Ptr CharBaseAddr
.Mov_ECX_DWORD_Ptr_EAX_Add &H64
.Mov_ECX_DWORD_Ptr_ECX_Add &H160
.Mov_EDX_DWORD_Ptr_ECX
.Mov_EAX WalkCallAddr
.Call_EAX
.Popad
.Ret
End With
asm.Run_ASM dwProcessId
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -