当前位置:文档之家› 按键精灵教程

按键精灵教程

变量!神奇的小柜子变量就是会变化的量。

就像一个小柜子,我们可以在柜子里装载不同的东西,而当我们需要找到这些东西的时候,只要记住柜子的名字就可以了。

使用变量的方法是:先定义(给柜子起名)、再赋值(将物品放进柜子)、最后使用(根据柜子名字找到放在其中的物品)。

使用Dim命令定义变量,例如:Dim str1 //定义变量str1Dim var1=22 //定义变量Var1,并且赋值为22例子1:使用变量设置输出文字的内容1、下面红色的是3行脚本,请把他复制到“源文件”当中Dim str1str1 = "你很聪明"SayString str12、Dim str1 就是定义变量,也就是说我们创建了一个小柜子,给他起名为str13、str1 = "你很聪明" 就是赋值,我们把"你很聪明"这几个字放到str1这个小柜子里4、SayString str1 表示我们输出str1这个变量的内容,也就是说把str1这个小柜子里的内容拿出来交给SayString 这个命令去使用。

5、如果你希望修改喊话的内容,只要修改str1这个小柜子里的内容就可以了。

例子2:变量的一些用法a=1把数字1放进柜子a中。

b="你猜对了吗?"把字符串你猜对了吗?放进柜子b中。

字符串必须用""包含。

dc=3.14159265把小数放进柜子dc中。

num1=1num1=33num2=55sum=num1+num2首先把33和55分别放入num1和num2中。

然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。

结果sum等于88num1=1num1=33num1被给值为1,然后又给值为33。

此时,num1中存储是的33。

1就被覆盖掉了。

没有了:)sum=sum+1这句不等同于数学的加法,也是初学者不容易理解的地方。

我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。

sum原来的值是88,做完加法后,sum等于89。

pig=1pig=pig*3+pig能猜出pig最后等于几么?1*3+1。

结果是4例子3:使用变量输入1到100的数字VBSCall RunApp("notepad")Delay 2000a=1b=100While a<=bSayString aKeyPress 13,1VBS a=a+1EndWhile上面这个例子我们使用了2个变量,a和b。

条件判断!是与否的选择给出一个条件,让按键精灵进行判断,根据判断的结果执行不同的脚本,这就是“是”与“否”的选择。

下面针对上图着重解释一些相关概念:∙表达式:点击这里查看表达式的解释∙取值为真:表达式的计算结果是真。

∙执行后面的语句:就是按键精灵执行判断语句之后,“条件结束”之前的语句,这也是我们要求按键精灵判断的目的所在。

∙循环执行:就是按键精灵重复执行判断语句之后,“循环执行”之前的语句。

当条件不再满足时,就不再执行循环中的名字。

循环中间的一条或多条语句被称为“循环体”。

整个语句连起来可以读成:如果表达式xxx为真(成立),那么就执行后面的语句(循环执行)。

例子:用条件判断来执行不同的脚本Dim a,ba=10b=10If a=bMessageBox "a等于b"EndIf上面这个例子,我们定义了2个变量a和b。

并且给a和b分别赋值。

If命令就是条件判断命令,如果a=b,那么就会弹出一个窗口。

如果我们修改a=20,b=10,那么a=b就是不正确的,也就不会弹出对话框。

颜色判断!借我一双眼睛人有一双眼睛,可以通过屏幕的提示来操作电脑。

按键精灵的脚本也有这么一双眼睛,那就是使用颜色判断功能,看到屏幕上的点的颜色。

下面我们用一个例子来一步步教你用颜色判断命令制作一个自动补血的脚本。

例子:自动补血脚本(热血江湖)//F3红,F4蓝VBS hong=70//血量少于百分之多少(可自行设定)时,脚本自动吃红。

VBS lan=30//蓝少于百分之多少(可自行设定)时,脚本自动吃蓝。

Rem startDelay 32//如果启动脚本后有点卡,则视情况调整此延时。

Rem 补红IfColor hong*1.28+21 5 4a5373 2//如果设定位置处的颜色大约等于没血时的颜色KeyPress 114 1//按键F3Delay 256EndIfRem 补蓝IfColor lan*1.28+21 18 734b4a 2//如果设定位置处的颜色大约等于没蓝时的颜色KeyPress 115 1//按键F4Delay 256EndIf具体步骤及方法:1.首先在游戏中截个图,然后用按键精灵的抓点坐标/颜色按钮来选取血条中颜色比较鲜艳以及稳定的颜色条来,这个颜色条一般都在血条的边缘位置,如热血江湖就是在血条的上边缘处,我们确定这个边缘颜色条的一个纵坐标为y=5,如例,以后的取点抓色,则都在这一纵坐标下进行;2.让自己掉一部分血,再截个图下来。

