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

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

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


相关文章

h5的横屏适配

h5的横屏适配

最近遇到一个问题,我们开发的软件是横屏软件,因客户群体主要是学校,就是使用者是老师和学生。本来软件设计的是电脑机房里用,现在学校希望手机也可以用。结果手机用起来就是这个现象。老师提意见,说字太小看不清...

html5-声音视频自动播放的坑

因为从事的是教学软件的开发,不知何年何月开始声音、视频不支持自动播放了。必须点一个按钮才能播放。教学类软件很多都是有动画的,像播放器一样,从头开始慢慢播放,可以理解为n帧,但是因为程序开发不是视频制作...

python多数据库+memcache操作练习

import function import math import threading from pymemcache.client.base ...

介绍一款文件比较工具Beyond Compare

介绍一款文件比较工具Beyond Compare

这款软件除了可以比较我们的代码差异,还可以比较图片形状差异。有以下几个优点1、代码支持特殊字符,如换行符的一些差异(不同操作系统,如linux跟windows下很多时候会有这个现象)。2、支持上下文功...

GPS经纬度坐标系转换【python版】

再补充个python版的gps经纬度坐标系,在脚本处理数据的时候python,nodejs要比php性能好很多。尤其是他们更擅长多线程# -*- coding: UTF-...

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

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