|
|

楼主 |
发表于 2017-10-25 13:15:00
|
显示全部楼层
福建省泉州市
- //****************************************************************************************************************************************************
- //注册大漠插件
- Set dm = createobject("dm.dmsoft")
- Delay 100
- ver = dm.ver()
- Delay 100
- //TracePrint "大漠插件版本:"&ver
- If len(ver) =0 Then
- Set ws = createobject("Wscript.Shell")
- Delay 100
- ws.run "regsvr32 x:\dm.dll /s"
- Delay 100
- Set ws = nothing
- Delay 100
- End If
- rs = dm.SetShowErrorMsg(0)
- dm.SetPath ("F:\后台图片")
- //***************************************************************************************************************************************************
- //————————————————————————————————————————————————————————————————————————————————
- Do
- //如果模拟器没开,就无法获取句柄,绑定时会出错,所以在这里检测模拟器开了没
-
- //获得整个包含边框的mumu模拟器句柄以及分辨率Len_Mumu*Wid_Mumu
- DimEnv MumuHwnd
- MumuHwnd = dm.FindWindow("Qt5QWindowIcon", "")//Qt5QWindowIcon木木的类名,包含外延
- rs = dm.GetClientRect(MumuHwnd, X1_Mumu, Y1_Mumu, X2_Mumu, Y2_Mumu)
- rs = dm.GetClientSize(MumuHwnd, Len_Mumu, Wid_Mumu)
- DimEnv Len_Mumu
- Len_Mumu = X2_Mumu - X1_Mumu //窗口的长
- DimEnv Wid_Mumu
- Wid_Mumu = Y2_Mumu - Y1_Mumu //窗口的宽
-
- //获取模拟器子窗口句柄以及分辨率Len1_Mumu*Wid1_Mumu
- DimEnv SubMumuHwnd
- SubMumuHwnd = dm.FindWindowEx(MumuHwnd, "Qt5QWindowIcon","")//Qt5QWindowIcon木木的类名,不包含外延
- rs = dm.GetClientRect(SubMumuHwnd, X1_SubMumu, Y1_SubMumu, X2_SubMumu, Y2_SubMumu)
- DimEnv Len_SubMumu
- Len_SubMumu = X2_SubMumu - X1_SubMumu //窗口的长
- DimEnv Wid_SubMumu
- Wid_SubMumu = Y2_SubMumu - Y1_SubMumu //窗口的宽
- If MumuHwnd = 0 or SubMumuHwnd = 0 Then
- dm.RunApp "D:\Program Files (x86)\Nemu\EmulatorShell\NemuLauncher.exe", 0//路径待修改
- Delay 30000
- Else
- Exit Do
- End If
- Loop
- //绑定窗口的测试变量,防止出现多个窗口同时绑定窗口,那时候会100%按键精灵崩溃
- Dimenv bind
- bind=0
- //绑定窗口 long BindWindow(hwnd,display,mouse,keypad,mode)
- Do
- If bind = 0 Then
- bind =1
- rs = dm.BindWindow(MumuHwnd, "dx2", "windows", "windows", 0)
- bind = 0
- Exit Do
- Else
- Delay 1000
- End If
- Loop
- Dimenv 刷金币id
- Do
- TracePrint "1"
- rs = dm.FindPic(0, 0, len_Mumu, Wid_Mumu, "游戏图标.bmp|开始游戏.bmp|打叉1.bmp|打叉2.bmp|打叉3.bmp|打叉4.bmp|冒险模式.bmp|挑战.bmp|学院.bmp|大师.bmp|地.bmp|下一步.bmp|闯关.bmp|返回键.bmp|更新.bmp", "080808", 0.9, 0, x, y)
- TracePrint "rs1="&rs
- If rs = 11 or rs = 12 Then
- dm.moveto x, y
- rs = dm.leftclick
- Exit Do
- ElseIf rs = 14 Then
- Delay 2000
- ElseIf rs = - 1 Then
- TracePrint "rs=-1"
- Else
- dm.moveto x, y
- rs = dm.leftclick
- End If
- Delay 800
- Loop
- 刷金币id = BeginThread(刷金币)
- Do
- Delay 5000
- Loop
- //***************************************************************************************************************************************************
- //————————————————————————————————————————————————————————————————————————————————
- Sub 刷金币
- Rem mark
- timestart=now
- TracePrint "开始刷"
- //注册并绑定窗口
- Set dm = CreateObject("dm.dmsoft")
- rs = dm.SetShowErrorMsg(0)
- dm.SetPath ("F:\后台图片")
- Do
- If bind = 0 Then
- bind =1
- rs = dm.BindWindow(MumuHwnd, "dx2", "windows", "windows", 0)
- bind = 0
- Exit Do
- Else
- Delay 1000
- End If
- Loop
- rs = dm.GetClientRect(SubMumuHwnd, a, b, c, d)
- If c - a = 1024 Then
- Else
- Call Lib.系统.结束进程("NemuPlayer.exe")
- RestartScript
- End If
- //开始刷副本
- Do
- If datediff("s", timestart, now) > 300 Then
- Call Lib.系统.结束进程("NemuPlayer.exe")
- RestartScript
- End If
- rs = dm.FindPic(0, 0, len_SubMumu, Wid_SubMumu, "眼.bmp|闯关.bmp|点击屏幕继续.bmp|再次挑战.bmp|防沉迷确定.bmp|确定.bmp|加载.bmp", "000000", 0.9, 0, x, y)
- TracePrint "rs2="&rs
- If rs = 0 Then
- //已在副本中
- Exit Do
- ElseIf rs = 6 Then
- Delay 2000
- ElseIf rs > 0 and rs < 6 Then
- dm.moveTo x, y
- rs = dm.LeftClick
- ElseIf rs = - 1 Then
- End If
- Delay 500
- Loop
- Delay 200
- //Call wangxiazou//开始往下走
- Dim count,k
- count = 0
- k=0
-
- dm.KeyDown 65
- Delay 1000
- dm.Keyup 65
- Delay 50
-
- Do
- If datediff("s", timestart, now) > 120 Then
- Call 重开
- Goto mark
- ElseIf datediff("s", timestart, now) > 300 Then
- Call Lib.系统.结束进程("NemuPlayer.exe")
- RestartScript
- End If
-
- If count=0 Then
- dm.KeyDown 83
- End If
- //KeyDown "S", 1
- If k=20 then
- Call 重开
- Goto mark
- End If
-
- rs = dm.FindPic(0+len_SubMumu/2, 0, len_SubMumu, Wid_SubMumu/2, "跳过.bmp|未选定的眼", "000000", 0.9, 0, x, y)
- If rs = - 1 Then
-
- If count = 0 Then
- //第一次跳过
- Delay 50
- dm.Keydown 83
- Delay 1000
- ElseIf count = 1 Then
- //第二次跳过
- rs = dm.FindPic(0, 0, len_SubMumu, Wid_SubMumu, "未过墙.bmp|过墙1.bmp|过墙2.bmp", "000000", 0.7, 0, x, y)
-
- If rs = 0 Then
- //未过墙,开始过墙
- rs = dm.FindPic(0 + len_SubMumu / 2, 0 + Wid_SubMumu / 2, len_SubMumu, Wid_SubMumu, "一技能.bmp", "000000", 0.9, 0, x, y)
-
- If rs > - 1 Then
- //第一次点击技能
- dm.MoveTo x, y
- //MoveTo intX,intY
- Delay 50
- dm.LeftDown
- Delay 50
- dm.MoveTo x-len_SubMumu/25, y+wid_subMumu/6
- Delay 50
- dm.LeftUp
- //第二次点击技能位移
- Delay 2100
- dm.moveTo x, y
- Delay 50
- rs = dm.leftclick
- Delay 50
- End If
-
- ElseIf rs = 1 or rs = 2 Then
- rs = dm.FindPic(0+len_SubMumu/2, 0+ Wid_SubMumu/2, len_SubMumu, Wid_SubMumu, "三技能.bmp","111111", 0.9, 0, x, y)
-
- If rs > -1 Then
- dm.MoveTo x,y
- //MoveTo intx, inty
- Delay 50
- rs=dm.LeftClick
- Delay 50
- dm.KeyDown 68
- Delay 50
- dm.keydown 83
- Delay 50
- Delay 3000//有时候被打断,然后3秒被怪打死
- dm.keyup 83
- Delay 50
- dm.KeyUp 68
- Delay 50
- End If
- ElseIf rs = - 1 Then
- TracePrint "未找到未过墙或者过墙,出错重开"
- Call 重开
-
- End If
-
- ElseIf count = 2 Then
- //第三次跳过
- //未出现第三次跳过,则继续战斗
- rs = dm.FindPic(0 , 0 , len_SubMumu, Wid_SubMumu, "一技能.bmp|二技能.bmp|普通攻击.bmp", "000000", 0.9, 0, x, y)
- If rs = 0 Then
- dm.moveto x, y
- rs = dm.LeftClick
- Delay 300
- dm.moveto x, y
- rs = dm.LeftClick
- ElseIf rs = 1 Then
- dm.moveto x, y
- rs = dm.LeftClick
- ElseIf rs = 2 Then
- dm.moveto x, y
- rs = dm.LeftClick
- End If
- ElseIf count = 3 Then
- //战斗结束,本次刷完
- Exit Do
- End If
- ElseIf rs = 0 Then
- If count = 0 Then
- dm.keyup 83
- End If
- dm.MoveTo x, y
- rs = dm.leftClick
- count = count + 1
- ElseIf rs = 1 Then
- dm.MoveTo x, y
- rs = dm.leftClick
- End If
- If count = 0 Then
- k = k + 1
- End If
- Delay 500
- Loop
- Goto mark
- //新刷金币id = BeginThread(刷金币)
- //刷金币id = 新刷金币id
- End Sub
- Sub 重开
- TracePrint "重开"
- Set dm = CreateObject("dm.dmsoft")
- rs = dm.SetShowErrorMsg(0)
- dm.SetPath ("F:\后台图片")
- Do
- If bind = 0 Then
- bind =1
- rs = dm.BindWindow(MumuHwnd, "dx2", "windows", "windows", 0)
- bind = 0
- Exit Do
- Else
- Delay 1000
- End If
- Loop
- Do
- rs = dm.FindPic(0, 0, len_SubMumu, Wid_SubMumu, "下一步.bmp|退出本局.bmp|返回1.bmp|返回2.bmp|设置.bmp", "000000", 0.7, 0, x, y)
- TracePrint "rs=" & rs
- If rs = 3 or rs = 1 or rs = 2 or rs = 4 Then
- dm.moveto x, y
- rs = dm.LeftClick
- ElseIf rs = 0 Then
- dm.moveto x, y
- rs = dm.LeftClick
- Exit Do
- End If
- Delay 1000
- Loop
- End Sub
- //***************************************************************************************************************************************************
- //————————————————————————————————————————————————————————————————————————————————
- Sub onscriptExit()
- rs = dm.unbindWindow()
- TracePrint "解绑成功"
- End Sub
复制代码 |
|