按键精灵怎么使用?

1个月前 (10-29 18:41)阅读8回复0
路人甲
路人甲
  • 管理员
  • 注册排名2
  • 经验值59725
  • 级别管理员
  • 主题11945
  • 回复0
楼主

  转舞月茗香——按键精灵脚本教程

本教程欢送转载,但请说明:转载自简单游官方论坛,做者:舞月茗香

在第一版教程的根底部门发布之后,遭到了强烈热闹的欢送,也深感责任严重。同时,对第一版内容编排,自我觉得其实不优良,文容急赶所致,良多重要的内容都一带而过,并没把它放到做为一种入门教程的根底上。

  思过更新,才有此从头修改版。以不求速度,只要量量为前提,带更多的伴侣,逾越按键精灵编程的门槛,到达传说中高手的境界。

做为简单游最早的一批员工,整整一年的时间都在和按键精灵打交道,从简单游起步时,只要少部门人晓得那个名字,到如今拥有几十万的固定用户群,我深感欣慰。

  记得在岁首年月的时候,第一次把脚本公布在简单游,第一次感触感染玩家们的热情,第一次有玩家伴侣每天帮我测试脚本、提出定见、每天守侯的电脑前期待我更新的情景。每次忆起,城市有莫名的冲动。同时按键精灵做为老牌的脚本东西,时至今日,都没有一份优良的起步教程,也颇为可惜。

  以某鄙人之力,侵浸菲薄之功,发布此按键精灵核心教程,以尽心意。

我会尽量的在教程中描画更多的内容,不但单是按键精灵入门教程和脚本编写技巧进步,同时也会讲述按键精灵底层的一些手艺细节与实现办法。以初学者为导读对象,从浅入深,从简入繁,一步步的走入漂亮的按键精灵世界。

第一部门会以补红脚本动手,穿带几乎所有根底常识,为后续的章节打下坚实的根底。

第二部门则是2D和3D游戏的主动打怪脚本的阐发与造做,从思绪到代码编写,再到问题的处理思绪,给出详尽的描述。

第三部门转换思绪,讲述其他非游戏的脚本若何造做,进而把按键精灵扩展到更多的范畴。便利日常生活所需。

第四部门超越按键,也是最初一部门,描述按键精灵连系独有的插件系统,编写出愈加强大的软件功用。

在本教程草拟之日起,请伴侣们耐心期待,因第一次写此类教程,本着对各人负责的立场,教程写好要频频修改,权衡各常识点的编排的章节与要点。进度会稍慢,以此包管,每周至少会更新一节。历时半年之久,只求精品现世,望伴侣们海涵。

初窥补红蓝脚本

本教程欢送转载,但请说明:转载自简单游官方论坛:bbs。

  jdyou。com

做者:舞月

第一章概述

第一章以补红脚本为根底,从简入繁,从易到杂,详细讲述补红脚本的造做办法与按键精灵根底常识。在描画整个补红脚本的根底上,为第二章主动打怪脚本的造做体例铺垫根底。

  若是你能从对峙看完第一章,能够必定的是,你会到达简单游已有的各专区补红蓝脚本的设想程度。

注释起头:

良多伴侣都留言来信询问,若何造做本身的补红补蓝脚本。其实编写办法多种多样,所在多有。

  在本章里,会以补红蓝脚本做为切入点,现实讲述各类脚本的编写办法。并避开萎燥的编程概念讲解,以实为主,通过大量的应用例子掌握按键精灵。

起首呈现在本节中的一些术语做一个简短的申明:

坐标——屏幕象素的坐标值,如当前分辩率为1024×768,则屏幕左上角的坐标是:0,0。

  右下角则是:1024,768。

抓色/抓点——抓取屏幕内某一象素点的坐标极颜色。利用办法:控造号令-抓点坐标/颜色-在面图上点左键,参加到坐标点-退出抓点-选好坐标颜色后-插入

关键字——按键精灵的保留字,不成以做变量利用。

领会以上内容后,就能够起头我们的脚本之旅了。

先考虑手动玩的情况,当本身的血或者魔法值低于某一临界值时,我们就要利用各类补血补魔的药品了。同样,按键精灵也通过那点判断,若是屏幕坐标的某一点颜色,不等于血或魔的颜色,就该吃药了。

  我们来看在按键精灵里的写法:

IfColor138109ef844b1

KeyPress491

EndIf

对以上代码解释如下:

若是(138,109)的颜色不等于#ef844b颜色,则

按键

前提完毕

此中138,109是血条上肆意问题,ef844b是血的颜色。

