//本脚本为前台打怪脚本,功能仅对获得键盘输入焦点的当前窗口起作用
//最好使用按键精灵最新版,本脚本是在按键精灵9上测试可用
//脚本启动热键:键盘最右侧的小数字键盘上的"+"号;终止热键:键盘最右侧的小数字键盘上的"-"号
//脚本启动方法:
//1.在按键精灵中导入本脚本,并修改保存后,打勾使之有效;
//2.单开时,在TLBB窗口内任意用鼠标点击一下获得焦点,然后按启动热键(数字小键盘上的"+"号),保持3秒钟,直至弹出提示窗口,点击确定即可。
//3.双开时,在第1个TLBB窗口内任意用鼠标点击一下获得焦点,然后按启动热键(数字小键盘上的"+"号),在3秒钟之内用鼠标点击第2个TLBB窗口并保持不变,等待出现提示窗口后,,点击确定即可。
//TLBB:快捷键:F1——第1本书第1个技能;F2——常用的打怪技能键;F3——常用的打怪技能键;F4——一般为半怒的打怪技能键;F11——切换打怪目标
//若你不想使用这么多技能,可以直接修改脚本,或者将屏幕上F2、F3或者F4这些你不需要的技能图标移动到其它空位上
Dim redstartx
Dim redstarty
//用户双开打怪时,2个窗口通过按Ctrl+Tab键切换,此脚本部分支持双开打怪,但因脚本是前台打怪脚本,需要用户不停按Ctrl+Tab键切换两个窗口,仅能让双开时轻松一些。
//注意:redstartx和redstarty需要每次启动脚本之前修改;脚本启动后,不能移动窗口位置;若改变了窗口位置,需重新设置这两个参数
//查看X和Y坐标值,可使用抓抓,将鼠标移动到怪物血条的左侧左上位置,然后记录抓抓上显示的坐标
//屏幕上怪物血条的左上起始位置的X坐标,括号中第1个数是对应第1个窗口的怪物血条的X坐标,第2个数对应的是第2个窗口的怪物血条的X坐标
redstartx = Array(1396, 590)
//屏幕上怪物血条的左上起始位置的Y坐标,括号中第1个数是对应第1个窗口的怪物血条的Y坐标,第2个数对应的是第2个窗口的怪物血条的Y坐标
redstarty = Array(55, 55)
//提示:若用户单开,仅有一个窗口,那么让上述两个参数中括号内的两个数字相同即可,例如redstartx = Array(1392, 1392)

//注意:本脚本中采用的怪物血条颜色的标记为000BD9,显卡不同或者显示设置不同均有可能造成实际颜色差异,并导致脚本误判;若有必要,你需使用抓抓查看怪物血条颜色,然后替换本脚本中所有使用000BD9的地方(共3处)

//初始设置与提示窗口
//下面这句是得到当前键盘输入焦点的窗口句柄,(启动本脚本前,先用鼠标点击第1个TLBB窗口使之成为当前窗口)
Hwndorigin = Plugin.Window.GetKeyFocusWnd()
//延迟3秒钟,在3秒钟内,请用鼠标点击第2个TLBB窗口窗口,并维持到出现提示窗口。
Delay 3000
Hwndorigin2 = Plugin.Window.GetKeyFocusWnd()
Msgbox "两个自动打怪窗口的句柄依次为:" & Hwndorigin & "  " & Hwndorigin2 & " 请点击确定关闭此提示窗口。"

//脚本主体:
//一直不断的循环
Do While True

	//获得当前窗口的序号,第1个窗口的序号为0,第2个为1,不是初始设置的两个窗口时为-1
	Hwndcur = Is0or1()
	//若当前窗口是初始设置的2个TLBB窗口之一时,执行下列操作:
	If Hwndcur >= 0 Then 
		//区域模糊查色,功能:在指定区域内查找颜色近似为000BD9的地方,若找到了,将其位置保存在变量x,y中,若找不到这种颜色,则x,y值小于0
		FindColorEx redstartx(Hwndcur), redstarty(Hwndcur), redstartx(Hwndcur), redstarty(Hwndcur) + 6, "000BD9", 0, 0.8, x, y
		//当前窗口的当前怪物有血,则执行下列操作:
		If x > 0 Then 
			//按F1键,接着按F2键,然后0.8秒内不操作
			KeyPress "F1", 1
			Delay 50
			KeyPress "F2", 1
			Delay 800

			//重新判断当前窗口的当前怪物是否有血
			Hwndcur = Is0or1()
			FindColorEx redstartx(Hwndcur),redstarty(Hwndcur),redstartx(Hwndcur),redstarty(Hwndcur)+6,"000BD9",0,0.8,x,y   
			//当前窗口的当前怪物有血,则执行下列操作:
			If x>0 Then  
			//按F1键,接着按F3键,然后0.8秒内不操作
				KeyPress "F1", 1
				Delay 50
				KeyPress "F3", 1
				Delay 800
			End If

			//重新判断当前窗口的当前怪物是否有血
			Hwndcur = Is0or1()
			FindColorEx redstartx(Hwndcur),redstarty(Hwndcur),redstartx(Hwndcur),redstarty(Hwndcur)+6,"000BD9",0,0.8,x,y   
			//当前窗口的当前怪物有血,则执行下列操作:
			If x>0 Then  
			//按F1键,接着按F4键,然后0.8秒内不操作
				KeyPress "F1", 1
				Delay 50
				KeyPress "F4", 1
				Delay 800
			End If

		Else
			//若当前窗口的怪物无血,则切换打怪对象:按F11键 (用户需先在TLBB的快捷键设置中设置好)
			KeyPress "F11", 1
			Delay 50

		End If
	End If

Loop

//函数Is0or1,功能:返回当前窗口的序号,第1个窗口的序号为0,第2个为1,不是初始设置的两个窗口时为-1
Function Is0or1()   
    Hwndtemp = Plugin.Window.GetKeyFocusWnd()

	If Hwndtemp = Hwndorigin Then 
		Is0or1 = 0
	ElseIf Hwndtemp = Hwndorigin2 Then
		Is0or1 = 1
	Else
		Is0or1 = -1
	End If
	
End Function