📄 form1.frm
字号:
Width = 1455
End
Begin VB.CommandButton btnOff
Caption = "Off"
Height = 375
Left = 2880
TabIndex = 23
Top = 1200
Width = 495
End
Begin VB.CommandButton btnOn
Caption = "On"
Height = 375
Left = 2880
TabIndex = 22
Top = 720
Width = 495
End
Begin VB.CheckBox chkPick
Alignment = 1 'Right Justify
Caption = "Auto Pick:"
Height = 255
Left = 120
TabIndex = 15
Top = 3720
Width = 1455
End
Begin VB.CommandButton btnProcess
Caption = "Find"
Height = 375
Left = 2880
TabIndex = 8
Top = 240
Width = 495
End
Begin VB.Label Label9
AutoSize = -1 'True
Caption = "Auto Attack:"
Height = 180
Left = 120
TabIndex = 44
Top = 4080
Width = 1080
End
Begin VB.Label lblInfo
AutoSize = -1 'True
Caption = "INFO"
Height = 180
Left = 120
TabIndex = 13
Top = 240
Width = 360
End
End
Begin MSComctlLib.TabStrip tsMain
Height = 4815
Left = 120
TabIndex = 2
Top = 120
Width = 3735
_ExtentX = 6588
_ExtentY = 8493
_Version = 393216
BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628}
NumTabs = 5
BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628}
Caption = "Info"
Object.Tag = "0"
ImageVarType = 2
EndProperty
BeginProperty Tab2 {1EFB659A-857C-11D1-B16A-00C0F0283628}
Caption = "Attack"
Object.Tag = "1"
ImageVarType = 2
EndProperty
BeginProperty Tab3 {1EFB659A-857C-11D1-B16A-00C0F0283628}
Caption = "Protect"
Object.Tag = "2"
ImageVarType = 2
EndProperty
BeginProperty Tab4 {1EFB659A-857C-11D1-B16A-00C0F0283628}
Caption = "Around"
Object.Tag = "3"
ImageVarType = 2
EndProperty
BeginProperty Tab5 {1EFB659A-857C-11D1-B16A-00C0F0283628}
Caption = "Object"
Object.Tag = "4"
ImageVarType = 2
EndProperty
EndProperty
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub btnOff_Click()
tmrAntiRobot.Enabled = False
tmrInfo.Enabled = False
btnOn.Enabled = True
btnOff.Enabled = False
End Sub
Private Sub btnOn_Click()
tmrAntiRobot.Interval = 1000
tmrAntiRobot.Enabled = True
tmrInfo.Interval = 1000
tmrInfo.Enabled = True
btnOn.Enabled = False
btnOff.Enabled = True
lAttSkillCursor = 1
End Sub
Private Sub chkPosition_Click()
txtPositionX.Text = bbChar.x
txtPositionY.Text = bbChar.y
End Sub
Private Sub Form_Load()
Dim ii As Long
'设置界面
App.TaskVisible = False
Me.Width = 4110
Me.Height = 5565
For ii = 0 To 4
If ii <> 0 Then Frame1(ii).Visible = False
Frame1(ii).Top = 480
Frame1(ii).Left = 240
Frame1(ii).BorderStyle = 0
Next
'设置参数
For ii = 0 To 3
With cboAttSkill(ii)
.Clear
.AddItem "普通攻击 00000000"
.AddItem "八卦掌 00000173"
.AddItem "仙人指路 0000017D"
.AddItem "玉女穿梭 00000181"
.AddItem "太渊十三剑 00000184"
.AddItem "雁南飞 000001EB"
.AddItem "雪花六出 000001F5"
.AddItem "梅花三弄 000001F9"
.AddItem "推心掌 00000137"
.AddItem "水淹七军 00000141"
.AddItem "火烧赤壁 00000145"
.AddItem "奋力打击 000000F2"
.AddItem "落英剑 00000209"
.AddItem "溪山行旅 00000217"
.AddItem "貂蝉拜月 00000191"
.ListIndex = 0
End With
Next
With cboStrSkill
.Clear
.AddItem "无"
.AddItem "犀牛望月 00000188"
.AddItem "葵花神力 0000014C"
.ListIndex = 0
End With
cboHPProtect.ListIndex = 8
cboMPProtect.ListIndex = 9
cboFeed.ListIndex = 10
txtTargetList.Text = "灰熊,金钱豹,西北狼,归风庄庄客,白堤柳鬼,沙漠马匪,赤脚野人,花斑豹,高山白猿,山蛛,盗墓小贼,门墩,铜轨,颍水狼,白额虎,恶猿,遗弃木人,遗弃铜人,卢崖铜人,荒原豹"
strTargetList = Split(txtTargetList.Text, ",")
'设置其他运行参数
lPickCursor = 0
For ii = 0 To 256
lPick(ii) = 0
Next
End Sub
Private Sub btnProcess_Click()
frmProcess.Show 1
frmProcess.GetProcessList
Me.Caption = Hex(hWndGame) & " " & Hex(dwProcessId)
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
End
End Sub
Private Sub lvObjectId_Click()
lblObjectID.Caption = lvObjectId.SelectedItem.Text & " | " & lvObjectId.SelectedItem.SubItems(1) & " | " & lvObjectId.SelectedItem.SubItems(2)
End Sub
Private Sub tmrAntiRobot_Timer()
tmrAntiRobot.Enabled = False
'防外挂问答提示
Call GetAntiRobot
If lAntiRobot = 1 Then
sndPlaySound App.Path & "\sms.wav", SND_ASYNC Or SND_NODEFAULT
End If
'保护
If chkProtect.Value = 1 Then
'吃红
If cboHPProtect.ListIndex <> 0 And bbChar.hp < bbChar.hpmax * Val(txtHPProtect.Text) / 100 Then
Call PressKey(vbKeyF1 + cboHPProtect.ListIndex - 1)
End If
'吃蓝
If cboMPProtect.ListIndex <> 0 And bbChar.mp < bbChar.mpmax * Val(txtMPProtect.Text) / 100 Then
Call PressKey(vbKeyF1 + cboMPProtect.ListIndex - 1)
End If
'喂养
If cboFeed.ListIndex <> 0 And bbPet.hp < bbPet.hpmax * Val(txtFeed.Text) / 100 And bbPet.id > 0 Then
Call PressKey(vbKeyF1 + cboFeed.ListIndex - 1)
End If
End If
Dim l As Long
'辅助技能
If cboStrSkill.ListIndex <> 0 Then
l = GetTickCount
If l - Val(txtStrSkill.Tag) > Val(txtStrSkill.Text) * 1000 Then
txtStrSkill.Tag = l
If bbChar.id > 0 Then
Call fnUseSkill(Val("&H" & Right(cboStrSkill.Text, 8)), bbChar.id)
Call Sleep(1000)
End If
If bbPet.id > 0 Then
Call fnUseSkill(Val("&H" & Right(cboStrSkill.Text, 8)), bbPet.id)
Call Sleep(1000)
End If
End If
End If
tmrAntiRobot.Enabled = True
End Sub
Private Sub tmrInfo_Timer()
tmrInfo.Enabled = False
Dim ii As Long
Dim li As ListItem
Dim lAttSkill(3) As Long
'读取信息
Call GetCharInfo
Call GetMonster
Call GetObjectId
With lblInfo
'显示角色信息
.Caption = Trim(Left(bbChar.sz, 10))
.Caption = .Caption & vbCrLf & "LV: " & CStr(bbChar.lvl)
.Caption = .Caption & vbCrLf & "ID: " & Hex(bbChar.id)
.Caption = .Caption & vbCrLf & "HP: " & CStr(bbChar.hp) & "/" & CStr(bbChar.hpmax)
.Caption = .Caption & vbCrLf & "MP: " & CStr(bbChar.mp) & "/" & CStr(bbChar.mpmax)
.Caption = .Caption & vbCrLf & "EX: " & CStr(bbChar.exp)
.Caption = .Caption & vbCrLf & "XY: " & CInt(bbChar.x) & "," & CInt(bbChar.y) & "," & CInt(bbChar.z)
.Caption = .Caption & vbCrLf & "SK: " & Hex(lLastSkill) & "/" & Hex(lTargetId)
.Caption = .Caption & vbCrLf
'显示珍兽信息
.Caption = .Caption & vbCrLf & Trim(Left(bbPet.sz, 10))
.Caption = .Caption & vbCrLf & "ID: " & Hex(bbPet.id)
.Caption = .Caption & vbCrLf & "LV: " & CStr(bbPet.lvl)
.Caption = .Caption & vbCrLf & "HP: " & CStr(bbPet.hp) & "/" & CStr(bbPet.hpmax)
.Caption = .Caption & vbCrLf & "HA: " & CStr(bbPet.happy)
End With
'显示周围怪
lvMonster.ListItems.Clear
For ii = 0 To cntMonster - 1
Set li = lvMonster.ListItems.Add(, , Hex(bbMonster(ii).id))
'li.SubItems(1) = Trim(StrConv(bbMonster(ii).sz, vbUnicode))
li.SubItems(1) = Trim(bbMonster(ii).sz)
li.SubItems(2) = CStr(CLng(bbMonster(ii).x))
li.SubItems(3) = CStr(CLng(bbMonster(ii).y))
Next
'显示对象ID
lvObjectId.ListItems.Clear
For ii = 0 To cntObjectId - 1
Set li = lvObjectId.ListItems.Add(, , Hex(bbObjectId(ii).id))
li.SubItems(1) = bbObjectId(ii).cls
li.SubItems(2) = CLng(bbObjectId(ii).x) & "," & CLng(bbObjectId(ii).y) & "," & CLng(bbObjectId(ii).z)
Next
'打怪
If optAttack(1).Value = True Then
For ii = 0 To 3
lAttSkill(ii) = Val("&H" & Right(cboAttSkill(ii).Text, 8))
Next
If lBusy = 0 Then
'闲,选怪
Call NearFar(1)
'用技能1攻击,防止未冷却
Call fnUseSkill(lAttSkill(0), lNearFar)
'用技能2,3,4
Call fnUseSkill(lAttSkill(lAttSkillCursor), lNearFar)
'移动游标
lAttSkillCursor = lAttSkillCursor + 1
If lAttSkillCursor > 3 Then lAttSkillCursor = 1
Else
If lLastSkill <> lAttSkill(0) Then
'用技能1攻击
Call fnUseSkill(lAttSkill(0), lNearFar)
End If
End If
End If
'捡物
If chkPick.Value = 1 Then
For ii = 0 To cntObjectId
If bbObjectId(ii).cls = "5FBC20" And (bbObjectId(ii).x - bbChar.x) ^ 2 + (bbObjectId(ii).y - bbChar.y) ^ 2 < 2 ^ 2 Then
'捡距离小于2的
Call PickPack(bbObjectId(ii).id)
End If
Next
End If
'引怪
If optAttack(2).Value = True Then
lAttSkill(0) = Val("&H" & Right(cboAttSkill(0).Text, 8))
Call NearFar(2)
Call fnUseSkill(lAttSkill(0), lNearFar)
End If
tmrInfo.Enabled = True
End Sub
Private Sub tsMain_Click()
Dim vv As Long, ii As Long
vv = Val(tsMain.SelectedItem.Tag)
For ii = 0 To 4
If ii = vv Then Frame1(ii).Visible = True Else Frame1(ii).Visible = False
Next
End Sub
Private Sub txtTargetList_Change()
strTargetList = Split(txtTargetList.Text, ",")
End Sub
Private Sub NearFar(nf As Long)
Dim ii As Long, jj As Long, ss As String, ret As Long
Dim distOld As Double, distNew As Double, xPos As Single, yPos As Single
'定点
If chkPosition.Value = 0 Then
xPos = bbChar.x
yPos = bbChar.y
Else
xPos = Val(txtPositionX.Text)
yPos = Val(txtPositionY.Text)
End If
'选近
If nf = 1 Then
distOld = 999999999
If chkTargetList.Value = 0 Then
For ii = 0 To cntMonster - 1
'列表筛选怪
For jj = LBound(strTargetList) To UBound(strTargetList)
ss = strTargetList(jj)
If Left(bbMonster(ii).sz, Len(ss)) = ss And ss <> "" Then
'计算距离
distNew = Sqr((bbMonster(ii).x - xPos) ^ 2 + (bbMonster(ii).y - yPos) ^ 2)
If distNew < distOld Then
ret = bbMonster(ii).id
lNearestDist = distNew
distOld = distNew
End If
End If
Next
Next
Else
For ii = 0 To cntMonster - 1
If bbMonster(ii).id > Val("&H" & txtIDFrom.Text) And bbMonster(ii).id < Val("&H" & txtIDTo.Text) Then
'计算距离
distNew = Sqr((bbMonster(ii).x - xPos) ^ 2 + (bbMonster(ii).y - yPos) ^ 2)
If distNew < distOld Then
ret = bbMonster(ii).id
lNearestDist = distNew
distOld = distNew
End If
End If
Next
End If
End If
'选远
If nf = 2 Then
distOld = 0
If chkTargetList.Value = 0 Then
For ii = 0 To cntMonster - 1
'列表筛选怪
For jj = LBound(strTargetList) To UBound(strTargetList)
ss = strTargetList(jj)
If Left(bbMonster(ii).sz, Len(ss)) = ss And ss <> "" Then
'计算距离
distNew = Sqr((bbMonster(ii).x - xPos) ^ 2 + (bbMonster(ii).y - yPos) ^ 2)
If distNew > distOld Then
ret = bbMonster(ii).id
lNearestDist = distNew
distOld = distNew
End If
End If
Next
Next
Else
For ii = 0 To cntMonster - 1
If bbMonster(ii).id > Val("&H" & txtIDFrom.Text) And bbMonster(ii).id < Val("&H" & txtIDTo.Text) Then
'计算距离
distNew = Sqr((bbMonster(ii).x - xPos) ^ 2 + (bbMonster(ii).y - yPos) ^ 2)
If distNew > distOld Then
ret = bbMonster(ii).id
lNearestDist = distNew
distOld = distNew
End If
End If
Next
End If
End If
lNearFar = ret
End Sub
Private Sub PressKey(k As Long)
PostMessage hWndGame, WM_KEYDOWN, k, MakeKeyLparam(k, WM_KEYDOWN)
Sleep 100
PostMessage hWndGame, WM_KEYUP, k, MakeKeyLparam(k, WM_KEYUP)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -