|
Global 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End EventGlobal 检测入场券, 检测材料, 当前刷到第几个角色, 角色名字, foobar, MySec2, 角色名称, 进入黄龙咯
Global 红色小晶块, 无尽的永恒, 黄龙票, 疲劳值, 重新定义
Dimenv 打怪线程, 检测死亡线程, 超时线程, 进图线程, 购买门票线程, 城镇线程, 调控线程
Call 注册
If Form1.赛利亚启动.Value = 1 Then
Do
Call 调控
Loop
ElseIf Form1.自动登入.Value = 1 Then
TracePrint 1
End If
//Call 打怪测试
//调控线程 = BeginThread(调控)
SDelay 300
Sub 调控
If 城镇房间 = 1 or 城镇房间 = 2 Then
// 城镇线程 = BeginThread(城镇caoz)
Call 城镇caoz
ElseIf 城镇房间 = 3
// 进图线程 = BeginThread(进入黄龙)
Call 进入黄龙
ElseIf 怪物坐标 = True
// 打怪线程 = BeginThread(打怪测试)
Call 打怪测试
Else
Call 更换角色(1)
End If
End Sub
Sub 城镇caoz
Dim pl
Do
If 城镇房间 = 1 Then
Call 从赛利亚房间出来
ElseIf 城镇房间 = 2 Then
Call 清理背包
Pl = 识别疲劳值()
If pl = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没有疲劳准备切换角色 ]", "ff0000")
Call 更换角色(0)
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 还有疲劳 ]", "ff0000")
End If
Call 识别虚弱状态
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检查完成准备进图 ]", "ff0000")
Call 准备进图
dm_ret = dm.FoobarPrintText(foobar, now & "[ 退出城镇线程 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Do
Call 调控
Loop
Do
Loop
Sub 准备进图
Do
If 城镇房间 = 3 Then
DM.KeyUp 39
DM.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入选择地图 ]", "ff0000")
Exit Do
Else
dm.KeyDown 40
SDelay 300
dm.KeyUp 40
dm.KeyDown 37
SDelay 300
dm.KeyUp 37
SDelay 30
dm.KeyDown 39
SDelay 2200
End If
Loop
End Sub
Sub 进入黄龙
DO
dm_ret = dm.FindPic(395, 289, 757, 481, "hldh.bmp|hldh2.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
ydsbz intX, intY
ydsbz intX, intY
Exit Do
End If
Loop
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
Else
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
进入黄龙咯 = True
Exit Do
End If
End If
Loop
Call 打怪测试
End Sub
Function 城镇房间
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备分解x, 装备分解y)
dm_ret = dm.FindStr(695, 535, 799, 572, "返回城镇", "ddc593-000000|ffffb8-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 赛利亚x > 0 Then
城镇房间 = 1
ElseIf 装备分解x > 0 Then
城镇房间 = 2
ElseIf intX > 0 Then
城镇房间 = 3
ElseIf 跳过x > 0 and 跳过y > 0 Then
城镇房间 = 4
End If
End Function
Sub 注册
PutAttachment "c:\test_game","*.*"
PutAttachment ".\Plugin" ,"RegDll.dll"
Call Plugin.Regdll.reg("c:\game_script\dm.dll")
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
If len(ver) = 0 Then
MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
EndScript
Else
dm_ret = dm.SetPath("C:\黄龙\")
dm_ret = dm.SetDict(0, "字库.txt")
hwnd = dm.FindWindow("", "地下城与勇士")
dm.MoveWindow hwnd, 0, 0
dm_ret = dm.SetWindowState(hwnd, 12)
foobar = dm.CreateFoobarRect(shw, 0, 600, 400, 100)
foobar2 = dm.CreateFoobarRect(shw2, 400, 600, 400, 100)
dm_ret = dm.FoobarLock(foobar)
dm_ret = dm.FoobarSetFont(foobar, "宋体", 9, 0)
End If
End Sub
Sub SDelay(时间)
MySec = Second(Now) : 增量X = Left(MySec, 1) : Call Lib.模拟真实键鼠.随机延时(时间 + (增量Y + 增量Y) * (增量Y / 2))
End Sub
SUB ydsbz(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标 + 增量X, 屏幕Y坐标 + 增量Y) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Sub
SUB ydsby(屏幕X坐标, 屏幕Y坐标)
MySec = Second(Now) : 增量X = Left(MySec, 1) : 增量Y = Right(MySec, 1) : Call Lib.模拟真实键鼠.随机慢慢移动鼠标(屏幕X坐标, 屏幕Y坐标) : SDelay 400 + (增量Y + 增量Y) * (增量Y / 3) : Call Lib.模拟真实键鼠.随机时间鼠标右键单击()
End Sub
Sub 从赛利亚房间出来
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 and 赛利亚y > 0 Then
日志 = Now & " [ 切换至赛利亚房间:准备检测疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 200
Call 识别疲劳
Call 识别材料
Do
dm_ret = dm.FindStr(279,0,766,280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
dm.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
MySec2 = Second(Now)
Do
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x >= 0 Then
SDelay 300
dm.KeyUp 40
Plugin.lxj_Plug.lxj_ReleaseMemory -1
日志 = Now & " [ 到达:虚祖首都素喃 准备行走置副本门口 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 600
ydsby 5, 500
ydsby 5, 500
SDelay 3000
dm.KeyDown 38
SDelay 1200
dm.KeyUp 38
dm.KeyUp 38
SDelay 500
Do
dm_ret = dm.FindStr(- 3 , 84, 605, 251, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Sub
Else
dm.KeyDown 39
End If
Loop
// Call 城镇寻路
Else
dm.KeyDown 40
MySe2c = Second(Now)
SDelay 100
MySe2c3 = MySe2c - MySec2
If abs(MySe2c3) >= 4 Then
日志 = Now & " [ 不在地区:虚祖首都素喃 准备使用瞬间移动药剂前往] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
Else
// dm_ret = dm.FoobarPrintText(foobar, "出赛利亚房间超时检测剩余秒数:" & abs(MySe2c3 - 4), "ff0000")
End If
End If
Loop
End If
End Sub// 赛利亚放假出来兑换票 扫拍
Sub 识别疲劳
Dim 疲劳数据
疲劳数据 = 识别疲劳值
If 疲劳数据 <> 0 Then
日志 = Now & " [ 疲劳检测:还有疲劳 ] "
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
当前刷到第几个角色 = 当前刷到第几个角色 + 1
日志 = Now & " [ 疲劳检测:没有疲劳了准备切换角色 当前刷置角色 " & 当前刷到第几个角色 & "]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
If 当前刷到第几个角色 = int(Form1.刷多少角色.Text) Then
dm.KeyPress 123
Else
Call 更换角色(0)
End If
End If
End Sub
Sub 更换角色(f)
Do
dm_ret = dm.FindStr(132, 530, 304, 564, "删除", "ddc593-000000", 1.0, 删除x, 删除y)
If 删除x < 0 Then
dm_ret = dm.FindStr(441, 168, 656, 363, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x < 0 and 游戏指南y < 0 Then
dm.KeyPress 27
SDelay 300
Else
SDelay 600
ydsbz 384, 443
SDelay 300
End If
Else
SDelay 600
日志 = Now & " [ 小退游戏进入选择角色界面 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
SDelay 300
If f = 1 Then
dm.KeyPress 39
SDelay 600
End If
dm.KeyPress 32
SDelay 600
Do
dm_ret = dm.FindStr(319, 104, 578, 263, "赛丽亚", "f7d65a-000000", 1.0, 赛利亚x, 赛利亚y)
If 赛利亚x > 0 Then
日志 = Now & " [ 进入赛利亚房间重 ]"
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(319, 104, 578, 263, "×", "ede5aa-000000", 1.0, 叉x, 叉y)
If 叉x > 0 Then
日志 = Now & " [ 出现遮挡物准备关闭 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
ydsbz 叉x, 叉y
SDelay 300
日志 = Now & " [ 关闭遮挡物 ]" & vbCrLf
dm_ret = dm.FoobarPrintText(foobar, 日志, "ff0000")
Exit Do
End If
End If
Loop
RestartScript
Exit Do
End If
Loop
End Sub
Function 城镇寻路()
x = 350
y = 315
dm_ret = dm.FindStr(653, 25, 756, 50, "虚祖首都素喃", "e6c89b-000000", 1.0, 虚祖首都素喃x, 虚祖首都素喃y)
If 虚祖首都素喃x > 0 Then
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 and 搜索y > 0 Then
TracePrint "打开大地图"
dm_ret = dm.FoobarPrintText(foobar, now & "[ 打开大地图 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在打开大地图 ]", "ff0000")
dm.KeyPress 78
Delay 300
End If
Loop
End If
Do
dm_ret = dm.FindStr(142, 134, 545, 434, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
If 城镇坐标x >= 0 and 城镇坐标y >= 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 正在执行前往副本门口 ]", "ff0000")
相差距离x = 城镇坐标x - x
相差距离y = 城镇坐标y - y
If 相差距离x > 0 Then
dm.KeyDown 37
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 左方向到达 ]", "ff0000")
dm.KeyUp 37
Exit Do
End If
Loop
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225, 196, 500, 447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 上方向到达 ]", "ff0000")
Delay 300
dm.KeyUp 38
dm.KeyUp 38
dm.KeyUp 38
Do
dm_ret = dm.FindStr(679, 1, 765, 32, "搜索", "ffffff-000000", 1.0, 搜索x, 搜索y)
If 搜索x > 0 Then
dm.KeyPress 78
SDelay 300
Exit Do
End If
Loop
dm.KeyDown 39
Do
dm_ret = dm.FindStr(184, 117, 680, 253, "装备分解", "e6c89b-000000", 1.0, 装备x, 装备y)
If 装备x > 0 Then
dm.KeyUp 39
dm.KeyUp 39
dm_ret = dm.FoobarPrintText(foobar, now & "[ 到达副本门口 ]", "ff0000")
Exit Do
End If
Loop
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
End If
Exit Do
ElseIf 相差距离x < 0 Then
Rem 反方向修复
dm.KeyDown 39
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离x = 城镇坐标x - x
If abs(相差距离x) = 0 Then
TracePrint "右方向到达"
dm.KeyUp 39
Exit Do
End If
Loop
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If 相差距离y > 0 Then
dm.KeyDown 38
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "上方向到达"
Delay 300
dm.KeyUp 38
Exit Do
End If
Loop
ElseIf 相差距离y < 0 Then
dm.KeyDown 40
Do
dm_ret = dm.FindStr(225,196,500,447, "城镇坐标", "0082ff-000000|06c2ff-404040|0f8dff-404040", 1.0, 城镇坐标x, 城镇坐标y)
相差距离y = 城镇坐标y - y
If abs(相差距离y) = 0 Then
TracePrint "下方向到达"
Delay 300
dm.KeyUp 40
Exit Do
End If
Loop
End If
Exit Do
End If
End If
Loop
End Function
Sub 识别虚弱状态
恢复状态 = 1// 1=契约恢复 2=金币恢复 3=站街恢复
If Form1.金币恢复.Value = 1 Then
恢复状态 = 2
ElseIf Form1.契约恢复.Value = 1 Then
恢复状态 = 1
ElseIf Form1.站街恢复.Value = 1 Then
恢复状态 = 3
End If
DO
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX,intY)
If intX > 0 AND intY > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 虚弱状态 ]", "ff0000")
SDelay 2200
If 恢复状态 = 1 Then
ydsbz intX, intY
SDelay 3000
dm_ret = dm.FindStrFast(0, 0, 800, 600, "契约恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
End If
ElseIf 恢复状态 = 2 Then
ydsbz intX, intY
dm_ret = dm.FindStrFast(0, 0, 800, 600, "金币恢复", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2 + 10, intY2 + 10
End If
ElseIf 恢复状态 = 3 Then
Do
dm_ret = dm.FindStrFast(224,434,512,600,"虚弱状态","085aa5-404040|105a84-404040|4aefff-404040|088ce7-404040|1884bd-000000",0.7,intX3,intY3)
If intX3 < 0 AND intY3 < 0 Then
SDelay 5000
Exit Sub
End If
Loop
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 没虚弱 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 清理背包
Do
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intxX2, intyY2)
If intxX2 > 0 and intyY2 > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包满了准备清理背包 ]", "ff0000")
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
Rem 修复点击装备分解
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解", "e6c89b-000000", 1.0, intX, intY)
If intX > 0 and intY > 0 Then
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
Do
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "分解装备", "e6c89b-000000", 1.0, 分解装备X, 分解装备Y)
If 分解装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击分解装备 ]", "ff0000")
ydsbz 分解装备X, 分解装备Y
SDelay 300
Exit Do
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备点分解装备被遮挡将移除遮挡 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
Goto 修复点击装备分解
End if
Loop// 点击分解装备
SDelay 600
Do
SDelay 300
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解 ]", "ff0000")
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(全部分解X, 全部分解Y)
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//移动到全部分解
SDelay 600
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备勾选条件 ]", "ff0000")
If Form1.分蓝.Value = 1 Then
分解模式 = 1// 1 分蓝卖紫白 2 分蓝白卖紫 3 全部分解
勾选蓝 = True:勾选白 = False:全部勾选 = False
ElseIf Form1.分蓝白.Value = 1 Then
分解模式 = 2
勾选蓝 = True : 勾选白 = True : 全部勾选 = False
ElseIf Form1.全部分.Value = 1 Then
分解模式 = 3
勾选蓝 = True : 勾选白 = True : 全部勾选 = True
End If
Do
dm_ret = dm.FindStrFast(215,358,344,450,"普通","ffffff-000000",1.0,pX,pY)'先查找普通这个字,然后根据返回的坐标来判断是否勾选
If pX > 0 And pY > 0 Then
dm_ret = dm.FindStrFast(px-1,py-1,px+80,py+14,"√","ffae00-000000",1.0,jX,jY)'根据普通返回的坐标,选择出一个区域能够查找到勾选,如果没有,则点击
If jX > 0 And jY > 0 Then
If 勾选白 = False Then
SDelay 300
ydsbz px, py
Exit Do
Else
Exit Do
End If
Else
If 勾选白 = True Then
SDelay 300
ydsbz px, py
SDelay 100
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选白色 ]", "ff0000")
Exit Do
Else
Exit Do
End If
End If
End If
Loop
SDelay 300
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "高级", "68d5ed-000000", 1.0, gX, gY)
If gX > 0 And gY > 0 Then
dm_ret = dm.FindStrFast(gx-1,gy-1,gx+80,gy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 勾选蓝 = False Then
SDelay 300
ydsbz jx, jy
Exit Do
Else
Exit Do
End if
Else
If 勾选蓝 = True Then
SDelay 300
ydsbz gX, gY
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选蓝色 ]", "ff0000")
Exit Do
Else
Exit Do
End if
End If
End If
Loop
SDelay 500
Do
dm_ret = dm.FindStrFast(215, 358, 344, 450, "稀有", "b36bff-000000", 1.0, xX, xY)
If xX > 0 And xY > 0 Then
dm_ret = dm.FindStrFast(xx-1,xy-1,xx+80,xy+14,"√","ffae00-000000",1.0,jX,jY)
If jX > 0 And jY > 0 Then
If 全部分 = False Then
SDelay 300
ydsbz xx, xy
Exit Do
Else
Exit Do
End If
Else
If 全部分 = True Then
SDelay 300
ydsbz xx, xy
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选紫色 ]", "ff0000")
Else
Exit Do
End If
Exit Do
End If
End If
Loop
If 全部分 = True Then
Exit Do
End If
dm_ret = dm.FoobarPrintText(foobar, now & "[ 勾选条件完毕开始分解 ]", "ff0000")
Do
SDelay 300
TracePrint 2222
dm_ret = dm.FindStr(139, 264, 454, 439, "全部分解", "ddc593-000000", 1.0, 全部分解X, 全部分解Y)
If 全部分解X > 0 Then
ydsbz 全部分解X, 全部分解Y
SDelay 300
Exit Do
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
dm_ret = dm.FoobarPrintText(foobar, now & "[ 移动置全部分解被遮挡将移除遮挡 ]", "ff0000")
End If
Loop//点击全部分解
SDelay 300
SDelay 300
dm_ret = dm.FindStr(0, 0, 800, 600, "确认", "ddc593-000000", 1.0, 确认X, 确认Y)
If 确认X > 0 Then
SDelay 200
ydsbz 确认X, 确认y
SDelay 200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 点击确认分解 ]", "ff0000")
End If
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "装备分解成功", "ffffb8-000000", 1.0, 分解成功X, 分解成功Y)
If 分解成功X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解完成 ]", "ff0000")
Exit Do
Else
dm_ret = dm.FindStr(0, 0, 800, 600, "缺少全部分解包括的道具", "ffffff-000000", 1.0, 分解失败X, 分解失败Y)
If 分解失败X > 0 Then
SDelay 300
dm.KeyPress 27
dm_ret = dm.FoobarPrintText(foobar, now & "[ 分解分解失败 ]", "ff0000")
Exit Do
End If
End If
Loop
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
SDelay 1200
dm_ret = dm.FoobarPrintText(foobar, now & "[ 准备出售物品 ]", "ff0000")
SDelay 400
dm_ret = dm.FindStr(0, 0, 800, 600, "修理装备", "ffffee-000000|ff88aa-000000|ff5577-000000|ff99bb-000000", 1.0, intxX, intxY)
If intxX > 0 Then
ydsbz intX, intY + 100
Else
ydsbz intX, intY
End If
SDelay 1200
dm_ret = dm.FindStr(0, 0, 800, 600, "商店", "e6c89b-000000", 1.0, intX6, intY6)
If intX6 > 0 and intY6 > 0 Then
SDelay 600
ydsbz intX6, intY6
SDelay 520
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(0, 0)
SDelay 1200
dm_ret = dm.FindStr(6, 41, 310, 205, "商店", "ffffb8-000000", 1.0, intX66, intY66)
If intX66 > 0 and intY66 > 0 Then
SDelay 700
Call 出售物品
End if
End If
Else
ydsbz 525,31
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 背包没满 ]", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 出售物品
ydsbz 493, 245
SDelay 300
dm_ret = dm.FindStrS(540, 389, 748, 529, "整理", "ddc593-000000", 0.9, intX2, intY2)
If intX2 > 0 and intY2 > 0 Then
ydsbz intX2, intY2
SDelay 300
End If
Do
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(486 + 增值, 275 + 增值2)
SDelay 400
dm_ret = dm.FindStrS(0, 0, 790, 546, "传说|神器|史诗", "ff7800-000000|ff00ff-000000|ffb400-000000", 0.9, 装备X, 装备Y)
If 装备X > 0 Then
dm_ret = dm.FoobarPrintText(foobar, now & "[ 检测到神器或传说装备跳过出售当前 ]", "ff0000")
Else
Call 拖动出售
End If
SDelay 100
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
行数 = 行数 + 1
If 行数 < 8 Then
增值 = 增值 + 30
ElseIf 行数 = 8 Then
增值 = 0
增值2 = 30
ElseIf 行数 >= 7 AND 行数 < 16 Then
增值2 = 30
增值 = 增值 + 30
ElseIf 行数 = 16 Then
增值 = 0
增值2 = 60
Do
dm_ret = dm.FindStr(439, 27, 751, 149, "装备栏", "aaaaaa-000000|ffffff-000000", 1.0, 装备栏X, 装备栏y)
If 装备栏X > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop
dm_ret = dm.FoobarPrintText(foobar, now & "[ 出售装备完毕 ]", "ff0000")
Do
dm_ret = dm.FindStr(0, 0, 800, 600, "游戏指南", "e6c89b-000000", 1.0, 游戏指南x, 游戏指南y)
If 游戏指南x > 0 Then
dm.KeyPress 27
SDelay 300
Else
Exit Do
End If
Loop//关闭多余菜单
Exit Do
ElseIf 行数 >= 15 AND 行数 < 24 Then
增值2 = 60
增值 = 增值 + 30
ElseIf 行数 = 24 Then
增值 = 0
增值2 = 90
ElseIf 行数 >= 23 AND 行数 < 32 Then
增值2 = 90
增值 = 增值 + 30
ElseIf 行数 = 32 Then
增值2 = 120
增值 = 0
ElseIf 行数 >= 31 AND 行数 < 40 Then
增值2 = 120
增值 = 增值 + 30
End If
Loop
End Sub
Function 拖动出售()
MySec = Second(Now)
增量X = Left(MySec, 1)
增量Y = Right(MySec, 1)
SDelay 300 + (增量Y + 增量Y) + (增量Y / 2)
LeftDown 1
SDelay 100
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(323 + 增量X, 398 + 增量Y)
SDelay 100
LeftUp 1
SDelay 200
Call Lib.模拟真实键鼠.随机时间鼠标左键单击()
End Function
Sub 关闭遮挡
dm_ret = dm.FindStr(319, 104, 578, 263, "关闭", "f7d65a-000000", 1.0, 关闭x, 关闭y)
If 关闭x > 0 Then
ydsbz 关闭x, 关闭y
SDelay 200
End If
End Sub
Function 识别疲劳值
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(393, 553)
SDelay 300
dm_ret = dm.FindStr(191, 467, 629, 557, "疲劳值:", "ffffff-000000", 1.0, 疲劳x, 疲劳y)
If 疲劳x > 0 Then
SDelay 300
s = dm.Ocr(疲劳x - 1, 疲劳y - 1, 疲劳x + 103, 疲劳y + 14, "ffffff-000000", 1.0)
疲劳 = Split(s, "疲劳值:")
疲劳2 = Split(疲劳(1), "/")
TracePrint 疲劳2(0)
识别疲劳值 = 疲劳2(0)
End If
End Function
Function 怪物坐标
s = dm.Ocr(637,38,754,65, "ffffff-000000", 1.0)
dm_ret = dm.FindStr(657, 41, 731, 63, s, "ffffff-000000", 1.0, 赛利亚x2, 赛利亚y2)
If 赛利亚x2 > 0 Then
怪物坐标 = True
Else
怪物坐标 = False
End If
End Function
Function 翻牌状态
dm_ret = dm.FindStrFast(0, 0, 794, 200, "翻牌状态", "d2b709-000000|ffffbb-000000|ffdd55-000000|eecc55-000000|ddaa44-000000|ffffff-000000|664422-000000|aa8833-000000", 0.8, intX, intY)
// dm_ret = dm.FindStr(264, 12, 556, 152, "VS", "000000-404040", 1.0, intX2, inty2)
If intX > 0 Then
翻牌状态 = True
Else
翻牌状态 = False
End If
End Function
Sub 打怪测试
dm_ret = dm.FoobarPrintText(foobar, now & "[ 预备打怪线程 ]", "ff0000")
Do
dm_ret = dm.FindColor(479, 70, 491, 78, "000000-000000", 1.0, 0, intX2, intY2)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "808080-404040", 1.0, intXc, intYc)
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
If intX2 < 0 Then
Call 冷却释放
首次拾取 = False
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 怪物死亡 ]", "ff0000")
If intX > 0 and intX2c > 0 Then
If 检测背包 = False Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
ydsbz intX, intY
DO
dm_ret = dm.FindStr(288, 530, 508, 600, "pace", "000000-000000", 1.0, 跳过x, 跳过y)
If 跳过x > 0 Then
dm.KeyPress 32
dm_ret = dm.FoobarPrintText(foobar, now & "[ 跳过动画 ]", "ff0000")
ElseIf 跳过x < 0 Then
dm_ret = dm.FindStr(484, 9, 801, 206, "F10", "e6c89b-000000", 1.0, intX, intY)
If intX < 0 Then
If 怪物坐标 = False Then
DM.KeyPress 32
Else
dm_ret = dm.FoobarPrintText(foobar, now & "[ 进入黄龙地图 ]", "ff0000")
Exit Do
End If
Else
ydsbz intX, intY
SDelay 300
ydsbz 0, 0
End If
End If
Loop
Exit Do
ElseIf 检测背包 = True Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
Exit Do
End If
ElseIf intX2 > 0 AND intX < 0 AND intX2c < 0 Then
If 首次拾取 = False Then
SDelay 300
Call 拾取
首次拾取 = True
SDelay 200
End If
ElseIf intXc > 0 Then
Dm_ret = dm.FindStr(484, 9, 801, 206, "F12", "e6c89b-000000", 1.0, intX2c, intY2c)
ydsbz intX2c, intY2c
End If
End If
Loop
End Sub
Sub 拾取
dm_ret = dm.FoobarPrintText(foobar, now & "[ 开始拾取 ]", "ff0000")
SDelay 300
DM.KeyPress 86
SDelay 300
DM.KeyDown 88
SDelay 700
DM.KeyUp 88
End Sub
Sub 释放技能
Do
If 怪物坐标 = False Then
If Form1.冷却技能.Value = 1 Then
Call 冷却释放
End If
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 释放技能完毕 ] ", "ff0000")
Exit Do
End If
Loop
End Sub
Sub 冷却释放
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If 技能x = 542 AND 技能y = 533 Then
dm.KeyPress 81
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Q ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 533 Then
dm.KeyPress 87
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: W ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 533 Then
DM.KeyPress 69
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: E ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 533 Then
dm.KeyPress 82
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: R ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 533 Then
dm.KeyPress 84
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: T ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 533 Then
dm.KeyPress 89
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: Y ]", "ff0000")
SDelay 10
ElseIf 技能x = 542 AND 技能y = 564 Then
dm.KeyPress 65
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: A ]", "ff0000")
SDelay 10
ElseIf 技能x = 572 AND 技能y = 564 Then
dm.KeyPress 83
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:S ]", "ff0000")
SDelay 10
ElseIf 技能x = 602 AND 技能y = 564 Then
DM.KeyPress 68
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:D ]", "ff0000")
SDelay 10
ElseIf 技能x = 632 AND 技能y = 564 Then
dm.KeyPress 70
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能:F ]", "ff0000")
SDelay 10
ElseIf 技能x = 662 AND 技能y = 564 Then
dm.KeyPress 71
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: G ]", "ff0000")
SDelay 10
ElseIf 技能x = 692 AND 技能y = 564 Then
dm.KeyPress 72
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: H ]", "ff0000")
SDelay 10
ElseIf 技能x < 0 Then
If Form1.普通攻击.Value = 1 Then
dm.KeyPress 88
dm_ret = dm.FoobarPrintText(foobar, now & "[ 释放技能: X ]", "ff0000")
SDelay 200
End If
End If
End Sub
Sub 释放
Dim 技能键(13)
分割次数 = len(Form1.赋值技能.Text)
For i = 1 To 分割次数
技能键(i)=Mid(技能, i, 1)
If 怪物坐标 = True Then
TracePrint "通关了退出释放技能"
Exit Sub
Else
dm_ret = dm.FindStr(510, 526, 725, 597, "技能", "ffce31-000000|52ceff-000000", 1.0, 技能x, 技能y)
If Form1.普通攻击.Value = 1 Then
If 技能x < 0 Then
dm.KeyPress 88
End If
End If
SDelay 160
If UCase(技能键(i)) = "A" Then
dm.KeyPress 65
SDelay 160
ElseIf UCase(技能键(i)) = "S" Then
dm.KeyPress 83
SDelay 160
ElseIf UCase(技能键(i)) = "D" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "F" Then
dm.KeyPress 68
SDelay 160
ElseIf UCase(技能键(i)) = "G" Then
dm.KeyPress 71
SDelay 160
ElseIf UCase(技能键(i)) = "H" Then
dm.KeyPress 72
SDelay 160
ElseIf UCase(技能键(i)) = "Q" Then
dm.KeyPress 81
SDelay 160
ElseIf UCase(技能键(i)) = "W" Then
dm.KeyPress 87
SDelay 160
ElseIf UCase(技能键(i)) = "E" Then
dm.KeyPress 69
SDelay 160
ElseIf UCase(技能键(i)) = "R" Then
dm.KeyPress 82
SDelay 160
ElseIf UCase(技能键(i)) = "T" Then
dm.KeyPress 84
SDelay 160
ElseIf UCase(技能键(i)) = "Y" Then
dm.KeyPress 89
SDelay 160
ElseIf UCase(技能键(i)) = "X" Then
dm.KeyPress 88
SDelay 160
End If
SDelay 300
End If
Next
End Sub
Sub 还任务
Do
dm_ret = dm.FindStr(268, 497, 506, 548, "完成任务", "cc4411-404040", 1.0, 完成任务x, 完成任务y)
If 完成任务x > 0 Then
ydsbz 完成任务x, 完成任务y
Else
For 12
dm.KeyPress 32
Next
Exit Do
End If
Loop
dm.KeyPress 27
End Sub
Function 检测背包
dm_ret = dm.FindPic(2, 350, 98, 454, "bb.bmp", "000000", 0.9, 0, intx2, inty2)
If intx2 > 0 and inty2 > 0 Then
检测背包 = True
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包满了 ] ", "ff0000")
Else
检测背包 = False
dm_ret = dm.FoobarPrintText(foobar, now & " [ 背包没满 ] ", "ff0000")
End If
End Function
Function 识别疲劳2
dm_ret = dm.FindColor(278,545,513,559, "e60044-000000|b30026-000000|be6a83-000000", 0.9, 0, intX, intY)
dm_ret = dm.FindColor(278,545,513,559, "00e6e6-000000|008ff1-000000|80a8a8-000000", 0.9, 0, intX2, intY2)
If intX > 0 and intY > 0 OR intX2 > 0 and intY2 > 0 Then
识别疲劳 = True
TracePrint "还有疲劳"
SDelay 700
Else
识别疲劳 = False
TracePrint "没疲劳了"
SDelay 800
End If
End Function
Sub 识别材料
Do
Rem 重新扫描
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x < 0 Then
dm.KeyPress 73
SDelay 300
Else
Call Lib.模拟真实键鼠.随机慢慢移动鼠标(装备栏x, 装备栏y)
SDelay 200
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "材料", "ffffb8-000000", 1.0, 材料x, 材料y)
If 材料x < 0 Then
ydsbz 593, 245
ydsbz 593, 245
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FoobarPrintText(foobar, now & " [ 准备识别材料 ] ", "ff0000")
红色小晶块 = dm.Ocr(730, 312, 761, 341, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [红色小晶块数量: ] " & 红色小晶块, "ff0000")
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "wj.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
无尽的永恒 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [无尽的永恒数量: ] " & 无尽的永恒, "ff0000")
Else
dm_ret = dm.FoobarPrintText(foobar, now & " [ 没有找到无尽的永恒 ] " & 无尽的永恒, "ff0000")
End If
SDelay 302
Do
dm_ret = dm.FindStr(471, 226, 716, 278, "任务", "ffffb8-000000", 1.0, 材料2x, 材料2y)
If 材料2x < 0 Then
ydsbz 690, 246
ydsbz 690, 246
Else
Exit Do
End If
Loop
SDelay 150
dm_ret = dm.FindPic(470, 239, 712, 499, "hl.bmp", "000000", 0.9, 0, intX, intY)
If intX > 0 Then
黄龙票 = dm.Ocr(intX - 10, intY - 10, intX + 28, intY + 5, "ffffff-000000", 1.0)
dm_ret = dm.FoobarPrintText(foobar, now & " [黄龙门票数量:] " & 黄龙票, "ff0000")
End If
Do
dm_ret = dm.FindStr(279, 0, 766, 280, "装备栏", "ffffff-000000|aaaaaa-000000", 1.0, 装备栏x, 装备栏y)
If 装备栏x > 0 Then
DM.KeyPress 73
SDelay 300
Else
Exit Do
End If
Loop
SDelay 150
疲劳值 = 识别疲劳值
dm_ret = dm.FoobarPrintText(foobar, now & " [剩余疲劳 ] " & 疲劳值, "ff0000")
可打次数 = 疲劳值 / 6
dm_ret = dm.FoobarPrintText(foobar, now & " [可打黄龙次数] " & 可打次数, "ff0000")
If 1300 > 红色小晶块 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 红色小晶块不足现在开始购买 ] ", "ff0000")
Call 扫拍("红色小晶块", Form1.HS.Text, "1000")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 130 > 无尽的永恒 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 无尽的永恒块不足现在开始购买 ] " , "ff0000")
Call 扫拍("无尽的永恒", Form1.wj.Text, "130")
dm_ret = dm.FoobarPrintText(foobar, now & " [ 重新扫描材料是否充足 ] ", "ff0000")
Goto 重新扫描
End If
If 可打次数 > 黄龙票 Then
dm_ret = dm.FoobarPrintText(foobar, now & " [ 当前门票不足准备前往小铁柱兑换门票 ] ", "ff0000")
Call 行走到小铁柱
End If
Exit Do
End If
Loop
End Sub
Event Form1.Load
Call 注册
End Event |
|