按键精灵+大漠插件 打boss(脚本demo1)

野生程序猿-杂烧5年前随意分享760

前面介绍了大漠插件,这里再来个复杂点的打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


相关文章

按键精灵+大漠插件 打boss(脚本demo4)

前面介绍了大漠插件,这里再来个复杂点的,这个是4开刷副本//初始化数据 //地图信息 //副本坐标 ditux = -230 dituy = -19...

nodejs同步mysql操作类

nodejs越来越火了,打算稍微在深入学习一下,于是把php的mysql操作类库稍微改了一下,为了保留php思路,这里加入了同步的方法。简单测了一下,本地 没有问题,不知道同步在多人访问时候是否有坑,...

python RabbitMq的订阅

【test_RabbitMq1.py】import pika import json credentials = pika.PlainCredentia...

阿里云获取TOKEN

阿里云获取TOKEN阿里云有sdk,但是看了一下,解压后有10多MB,于是参照官方文档写一个https://help.aliyun.com/document_detail/113251.html采坑指...

前端有没必要学习photoshop

前端有没必要学习photoshop

  现在前端开发已经工程化,可以说前端前几年的受欢迎程度已经超过后端。再加上javascript的后端语言nodejs,让前端或者说前后端全栈更受欢迎。  在我就职的几家公司里,遇到了不少前端、后端,...

经纬度的拓展应用

经纬度的拓展应用

前面讲的了如何分析一批gps数据一年的使用情况(所在经纬度是哪个城市);其实这个需求是前公司提给一个python数据分析的。需求蛮多,包括最大速度啊、平均速度啊、有没急刹车啊。我是负责配合数据生成报告...