变量!神奇的小柜子
变量就是会变化的量。就像一个小柜子,我们可以在柜子里装载不同的东西,而当我们需要到这些东西的时候,只要记住柜子的名字就可以了。
使用变量的方法是:先定义(给柜子起名)、再赋值(将物品放进柜子)、最后使用(根据柜子名字到放在其中的物品)。
使用Dim命令定义变量,例如:
Dim str1 //定义变量str1
Dim var1=22 //定义变量Var1,并且赋值为22
例子1:使用变量设置输出文字的内容
1、下面红的是3行脚本,请把他复制到源文件当中
Dim str1
str1 = "你很聪明"
SayString str1
2Dim str1 就是定义变量,也就是说我们创建了一个小柜子,给他起名为str1
3str1 = "你很聪明" 就是赋值,我们把"你很聪明"这几个字放到str1这个小柜子里
4SayString str1 表示我们输出str1这个变量的内容,也就是说把str1这个小柜子里的内容拿出来交给SayString这个命令去使用。
5、如果你希望修改喊话的内容,只要修改str1这个小柜子里的内容就可以了。
例子2:变量的一些用法
a=1
把数字1放进柜子a中。
b="你猜对了吗?"
把字符串 你猜对了吗? 放进柜子b中。字符串必须用""包含。
dc=3.14159265
把小数放进柜子dc中。
num1=1
num1=33
num2=55
sum=num1+num2
首先把3355分别放入num1num2中。然后把他们取出来,做加法操作(加法是由CPU来处理的),把结果放在sum中。结果sum等于88
num1=1
num1=33
num1被给值为1,然后又给值为33。此时,num1中存储是的331就被覆盖掉了。没有了:)
sum=sum+1
这句不等同于数学的加法,也是初学者不容易理解的地方。我们只要想,把sum拿出来和1做加法,再放回sum中就可以了。sum原来的值是88,做完加法后,sum等于89
pig=1
pig=pig*3+pig
能猜出pig最后等于几么?1*3+1。结果是4
例子3:使用变量输入1100的数字
VBSCall RunApp("notepad")
Delay 2000
a=1
b=100
While a<=b
  SayString a
  KeyPress 13,1
  VBS a=a+1
EndWhile
上面这个例子我们使用了2个变量,ab
条件判断!是与否的选择
给出一个条件,让按键精灵进行判断,根据判断的结果执行不同的脚本,这就是的选择。
下面针对上图着重解释一些相关概念:
表达式:点击这里查看表达式的解释
取值为真:表达式的计算结果是真。
执行后面的语句:就是按键精灵执行判断语句之后,条件结束之前的语句,这也是我们要求按键精灵判断的目的所在。
循环执行:就是按键精灵重复执行判断语句之后,循环执行之前的语句。当条件不再满足时,就不再执行循环中的名字。循环中间的一条或多条语句被称为循环体
整个语句连起来可以读成:如果表达式xxx为真(成立),那么就执行后面的语句(循环执行)。
例子:用条件判断来执行不同的脚本
Dim a,b
a=10
b=10
If a=b
   MessageBox "a等于b"
EndIf
上面这个例子,我们定义了2个变量ab。并且给ab分别赋值。If命令就是条件判断命令,如果a=b,那么就会弹出一个窗口。如果我们修改a=20b=10,那么a=b就是不正确的,也就不会弹出对话框。
颜判断!借我一双眼睛
人有一双眼睛,可以通过屏幕的提示来操作电脑。按键精灵的脚本也有这么一双眼睛,那就是使用颜判断功能,看到屏幕上的点的颜。
下面我们用一个例子来一步步教你用颜判断命令制作一个自动补血的脚本。
例子:自动补血脚本(热血江湖)
//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
  //writeline教程如果设定位置处的颜大约等于没蓝时的颜
  KeyPress 115 1
  //按键F4