ifcolor——是按键精灵的关键字,暗示那句是判断颜色。

138109——别离是屏幕上X,Y的坐标值。

ef844b——是屏幕上的颜色16进造的BGR值

1——代表前提,该位置能够设置0,1,2三个值,0是相等,1是不等,2是迷糊相等

只要以上的代码是不敷够的,原因在于以上代码只运行一次。

  我们要让他不竭的检测颜色,如许就到达主动补红补蓝的目标了。

看两句代码:

Rems

Gotos

解释:“Rems”能够理解为在该位置做一个标识表记标帜s。而“Gotos”则是无前提跳到此标识表记标帜施行,此中s能够自定义,跳到Rem[标识符]处。

  rem和goto都是按键精灵的关键字。

那里说一下法式运行机造,每行代码都有行号,脚本解释器要一行一行代码的施行下去,曲到施行最初一行代码或碰着EndScript语句(该语句在后面会有讲解),没有任何代码可施行了,法式就退出。

  我们的目标是让法式延续不竭的停止检测,有了rem。。goto就完美处理了。来看最初的实例:

Rems

IfColor138109ef844b1

KeyPress491

EndIf

Delay100

Gotos

解释:Delay是暂停运行的关键字,后面跟从的100,暗示暂停0。

  1秒。

整个法式构造明晰,一目了然,不再做过多的解释。补蓝脚本留自然业。

回忆本节所讲解的关键内容:

ifcolor。。endif关键字的利用办法

IfColor[X坐标][Y坐标][GBR颜色][比照前提]

rem。

  。goto关键字的利用办法

Rem[标识表记标帜名]

Goto[标识表记标帜名]

delay关键字的利用办法

Delay[暂停时间,单元毫秒]

再接再力渗入补红脚本

本教程欢送转载,但请说明:转载自简单游官方论坛:bbs。

  jdyou。com

做者:舞月

回忆上节所说的内容:

1、ifcolor[x][y][颜色][比照]

ifcolor-关键字,用于颜色比照

x-屏幕上横坐标

y-屏幕上枞坐标

颜色-BGR三元色

比照-0:相等1:不等2:约等

2、Rem[标识表记标帜]

rem-关键字,在该行号做个标识表记标帜,为goto做标识表记标帜

3、Goto[标识表记标帜]

goto-关键字,跳转到相关标识表记标帜。

  标识表记标帜能够是任何字母、数字、汉字、特殊符号,但该标识表记标帜必需独一。不然会错误跳转。

4、Delay[毫秒]

delay-关键字,暂停XX毫秒持续运行。

我碰着过不行一款游戏,用上一节所讲述的脚本,利用其实不一般。

  通过测试阐发,领会到游戏画面与血条画面刷新其实不同步。那会招致判断错误,处理法子是通过取游戏血条的底色来判断。那个办法只合适底色稳定,或变革不大的游戏。比照值给0或2

IfColor1381091b7c5d0

KeyPress491

EndIf

但若是底色是通明的(随情况变革而变革,没有固定的颜色),就比力欠好做了,好比韩国的Archlord那款游戏。

  先给出一篇代码,然后实例讲解。

i=0

For5

IfColor1381092312ff0

i=i+1

EndIf

EndFor

Ifi=0

//加血

EndIf

本段代码引出了两个概念:

1、变量:如第一行的i=0和ifcolor体中的i=i+1

2、轮回语句:for5

3、前提语句:ifi=0

下面别离对那两点停止讲解。

1、变量:

变量的概念,关于初学者来说,确实不容易理解。为了加深理解,那里放弃书面语描述,先讲变量若何利用。

我们来描画如许一段生活中的场景:手里拎了良多工具,并想进超市,那么一定要存包,在从超市出来后,再把存起来的工具取出来。

  再描画别的一段生活中的场景:我们取银行存钱,拿着银行卡,能够在良多处所取钱消费。

就如许一个存和取的动做,已经代表了变量的应用,变量就是以上描述中的柜子和银行卡,我们把数据存到变量中,然后在需要该数据的时候再从变量拿出来用。

  但本色上,变量并非柜子,他是一个取代品,或者说是代名词,假设我们把数字22存到变量a中,那么a就代表了22,当我们需要利用那个22的时,间接用a来取代他就能够,22其实不会从a中消逝。而他的特征就像柜子一样,能够贮存我们需要他贮存的各类数据。

看详细实例:

a=22//在那里我们给一个变量名叫a的变量,赋值22

b=a//那里则是把a变量的值22取出,赋值给b变量,而a变量的值不会消逝,此时a和b的值都是22

