第四课:颜色判断!借我一双眼睛


人有一双眼睛,可以通过屏幕的提示来操作电脑。按键精灵的脚本也有这么一双眼睛,那就是使用颜色判断功能,看到屏幕上的点的颜色。

颜色判断命令在“控制命令面板”里,如下图:

下面我们用一个例子来一步步教你用颜色判断命令制作一个自动补血的脚本,本例子由按键专家团逆风之帆 完成

例子:自动补血脚本(热血江湖)
//F3红,F4蓝
VBS hong=70
//血量少于百分之多少(可自行设定)时,脚本自动吃红。
VBS lan=30
//蓝少于百分之多少(可自行设定)时,脚本自动吃蓝。
Rem start
Delay 32
//如果启动脚本后有点卡,则视情况调整此延时。
Rem 补红
IfColor hong*1.28+21 5 4a5373 2
  //如果设定位置处的颜色大约等于没血时的颜色
  KeyPress 114 1
  //按键F3
Delay 256
EndIf
Rem 补蓝
IfColor lan*1.28+21 18 734b4a 2
  //如果设定位置处的颜色大约等于没蓝时的颜色
  KeyPress 115 1
  //按键F4
Delay 256
EndIf

具体步骤及方法:
1.首先在游戏中截个图,然后用按键精灵的抓点坐标/颜色按钮来选取血条中颜色比较鲜艳以及稳定的颜色条来,这个颜色条一般都在血条的边缘位置,如热血江湖就是在血条的上边缘处,我们确定这个边缘颜色条的一个纵坐标为y=5,如例,以后的取点抓色,则都在这一纵坐标下进行;

2.让自己掉一部分血,再截个图下来。接下来就是颜色判断语句的选取了,众所周知,3D的游戏颜色一般都会有点变化,如果用“不等于血条颜色”来判断,则很容易出错,所以选择“如果颜色大约等于,则”这个判断语句会比较稳定一点。具体为:
IfColor x 5 “没血时的颜色” 2
//如果(x,5)点的颜色大约等于没血时的颜色

3.没血时的颜色怎样确定?3D游戏里,多半这个没血时的颜色也会不一样的,所以我们要多取几个点,然后求出这几个点的平均颜色值来。很幸运,我们在热血江湖里纵坐标y=5下血条中没血的横坐标上各取几个点后发现,它们的颜色只有两种:525573和4a5173,所以我们很容易求出了这个没血的平均颜色值:4a5373。则判断语句变为:
IfColor x 5 “4a5373” 2
什么?不会求颜色平均值?没问题,不会的可以去看按键专家merting写的“RGB颜色平均值查看脚本”之帖子

4.判断语句,颜色,以及纵坐标都已经确定了,那还有横坐标呢?别急,这个就是把抓色版做成%比加血设置的关键了。同样可以用按键精灵的抓点坐标/颜色按钮功能来找坐标。我们找到热血江湖中血条的zui左端横坐标为x1=21,zui右端横坐标为x2 =149。则血条的长度为L=x2-x1=128。说到这里,大概大家都明白应该怎么设置%比加血了吧。没错,就是用你想要自动加血时的血量%比值变量hong%,乘以血条的总长度L,再加上血条zui左端的横坐标x1,就得到了按键精灵监测血量所抓色点的横坐标x的值:
x=hong/100*L+x1=hong*1.28+21,至此,%比吃红的颜色判断语句已经确定:
IfColor hong*1.28+21 5 4a5373 2

5.整理一下,我们就得到了能%比补红设置的完整脚本了:
VBS hong=70
//血量少于百分之多少(可自行设定)时,脚本自动吃红。
Rem 补红
IfColor hong*1.28+21 5 4a5373 2
//如果设定位置处的颜色大约等于没血时的颜色
KeyPress 114 1
//按键F3
Delay 256
EndIf

至于补蓝的%比设置,当然是同理操作了。OK,现在大家都明白怎么做了吧,那就赶快行动起来,亲自做个属于自己的脚本来,只有实践,才是学习的zui佳捷径哦!!