按键精灵+大漠插件 打boss(脚本demo2)
前面介绍了大漠插件,这里再来个复杂点的打boss脚本
Rem 开始循环检查进入副本 //激活窗口 Call Plugin.WindowEx5_01.SendMouse(hwnd, 3, 100, 100) //鼠标中击 Delay 1200 //出错 确定 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\lijifuhuo.bmp","000000",0.9,0,fhx1,fhy1) If fhx1 > 0 And fhy1 > 0 Then Delay 1000 Goto 开始循环检查进入副本 End If dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\qingping.bmp","000000",0.8,0,myx1,myy1) If myx1 > 0 And myy1 > 0 Then //Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, xs1, ys1) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myx1, myy1) End If //如果不在地图进入地图 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\bojueboss.bmp","000000",0.8,0,myx1,myy1) If myx1 > 0 And myy1 > 0 Then Delay 200 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myx1, myy1-50) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myx1, myy1-50) Delay 2000 End If //如果没有标记那么从每日必做进入 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\meiribizuo1.bmp|D:\DDT\cs1\meiribizuo2.bmp|D:\DDT\cs1\meiribizuo3.bmp|D:\DDT\cs1\meiribizuo4.bmp","000000",0.8,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 3000 //点boss任务进入 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\meiribizuoshijieboss.bmp","000000",0.8,0,myxx1,myyy1) If myxx1 > 0 And myyy1 > 0 Then Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxx1, myyy1) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxx1, myyy1) Delay 4000 Else //没有任务那么需要滚动条动一下 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\meirihuoyue.bmp","000000",0.8,0,myxx2,myyy2) If myxx2 > 0 And myyy2 > 0 Then Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxx2+283, myyy2+454) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxx2+283, myyy2+454) Delay 500 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxx2+283, myyy2+454) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxx2+283, myyy2+454) Delay 500 Delay 500 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxx2+283, myyy2+454) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxx2+283, myyy2+454) Delay 500 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\meiribizuoshijieboss.bmp","000000",0.8,0,myxx3,myyy3) If myxx3 > 0 And myyy3 > 0 Then Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, myxx3, myyy3) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, myxx3, myyy3) Delay 4000 End If End If End If End If //隐藏玩家 排行榜 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\xianshi.bmp","000000",0.8,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 1000 End If dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\paihang.bmp","000000",0.8,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 1000 End If //寻找龙标记1,进入boss dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\bojuebj3.bmp", "000000", 0.9, 0, x1, y1) dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\bojueshangmianbiaoji.bmp", "000000", 0.9, 0, xs1, ys1) If xs1 > 0 And ys1 > 0 Then jiaodutiaohao = 0 // Delay 200 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, xs1, ys1) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, xs1-80, ys1+80) Delay 3000 dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\bojueshangmianbiaoji.bmp", "000000", 0.9, 0, xs1, ys1) If xs1 > 0 And ys1 > 0 Then Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, xs1 - 170, ys1 + 140) Delay 1000 End If ElseIf x1 > 0 And y1 > 0 Then // Delay 200 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, x1+100, y1+200) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, x1+100, y1+200) Delay 100 Delay 3000 dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\bojuebj3.bmp", "000000", 0.9, 0, x1, y1) If x1 > 0 And y1 > 0 Then Delay 500 Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, x1 + 260, y1 + 10) Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, x1 + 260, y1 + 10) //Call Plugin.WindowEx5_01.SendMouse(hwnd, 2, x1 + 260, y1 + 10) Delay 1000 End If End If dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\shezhi.bmp","000000",0.9,0,intXxx1,intYxx1) If intXxx1 > 0 And intYxx1 > 0 Then dm_ret = dm.FindPic(intXxx1-150, intYxx1+16, intXxx1+50, intYxx1+140, "D:\DDT\cs1\hongse1.bmp", "000000", 0.7, 0, zy_x1, xy_y1) dm_ret = dm.FindPic(intXxx1-150, intYxx1+16, intXxx1+50, intYxx1+140, "D:\DDT\cs1\lanse1.bmp", "000000", 0.7, 0, zy_x2, xy_y2) //MessageBox "x1=" & zy_x1 & "x2=" & zy_x2 & "y1=" & xy_y1 & "y2=" & xy_y2 If zy_x1 > 0 And xy_y1 And zy_x2 > 0 And xy_y2 > 0 Then If zy_x2 < zy_x1 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,39,0) //右 Delay 100 End If If zy_x2 > zy_x1 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,37,0) //左 Delay 100 End If End If //nowjiaodu = chajiaodu() //Call huanjiaodu(nowjiaodu, 20) //jiaodutiaohao = 1 //lidu = 52 //先调到最高角度 //If jiaodutiaohao = 0 Then Call Plugin.WindowEx5_01.SendKey(hwnd, 1, 38, 0)//上 Delay 2400 Call Plugin.WindowEx5_01.SendKey(hwnd, 2, 38, 0)//上 jiaodutiaohao = 1 //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 zuoyou() Delay 300 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 //dm.MoveTo intX1, intY1 //正常情况 x1 = intX1 -917 y1 = intY1 + 547 x2 = intX1 -880 y2 = intY1 + 570 jiaodu1 = "" dm_ret = dm.FindPicS(x1, y1, x1+22, y1+30,"0_du.bmp|1_du.bmp|2_du.bmp|3_du.bmp|4_du.bmp|5_du.bmp|6_du.bmp|7_du.bmp|8_du.bmp|9_du.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then //MoveTo xxx, yyy jiaodu1 = dm_ret //MessageBox "11111" End If dm_ret = dm.FindPicS(x1+11, y1, x1+34, y1+30,"0_du.bmp|1_du.bmp|2_du.bmp|3_du.bmp|4_du.bmp|5_du.bmp|6_du.bmp|7_du.bmp|8_du.bmp|9_du.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then //MoveTo xxx, yyy jiaodu1 = jiaodu1 & dm_ret //MessageBox "22222" End If If jiaodu1 = "" Then dm_ret = dm.FindPicS(x1+5, y1, x1+26, y1+30,"0_du.bmp|1_du.bmp|2_du.bmp|3_du.bmp|4_du.bmp|5_du.bmp|6_du.bmp|7_du.bmp|8_du.bmp|9_du.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then //MoveTo xxx, yyy jiaodu1 = dm_ret //MessageBox jiaodu1 End If End If jiaodu = Replace(jiaodu1, "_du.bmp", "") - 1 + 1 //负的情况1 dm_ret = dm.FindPicS(intX1-912, intY1+556, intX1-899, intY1+564,"fu.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then jiaodu1 = "" //如果是负,-1 1位数 912,556 -901,564 dm_ret = dm.FindPicS(intX1-903, intY1+550, intX1-887, intY1+570,"0_du.bmp|1_du.bmp|2_du.bmp|3_du.bmp|4_du.bmp|5_du.bmp|6_du.bmp|7_du.bmp|8_du.bmp|9_du.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then //MoveTo xxx, yyy jiaodu1 = dm_ret End If jiaodu = Replace(jiaodu1, ".bmp", "") - 1 + 1 jiaodu = 0 - jiaodu End If //负的情况2 dm_ret = dm.FindPicS(intX1-919, intY1+556, intX1-906, intY1+564,"fu.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then jiaodu1 = "" //如果是负,-11 2位数 919,556 -908,564 dm_ret = dm.FindPicS(intX1-910, intY1+550, intX1-892, intY1+570,"0_du.bmp|1_du.bmp|2_du.bmp|3_du.bmp|4_du.bmp|5_du.bmp|6_du.bmp|7_du.bmp|8_du.bmp|9_du.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then //MoveTo xxx, yyy jiaodu1 = dm_ret End If dm_ret = dm.FindPicS(intX1-898, intY1+550, intX1-880, intY1+570,"0_du.bmp|1_du.bmp|2_du.bmp|3_du.bmp|4_du.bmp|5_du.bmp|6_du.bmp|7_du.bmp|8_du.bmp|9_du.bmp","000000",0.9,0,xxx,yyy) If xxx > 0 And yyy > 0 Then //MoveTo xxx, yyy jiaodu1 = jiaodu1 & dm_ret End If jiaodu = Replace(jiaodu1, ".bmp", "") - 1 + 1 jiaodu = 0 - jiaodu End If chajiaodu=jiaodu 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 Call Plugin.WindowEx5_01.SendKey(hwnd,1,32,0) //按下空格键 Delay 1000 liduyanse = dm.GetColor(liduyansex, liduyansey) For i=0 to 50 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 Call Plugin.WindowEx5_01.SendKey(hwnd,2,32,0) //弹起空格键 End If End Function Function zuoyou() 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 dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\shezhi.bmp","000000",0.9,0,intXxx1,intYxx1) If intXxx1 > 0 And intYxx1 > 0 Then dm_ret = dm.FindPic(intXxx1-150, intYxx1+16, intXxx1+50, intYxx1+140, "D:\DDT\cs1\hongse1.bmp", "000000", 0.7, 0, xy_x1, xy_y1) //敌 dm_ret = dm.FindPic(intXxx1-150, intYxx1+16, intXxx1+50, intYxx1+140, "D:\DDT\cs1\lanse1.bmp", "000000", 0.7, 0, xy_x2, xy_y2) //我 //MessageBox "x1=" & zy_x1 & "x2=" & zy_x2 & "y1=" & xy_y1 & "y2=" & xy_y2 If xy_x1 > 0 And xy_y1 And xy_x2 > 0 And xy_y2 > 0 Then If xy_x2 < xy_x1 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,39,0) //右 Delay 100 x = xy_x1 - xy_x2 y = xy_y2 - xy_y1 jiaodu2 = Atn(y/x) jiaodu2 = fix(jiaodu2 * 57.3)+10 nowjiaodu = chajiaodu() //调整到80度向上 For i = 0 To 10 Delay 100 nowjiaodu = chajiaodu() If nowjiaodu < 80 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,39,0) //右 End If Next nowjiaodu = chajiaodu() //MessageBox jiaodu2 &"|" & nowjiaodu &"|" & y Call huanjiaodu(nowjiaodu, jiaodu2) Delay 600 Call Plugin.WindowEx5_01.SendKey(hwnd,0,49,0) //1 Call Plugin.WindowEx5_01.SendKey(hwnd,0,52,0) //4 Call Plugin.WindowEx5_01.SendKey(hwnd,0,66,0) //B Call Plugin.WindowEx5_01.SendKey(hwnd,0,49,0) //1 Call Plugin.WindowEx5_01.SendKey(hwnd,0,52,0) //4 Call Plugin.WindowEx5_01.SendKey(hwnd, 0, 66, 0)//B daji (85) Delay 3000 End If If xy_x2 > xy_x1 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,37,0) //左 Delay 100 x = xy_x2 - xy_x1 y = xy_y2 - xy_y1 jiaodu2 = Atn(y/x) jiaodu2 = fix(jiaodu2 * 57.3)+10 //MessageBox jiaodu2 nowjiaodu = chajiaodu() //调整到80度向上 For i = 0 To 10 Delay 100 nowjiaodu = chajiaodu() If nowjiaodu < 80 Then Call Plugin.WindowEx5_01.SendKey(hwnd,0,37,0) //左 End If Next nowjiaodu = chajiaodu() Call huanjiaodu(nowjiaodu, jiaodu2) Delay 600 Call Plugin.WindowEx5_01.SendKey(hwnd,0,49,0) //1 Call Plugin.WindowEx5_01.SendKey(hwnd,0,52,0) //4 Call Plugin.WindowEx5_01.SendKey(hwnd,0,66,0) //B Call Plugin.WindowEx5_01.SendKey(hwnd,0,49,0) //1 Call Plugin.WindowEx5_01.SendKey(hwnd,0,52,0) //4 Call Plugin.WindowEx5_01.SendKey(hwnd, 0, 66, 0)//B daji (85) Delay 3000 End If End If End If End If End Function