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

野生程序猿-杂烧4年前随意分享623

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


相关文章

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

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

按键精灵调用大漠插件后台挂机

大漠插件dmsoft,是一个dll调用的插件,很多语言支持调用,可以用来开发外挂脚本。它的主要优势是后台,就是把窗口拖到屏幕外也能挂机,是一款性能不错的插件。很多图色类外挂脚本都是基于改插件开发的。按...

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

前面介绍了大漠插件,这里再来个复杂点的,这个是 4个号多开刷任务Sub 初始巡检() //判断是否出于英雄之门界面 Delay 10000 MoveTo 40...