| 
 | 
	
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 |   
 
 
 
 |