接下来就是颜色判断语句的选取了,众所周知,3D的游戏颜色一般都会有点变化,如果用“不等于血条颜色”来判断,则很容易出错,所以选择“如果颜色大约等于,则”这个判断语句会比较稳定一点。

具体为:IfColor x 5 “没血时的颜色” 2//如果(x,5)点的颜色大约等于没血时的颜色3.没血时的颜色怎样确定?3D游戏里,多半这个没血时的颜色也会不一样的,所以我们要多取几个点,然后求出这几个点的平均颜色值来。

很幸运,我们在热血江湖里纵坐标y=5下血条中没血的横坐标上各取几个点后发现,它们的颜色只有两种:525573和4a5173,所以我们很容易求出了这个没血的平均颜色值:4a5373。

则判断语句变为:IfColor x 5 “4a5373” 24.判断语句,颜色,以及纵坐标都已经确定了,那还有横坐标呢?别急,这个就是把抓色版做成%比加血设置的关键了。

同样可以用按键精灵的抓点坐标/颜色按钮功能来找坐标。

我们找到热血江湖中血条的最左端横坐标为x1=21,最右端横坐标为x2 =149。

则血条的长度为L=x2-x1=128。

说到这里,大概大家都明白应该怎么设置%比加血了吧。

没错,就是用你想要自动加血时的血量%比值变量hong%,乘以血条的总长度L,再加上血条最左端的横坐标x1,就得到了按键精灵监测血量所抓色点的横坐标x的值:x=hong/100*L+x1=hong*1.28+21,至此,%比吃红的颜色判断语句已经确定:IfColor hong*1.28+21 5 4a5373 25.整理一下,我们就得到了能%比补红设置的完整脚本了:VBS hong=70//血量少于百分之多少(可自行设定)时,脚本自动吃红。

Rem 补红IfColor hong*1.28+21 5 4a5373 2//如果设定位置处的颜色大约等于没血时的颜色KeyPress 114 1//按键F3Delay 256EndIf至于补蓝的%比设置,当然是同理操作了。

OK,现在大家都明白怎么做了吧,那就赶快行动起来,亲自做个属于自己的脚本来,只有实践,才是学习的最佳捷径哦!找图找色!眼与脑的结合上一课我们介绍了颜色判断,这一课我们来介绍更聪明的功能,找图和找色。

顾名思义,找图是在屏幕上查找指定的图像,而找色就是查找指定的颜色。

找图功能是“按键精灵VBS命令”里的FindPic命令(很抱歉还没有把这个功能做成界面操作的方式,大家只能人工去填写参数了)使用找图功能的步骤一、抓图:把你想要找的图片抓下来保存为BMP格式1.进入脚本编辑器,点击抓点抓色按钮2.到你希望抓图的界面上按下PrintScreen(就是系统的抓图热键)3.返回按键精灵的界面,这时会看到你刚才的抓图已经出现在抓图界面当中。

4.拖动鼠标左键将你想要找的图片区域选中,松开左键后会出现一个菜单,选择“保存为位图文件”这样你需要查找的图片就制作完成了。

二、找图:使用FindPic命令进行找图VBSCall FindPic(left,top,right,bottom,filename,similar,x,y)在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色similar为相似度,取0.5到1之间的小数。

数值越大,对图片的相似度要求越严格,速度也越快。

推荐取0.9如果没有找到图片,则x和y的值都被置为-1推荐使用周围颜色单一的图片例子:VBSCall FindPic(0,0,1023,767,"1.bmp",0.9,x,y)If x>=0 and y>=0MoveTo x yEndIf在区域(0,0,1023,767)中找与文件1.bmp中的图形比较接近的地方,如果找到,则把鼠标移动到这个地方。

特别提醒:6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子:VBSCall FindPic(0,0,1023,767,"Attachment:\1.bmp",0.9,x,y)找色功能的技巧找色功能相对简单一些,在“按键精灵VBS命令”里提供了3个找色命令FindColor、FindCenterColor和命令名:Open作用:打开一个控制台窗口。

参数:无。

返回值:无。

例子:Plugin Console.Open()Plugin Console.WriteLine("请随意输入几个字,然后按回车" & vbcrlf)Plugin userInput=Console.ReadLine()Plugin Console.WriteLine("您的输入是" & userInput & vbcrlf)Plugin Console.WriteLine("演示脚本结束,请按下Y键,退出控制台" & vbcrlf)Rem WaitUserInputKeyPlugin userInput=Console.WaitKey()If userInput = asc("y") or userInput = asc("Y")Plugin Console.Close()ElseGoto WaitUserInputKeyEndIf命令名:Close作用:关闭控制台窗口。

相关主题