按键精灵+大漠插件 打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