按键精灵+大漠插件 打boss(脚本demo1)
前面介绍了大漠插件,这里再来个复杂点的打boss脚本
//初始化数据
//地图信息
//副本坐标
ditux = -230
dituy = -190
//难度坐标
nandux = -320
nanduy = 70
//角度力度
jiaodu = 40
lidu = 58
jiaodutiaohao=0
Set dm = createobject("dm.dmsoft")
hwnd = dm.GetMousePointWindow()
Delay 1500
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")
fangxiang="you"
Rem 开始循环检查进入副本
//激活窗口
Call Plugin.WindowEx5_01.SendMouse(hwnd, 3, 100, 100) //鼠标中击
Delay 1200
//出错 确定
//如果不在地图进入地图
dm_ret = dm.FindPic(0,0,1920,1080,"D:\DDT\cs1\zuqiuboss.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\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\zuqiubj1.bmp", "000000", 0.9, 0, x1, y1)
If x1 > 0 And y1 > 0 Then
jiaodutiaohao = 0
//
Delay 200
Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, x1+641, y1+57)
Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, x1+641, y1+57)
Delay 3500
dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\zuqiubj1.bmp", "000000", 0.9, 0, x12, y12)
If x12 > 0 And y12 > 0 Then
Delay 200
Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, x1+550, y1+120)
Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, x1+550, y1+120)
End If
//For i=0 to 100 step 2
//Delay 100
// dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\zuqiubj2.bmp|D:\DDT\cs1\zuqiubj2_2.bmp", "000000", 0.9, 0, xc1, yc1)
// If xc1 > 0 And yc1 > 0 Then
// Call Plugin.WindowEx5_01.SendMouse(hwnd, 0, xc1-200, yc1)
// Call Plugin.WindowEx5_01.SendMouse(hwnd, 1, xc1-200, yc1)
// Exit For
// End If
//Next
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(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
Else
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)//右
fangxiang="you"
Delay 100
End If
If zy_x2 > zy_x1 Then
Call Plugin.WindowEx5_01.SendKey(hwnd, 0, 37, 0)//左
fangxiang="zuo"
Delay 100
End If
End If
End If
nowjiaodu = chajiaodu()
Call huanjiaodu(nowjiaodu, 20)
jiaodutiaohao = 1
lidu = 52
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
//第一次需要调整角度
If jiaodutiaohao = 0 Then
//判断左右方向
End If
dm_ret = dm.FindPic(0, 0, 1920, 1080, "D:\DDT\cs1\nonu.bmp", "000000", 0.9, 0, intX11, intY11)
If intX11 > 0 And intY11 > 0 And fangxiang="you" Then
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, 50, 0)//2
//Call Plugin.WindowEx5_01.SendKey(hwnd,0,51,0) //3
//Call Plugin.WindowEx5_01.SendKey(hwnd,0,52,0) //4
Call Plugin.WindowEx5_01.SendKey(hwnd,0,66,0) //B
Else
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
End If
nowjiaodu = chajiaodu()
If nowjiaodu <= 25 Then
daji (50)
End If
If nowjiaodu > 25 And nowjiaodu <= 30 Then
daji (45)
End If
If nowjiaodu > 30 And nowjiaodu <= 35 Then
daji (45)
End If
If nowjiaodu > 30 Then
daji (40)
End If
Delay 3000
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, "_du.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, "_du.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 500
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