c=a+b//把a和b的值取出来做加法操做,赋值给c变量,此时a和b的值都是22,c的值是44

a=a-1//那句和数学上的理解就纷歧样了,起首从a中取出值22,然后减1,最初的成果再送回给a,此时a的值是21

把以下代码复造到按键精灵中,运行一次,看看效果,会加深理解。

a=22

VBSCallCallMessageBox(a)

b=a

VBSCallCallMessageBox(b)

VBSCallCallMessageBox(a)

c=a+b

VBSCallCallMessageBox(a)

VBSCallCallMessageBox(b)

VBSCallCallMessageBox(c)

a=a-1

VBSCallCallMessageBox(a)

关于变量的描述,到此还远远不敷,在此,仅解释了变量做加减法的操做,不外关于解释本节起头的代码已经足够。

  愈加冗杂的内容,会在以后陆续讲到。

2、轮回语句:for5

轮回语句比力容易理解,for5的感化就是轮回for到endfor中的数据5次。现实看一次效果会彻底理解,不再做过多解释:

for3

VBSCallCallMessageBox(3)

endfor

那段代码会弹出三次3。

3、前提语句:ifi=0

从语意上,我们看的出,若是i等于0,则做某些操做。起首要说的,if做为按键精灵关键字,承担的感化就是分收语句块,关于那点会鄙人节做详细的描述。if和ifcolor两个关键字是按键精灵独一的前提语句。

  前提语句,既满足前提,则施行某些操做,不然施行别的一些操做。在if后面会跟从一个前提判断句,在那里就是i=0。前提判断句的成果只要两种:“实”或“假”,“是”或“非”。要么准确,不然就不准确,没有中立的存在。从变量的解释中,我们看到i的值可能是0,也可能是1到4中任何一个数。

  若是i是0的话,那么i=0的成果就是“实”,不然他就是“假”。

看详细实例:

if1=2//假

if3=3//实

把下面代码复造到按键精灵中,运行一次,会对if语句有更深的理解。

a=1

ifa=1

VBSCallCallMessageBox(1)

endif

ifa=0

VBSCallCallMessageBox(0)

endif

那里有一个可能引起歧义的处所,我在那里做一个解释。

我们发如今变量赋值的时候,我们利用“=”。而两个值比照的时候,我们仍是利用“=”。到底那个=号有几种感化,什么时间发作什么感化呢?那里我申明一下:在=号不需要任何返回值的情况下,则是“赋值运算符”,需要返回值的情况,则是“比力运算符”。

  在if傍边,if语句后面,需要有一个实假值的存在,以判断if下面的语句能否施行。

通过以上两个概念的简单理解,我们来阐发一下本节起头部门代码的流程:

i=0//起首给变量i赋值0

For5//轮回施行5次ifcolor语句

IfColor1381092312ff0//若是右边(138,109)的颜色等于2312ff

i=i+1//把i变量的值加1

EndIf//完毕ifcolor语句块

EndFor//完毕轮回体

Ifi=0//若是轮回5次的颜色都不相等,则

//加血

EndIf//完毕if语句块

信赖以上的解释,已经完好描述了该代码的感化。

  而且我们发现if和ifcolor的完毕关键字都是endif。我现实编写代码中,我发现良多伴侣都有忘记写endif的时候。此点万万切记,不要忘记写哦。

回忆本节所讲解的关键内容:

1、变量的简单利用与赋值办法

2、if。

  。endif语句的利用体例

3、for。。endfor语句的利用体例

高级补红蓝脚本写做的根底常识

本教程欢送转载,但请说明:转载自简单游官方论坛:bbs。

  jdyou。com

做者:舞月

本节比力特殊,其实不会讲述现实的脚本编写技巧,而是对前两节内容并没表述明晰,或还存在疑问的处所,停止深切分析。以求掌握设想的精华。

回忆上一节内容:

1、变量的简单利用与赋值办法

2、if。

  。endif语句的利用体例

3、for。。endfor语句的利用体例

变量的详细讲述:

在上节中,我们晓得了变量的简单应用,那里会对变量有一个详细明晰的描述,并提出一些错误的办法,以求制止。

  在之前的教程发进来之后,看客们的热情异常高涨,按照之前所讲内容,纷繁编写出本身的脚本,但在此中发现了某些影响全局的错误。此中就包罗变量的错误利用。好,我们起头。

VBS中,变量只要一类型,既变体型。何为变体型,那要从VB中讲起。

  VB中变量分为良多在品种型,包罗整型、浮点型、字符串类型等等。关于我们进修按键精灵的编写,深揪VB中的变量类型是毫无用途的,那里表过不谈。

