按键精灵+大漠插件 打boss(脚本demo4)
前面介绍了大漠插件,这里再来个复杂点的,这个是4开刷副本
//初始化数据 //地图信息 //副本坐标 ditux = -230 dituy = -190 //难度坐标 nandux = -320 nanduy = 70 //角度力度 jiaodu = 20 lidu = 30 jiaodutiaohao=0 Set dm = createobject("dm.dmsoft") hwnd = dm.GetMousePointWindow() Delay 5500 base_path = dm.GetBasePath() dm_ret = dm.BindWindow(hwnd, "gdi", "windows", "windows", "0") dm_ret = dm.SetPath(base_path) dm_ret = dm.SetDict(0,"jiaodu.txt") Rem 开始循环检查进入副本 //激活窗口 Call Plugin.WindowEx5_01.SendMouse(hwnd, 3, 100, 100) //鼠标中击 //Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, 22, 22) Delay 200 //Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, 75, 175) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, 22, 22) //Call Plugin.WindowEx5_01.SetFakeActive(hwnd, 0) Delay 1200 //出错 确定 //副本空白 主号设置副本 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\suijiditu.bmp","000000",0.9,0,myx1,myy1) If myx1 > 0 And myy1 > 0 Then Delay 200 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myx1, myy1) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myx1, myy1) Delay 800 //选择地图 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myx1+ditux, myy1+dituy) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myx1+ditux, myy1+dituy) //选择难度 Delay 800 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myx1+nandux, myy1+nanduy) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myx1+nandux, myy1+nanduy) //选择难度 Delay 800 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myx1-125, myy1+133) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myx1-125, myy1+133) End If //准备按钮 付好准备 dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\zhunbei.bmp", "000000", 0.9, 0, myxks, myyks) If myxks > 0 And myyks > 0 Then Delay 800 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxks, myyks) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxks, myyks) jiaodutiaohao=0 //初始化调角度 End If //开始按钮 开始 dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\kaishi.bmp", "000000", 0.9, 0, myxks, myyks) If myxks > 0 And myyks > 0 Then dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\suijiditu.bmp","000000",0.9,0,myx1,myy1) If myx1 > 0 And myy1 > 0 Then Else // Delay 800 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxks, myyks) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxks, myyks) End If jiaodutiaohao=0 //初始化调角度 End If //准备按钮 准备 //第一关图+道具 调角度 并赋值力度 If jiaodutiaohao = 0 Then dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\xiaoji_1.bmp", "000000", 0.8, 0, myx_guan1, myy_guan1) If myx_guan1 > 0 And myy_guan1 > 0 Then //当找到道具调整角度 //dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\daoju.bmp", "000000", 0.9, 0, myx_dj1, myy_dj1) //If myx_dj1 > 0 And myy_dj1 > 0 Then //MessageBox myx_dj1 //当找到道具调整角度 nowjiaodu = chajiaodu() //Call huanjiaodu(nowjiaodu, 26) jiaodutiaohao = 1 lidu = 13 //End If End If End If //第一关图+pass 根据赋值打击 加个延迟 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\pass.bmp","000000",0.7,0,x_pass,y_pass) If x_pass > 0 And y_pass > 0 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,49,0) //1 Call Plugin.WindowEx5_01.SendKey(hwnd,0,52,0) //4 Delay 1500 daji(lidu) Delay 3000 End If //第2关图+道具1 调角度 并赋值力度 If jiaodutiaohao = 0 Then dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\xiaoji_2_1.bmp", "000000", 0.8, 0, myx_guan1, myy_guan1) If myx_guan1 > 0 And myy_guan1 > 0 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,37,0) //左 nowjiaodu = chajiaodu() Call huanjiaodu(nowjiaodu, 17) Delay 500 If nowjiaodu < 18 Then Call huanjiaodu(nowjiaodu, 17) jiaodutiaohao = 1 lidu = 70 Else jiaodutiaohao = 1 lidu = 50 End If End If End If //第2关图+道具2 调角度 并赋值力度 //If jiaodutiaohao = 0 Then dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\xiaoji_2_2.bmp", "000000", 0.8, 0, myx_guan1, myy_guan1) If myx_guan1 > 0 And myy_guan1 > 0 Then Delay 2000 dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\xiaoji_2_2.bmp", "000000", 0.8, 0, myx_guan2, myy_guan2) If myx_guan2 > 0 And myy_guan2 > 0 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,39,0) //右 Delay 100 Call Plugin.WindowEx5_01.SendKey(hwnd,0,39,0) //右 Delay 100 Call huanjiaodu(nowjiaodu, 21) lidu = 60 End If End If //End If Goto 开始循环检查进入副本 Sub OnScriptExit() dm_ret = dm.UnBindWindow() End Sub Function chajiaodu() dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\shezhi.bmp","000000",0.9,0,intX1,intY1) If intX1 > 0 And intY1 > 0 Then x1 = intX1 -917 y1 = intY1 + 547 x2 = intX1 -880 y2 = intY1 + 570 chajiaodu = dm.Ocr(x1, y1, x2, y2, "000000-000000", 0.8) If chajiaodu <> "" Then chajiaodu=chajiaodu-1+1 Else chajiaodu=10 End If End If End Function Function huanjiaodu(nowjiaodu,tojiaodu) If nowjiaodu > tojiaodu Then imax = nowjiaodu - tojiaodu For i=1 To imax Delay 80 Call Plugin.WindowEx5_01.SendKey(hwnd,0,40,0) //下 Next End If If nowjiaodu < tojiaodu Then imax = tojiaodu - nowjiaodu For i=1 To imax Delay 80 Call Plugin.WindowEx5_01.SendKey(hwnd,0,38,0) //上 Next End If End Function Function daji(lidu) dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\shezhi.bmp","000000",0.9,0,shezhix, shezhiy) If shezhix > 0 And shezhiy > 0 Then qishifalidianx = shezhix - 802 qishifalidiany = shezhiy + 576 //1个力是50像素 判断力度点修正5像素(liduyansex/y) liduyansex = qishifalidianx + 5 * lidu - 5 liduyansey = qishifalidiany liduyanse = dm.GetColor(liduyansex, liduyansey) Call Plugin.WindowEx5_01.SendKey(hwnd,1,32,0) //按下空格键 Delay 300 For i=0 to 9999 step 2 Delay 100 If dm.GetColor(liduyansex, liduyansey) <> liduyanse Then // Call Plugin.WindowEx5_01.SendKey(hwnd,2,32,0) //弹起空格键 Exit For Else End If Next End If End Function