Delay 256
EndIf
具体步骤及方法:
1.首先在游戏中截个图,然后用按键精灵的抓点坐标/颜按钮来选取血条中颜比较鲜艳以及稳定的颜条来,这个颜条一般都在血条的边缘位置,如热血江湖就是在血条的上边缘处,我们确定这个边缘颜条的一个纵坐标为y=5,如例,以后的取点抓,则都在这一纵坐标下进行;
2.让自己掉一部分血,再截个图下来。接下来就是颜判断语句的选取了,众所周知,3D的游戏颜一般都会有点变化,如果用不等于血条颜来判断,则很容易出错,所以选择如果颜大约等于,则这个判断语句会比较稳定一点。具体为:
IfColor x 5 “没血时的颜 2
//如果(x,5)点的颜大约等于没血时的颜
3.没血时的颜怎样确定?3D游戏里,多半这个没血时的颜也会不一样的,所以我们要多取几个点,然后求出这几个点的平均颜值来。很幸运,我们在热血江湖里纵坐标y=5下血条中没血的横坐标上各取几个点后发现,它们的颜只有两种:5255734a5173,所
以我们很容易求出了这个没血的平均颜值:4a5373。则判断语句变为:
IfColor x 5 4a5373 2
4.判断语句,颜,以及纵坐标都已经确定了,那还有横坐标呢?别急,这个就是把抓版做成%比加血设置的关键了。同样可以用按键精灵的抓点坐标/颜按钮功能来坐标。我们到热血江湖中血条的最左端横坐标为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 2
5.整理一下,我们就得到了能%比补红设置的完整脚本了:
VBS hong=70
/
/血量少于百分之多少(可自行设定)时,脚本自动吃红。
Rem 补红
IfColor hong*1.28+21 5 4a5373 2
//如果设定位置处的颜大约等于没血时的颜
KeyPress 114 1
//按键F3
Delay 256
EndIf
至于补蓝的%比设置,当然是同理操作了。OK,现在大家都明白怎么做了吧,那就赶快行动起来,亲自做个属于自己的脚本来,只有实践,才是学习的最佳捷径哦!
图!眼与脑的结合
上一课我们介绍了颜判断,这一课我们来介绍更聪明的功能,图和。顾名思义,图是在屏幕上查指定的图像,而就是查指定的颜。
图功能是按键精灵VBS命令里的FindPic命令(很抱歉还没有把这个功能做成界面操作的方式,大家只能人工去填写参数了)
使用图功能的步骤
一、抓图:把你想要的图片抓下来保存为BMP格式
1.进入脚本编辑器,点击抓点抓按钮
2.到你希望抓图的界面上按下PrintScreen(就是系统的抓图热键)
3.返回按键精灵的界面,这时会看到你刚才的抓图已经出现在抓图界面当中。
4.拖动鼠标左键将你想要的图片区域选中,松开左键后会出现一个菜单,选择保存为位图文件这样你需要查的图片就制作完成了。
二、图:使用FindPic命令进行图
VBSCall FindPic(left,top,right,bottom,filename,similar,x,y)
在区域内从左到右,从上到下文件名为filenamebmp文件,把到的坐标保存在变量xyleft,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜similar为相似度,取0.51之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9如果没有到图片,则xy的值都被置为-1推荐使用周围颜单一的图片
例子:
VBSCall FindPic(0,0,1023,767,"1.bmp",0.9,x,y)
If x>=0 and y>=0
  MoveTo x y 
EndIf
在区域(0,0,1023,767)中与文件1.bmp中的图形比较接近的地方,如果到,则把鼠标移动到这个地方。
特别提醒:6.30版之后,图的文件路径可以直接引用附件中的图片,不需要释放,例子:
VBSCall FindPic(0,0,1023,767,"Attachment:\1.bmp",0.9,x,y)
功能的技巧
功能相对简单一些,在按键精灵VBS命令里提供了3个命令FindColorFindCenterColorFindColorEx。大家查看一下相关命令的说明即可。
控制台黑屏操作
功能介绍:对Windows的控制台进行操作。
070110 收录进按键精灵6.10
命令名:Open
作用:打开一个控制台窗口。参数:无。返回值:无。
例子:
Plugin Console.Open()
Plugin Console.WriteLine("请随意输入几个字,然后按回车" & vbcrlf)
Plugin userInput=Console.ReadLine()
Plugin Console.WriteLine("您的输入是" & userInput & vbcrlf)
Plugin Console.WriteLine("演示脚本结束,请按下Y键,退出控制台" & vbcrlf)
Rem WaitUserInputKey
Plugin userInput=Console.WaitKey()
If userInput = asc("y") or userInput = asc("Y")
Plugin Console.Close()
Else
Goto WaitUserInputKey
EndIf
命令名:Close
作用:关闭控制台窗口。参数:无。返回值:无。例子:参见Open的例子

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。