在VBS变量只要一品种型,什么是数据类型呢?我们晓得变量是一个存储空间,在VB中每一种变量所能存储的数据是差别的。

  好比:a=1那么a变量存储的是整数类型,而b=1。1。那么b变量存储的是小数类型。若是那时把a=b,则呈现错误。因为整数类型并没有存储小数类型的才能,VB解释器会呈现一个施行期错误。关于数据类型,若是想晓得更多,在搜索引擎里能够找到十分多的内容。

  当然,若是不晓得,对我们的课程也不会有丝毫影响。

回过之前的话题,VBS变量只要一种数据类型,那种数据类型叫做变体型,既是说,无论你向变量里贮存任何数据,那么该变量都能够主动变成响应的数据类型。明白了那点,我们就能够在按键精灵里随意赋值了。

  那里要提一下字符串类型。因为字符串与其他数据类型的差别性,所以利用办法会略有差别。也是初学者经常呈现的问题。

我们暂且能够把数据类型理解为两种:数字类型和字符类型。数字类型包罗我们日常所能碰着的所有类型,包罗整数,小数,负数。

  而字符类型则是英文的26个字母及中国汉字和其他国度的文字。

数字类型的赋值办法:

a=32

b=2。2

c=-25

d=-4。4

此中a,b,c,d别离是整数,小数,负数。

字符串的赋值办法:

x="abcdefg"

y="1234567890"

z="你好"

我们发现字符串类型和他的名字一样,是一个一个的字符串接起来的。

  而且在其摆布别离有一个双引号。

通过以上的例子,我们看到,数字类型与字符串类型的独一区别就在于能否有那个双引号。那么我们能够如许说,只要有双引号的,就是字符串类型,其他都是数字。我们看一个错误的例子,加深理解:

a=32//那句是对滴

a="bb"//那句也是对滴

a="cc"dd"//那句呈现错误,法式会认为是字符串cc,然后面dd"无法解析,所以整句话呈现错误。

vbscallcallmessagebox(a)//那里的成果是bb,按键精灵忽略所有发作的错误,持续一条运行。

有伴侣会问,那若是我要在整个字符串中加一个"号该若何处理呢,那里我告诉各人:在"号内把两个""连起来就能够了,在那里第一个"是转义字符,那里不比深揪,会用就好了。

  看例子:

a="a""b""c"//a的值是:a"b"c

a="a""b""c"""//a的值是:a"b"c"

a="""a""b""c"//a的值是:"a"b"c

最初一个变量要说的处所,字符串相加。

我们都晓得数字能够相加,那么字符串若何相加呢,那里我透辟的告诉各人。按键精灵中的字符串相加有两种运算符,别离是“+”和“看见“

颜色是你要比照的颜色;

前提十分的重要,它只能给三个值0,1,2中的肆意一位。

  下面接三个值别离予解释。

0是x,y点的实在颜色与我们给的颜色想对应,则是实,不然是假。

1刚好与0相反,x,y点的实在颜色与我们给的颜色一样的话,则是假,不然是实。

而2是迷糊比对,那里详细解释一下。

  我们晓得屏幕上的颜色由RGB三元色构成,每种色的染料比例差别,屏幕上的色就不不异。而在windows中,每种色的可变革的值是从0-255。纯白色点的三元色值都是255,而纯黑色则都是0。用16进造暗示就是从00到FF。不晓得16进造和10进造是怎么转换成的,能够用附件中的计算器选科学型转换。

  所以我们看到按键精灵取到的颜色是类似于0A1B2C如许16进造暗示的代码,别离是由GBR三种颜色构成。晓得了那点,就能够准确的理解迷糊值了。(那里透露一个小奥秘,按键精灵的迷糊值范畴是50。若是你看不懂,就略过那里,只要晓得迷糊判断不会把绿色判断成红色就能够了)

else同if语句,若是找到颜色则不施行else。

  找不到则施行。

总结今天说讲内容:

1、按键精灵中变量只要一种数据类型。

2、字符串类型要用双引号括起来,及在字符串中增加"字符

3、“”号做为字符串相连符

4、按键精灵会忽略所有的错误,而施行下一条

5、if。

  。else。。endif的施行挨次。以及数字、字符串的比力办法。

6、ifcolor。。else。。endif的施行挨次。

本想在那节把轮回也讲了,但所涉及的内容其实太多,留鄙人节里说吧。

  轮回说完了,就步入到应用代码编写阶段了。 那是我的答复,希望对你有帮忙。

0
回帖

按键精灵怎么使用? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息