按键精灵的工作原理是什么?
发布网友
发布时间:2022-04-23 13:28
我来回答
共1个回答
热心网友
时间:2023-10-09 19:29
浅谈对按键精灵的几点思考
所谓“有比较才有鉴别”,只有通过对同类、不同类软件予以横向的、纵向的比较,才能对软件的本身定位有个清晰的认识,而只有对软件自身的定位有了清晰的认识,才能自己更有针对性的发展自己的特色,使按精精灵的开发和使用者能得心应手的完成想要完成的工作。
思考一、按键精灵面向的主要用户群
毫无疑问,按键精灵,顾名思义,是一个能够发送记录或编写的鼠标、键盘操作序列,从而使用者得以从某项原本操作起来既重复因而枯燥无趣的游戏(操作)过程中解脱出来,具体的说,如按键精灵帮助介绍的:
“只要您在电脑前用双手可以完成的动作,按键精灵都可以替您完成。”
“按键精灵能帮我做什么?
* 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等
* 办公族可用它自动处理表格、文档,自动收发邮件等
* 任何你觉得“有点烦”的电脑操作都可以替你完成”
那么,可以看出,软件所面向的主要用户群是:
1. 游戏爱好者
2. 需要辅助办公自动化者
3. 其他有特殊需求者
这三者的比例关系,即软件面向的主体是谁呢?毫无疑问:广大的游戏爱好者,据我个人的看法,至少80%以上使用按键精灵的目的是:游戏!包括我个人,当初知道有按键精灵这个软件,及至后来使用、学习和研究,为的是什么?为的是更好地玩游戏!
有了这个认识之后,我们继续下面的思考。
思考二、按键需要什么样的功能?
对于此问题,一个很简单的回答是:用户需要什么功能,我们就做什么功能!那么在这个认识之下,举凡是能够帮助游戏爱好者(软件的最广大的用户群体)能够更好的游戏的功能都是我们所需要的。然而,似乎还有什么我们必须要考虑的,是什么呢?不错,一个已经令人耳熟能详的名字:外挂!国家对外挂的*、游戏开发商、运营商以及游戏者对外挂的认识和态度等等,都是我们必须要考虑的。
众所周知,那些破坏游戏平衡性的*外挂是被国家明令禁止的,而游戏开发商、运营商包括部分游戏爱好者对外挂深恶痛绝,但有句名言“存在的就是合理的”,为什么外挂依旧存在、而且使用者众多呢?笼统的一句话,概括起来就是:游戏里存在不合理的地方。当然这个原因不能做为你使用那些破坏游戏平衡性的*外挂的借口。但,现在的网游,绝大部分还是“泡菜”,练级的过程无疑是枯燥的、烦味的、令人厌倦的,而某些游戏战斗时不停地补血、补蓝操作更是令人手忙脚乱,除了一个喜欢锻炼手指灵活性而且具有非凡耐性的人,十天半个月身为一名久经磨炼的游戏爱好者能坚持,再长些时间恐怕谁都不会说喜爱这种简单而重复的操作。
让我们再了解一下,现行外挂的不同工作原理。
1. 模拟动作式外挂。所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。按键精灵就属于此类外挂。
2. 内存修改式外挂。这种外挂跟传统上的一些游戏修改器没有两样,做这种外挂在编程只需要对内存地址有一点认识并且掌握API就可以实现,“精灵”的外挂这是这种方式写成的,它的难点在于找到那些地址码,找地址一般地要借助于别人的工具,有的游戏还有双码校验,正正找起来会比较困难。
3. 封包修改式外挂。这种外挂的原理是先截取游戏的数据封包,客户端修改,再转发。这种外挂适用于大多数网络游戏,像WPE及一些网络游戏外挂都是用这种方式写成的。
其他的还有诸如加速式外挂、木马式外挂等。
在这几类外挂中,除了模拟动作式外挂,其他都是国家明令禁止的,原因很简单,这些外挂无一例外或多或少都破坏了游戏的平衡性,而游戏平衡性可以说是一个网络游戏能长期生存下去的前提条件,很难想象人们会喜欢在一个在游戏中随时可能被利用BT外挂而变得超级无敌者PK。
其实模拟动作式外挂,并不能称得上真正意义的外挂,只能是一种辅助游戏的工具,那些用过封包修改式之类外挂的人员,对此类外挂的简单功能嗤之以鼻,不屑一顾,但毕竟不是游戏里固有的,而是脱离游戏软件的外部存在,只好简单笼统地称之为外挂。
功能简单既是模拟动作式外挂的缺点,也是其优点所在。正是因为其只是简单的游戏者动作模拟操作,因而并不会破坏游戏的平衡性,可算是合法的“外挂”,虽然某些游戏开发商、运营商出于自身利益的原因也*这类外挂,但游戏爱好者对此类外挂却非常欢迎喜爱。由于不破坏游戏的平衡性,没有那些*的如睡移、穿墙、锁血等等功能,在游戏的时候用此类模拟动作式外挂游戏时也感觉心里安稳些。
总之,概括起来一句话:在不破坏游戏平衡性性的前提下,尽可能的提供用户需要的功能。
思考三、为什么需要按键精灵?
显而易见,与现行成熟的大型编程软件,如VB、VC、DELPHI等这些著名的编程软件相比,按键精灵就如是这些软件里面的一个小小的控件,无论是从编译器的效率、调试侦错的手段、编辑器的强大友好、面向对象的可视化操作……等等,这些都是无法比拟的。但有句名言不是说了吗?“能抓到耗子的就是好猫”,只要能达到使用者的目的的就是最用的软件,这个跟软件的大小无关,工具就是工具,无论是铁锹还是一根铁条,老古话说:“寸有所长,尺有所短”。
那么为什么我不用VB、DELPHI这些强大的编程工具就可以理解了,虽然我可以用这些软件完成与按键精灵一样的功能,但按键精灵使用起来更简单、更专业、更方便,这就是使用按键精灵的原因所在。
简单地说,按键精灵存在的意义,就在于给游戏爱好者、脚本编写者(尤其是那些对编程并没有深入学习过的普通游戏爱好者),提供一个简单、便捷的游戏脚本编写平台。
思考四、关于按键脚本命令集的结构
我认为按键精灵的命令(API)集合可以大致分为如下四个部分:
1. 专门针对游戏的部分。这一部分包括键盘鼠标命令和一些VBS函数,如FindCenterColor, FindColor,FindColorEx,FindPic等,这部分命令集合是按键精灵作为一个辅助工具的特色所在,是按键精灵的核心和最重要的部分,如果除去这一部分,按键精灵存在的意义将大大消弱。因此,任何有可能提高这些命令集的完成效率,如更好的算法等等,哪怕是微小的改进,也是值得花精力的。
2. 从VBScript中引入的部分。如在按键精灵的帮助文件中提到的:
“按键精灵首创在键盘鼠标模拟类软件中引入高级语言的结合,无限扩展了按键精灵的语言功能。使用微软提供的VBS引擎,具有无可比拟的兼容性和稳定性。”
“VBS语句的特点
* 指令丰富:上百个标准函数可以随意供您使用
* 效率较低:比起按键精灵本身的语句,使用VBS语句的效率会有一定的降低
* 稳定性好:微软提供的VBS引擎是Windows操作平台的一部分,稳定性极佳 ”
3. 扩展插件部分。这一部分才真正可以说是“引入高级语言的结合,无限扩展了按键精灵的语言功能”,通过与C、Delphi等语言的结合,利用这些高级语言编写各种各样的插件,从而极大的的拓展了按键精灵的功能。
4. 其他部分。这部分主要包括脚本语法和一些杂类命令等。
在上述四部分中,我认为软件的开发者应该将注意力集中到第一部分API命令集的优化和拓展上,并不断地精益求精。
几点建议
①按键精灵的脚本编辑器,自5.80版开始增加关键字颜色表示,增加自动完成,增加语句提示等新功能,但这种新功能做的并不完善,只能提示有限的几种提示,而且有时用起来很不方便,建议开发者参考下Delhpi、VB等成熟编辑器的使用。
②进一步优化和改进一些原有核心函数的算法,如FindPic,FindColor等,可以参考按键游侠的某些做法(游侠的查找图片确实比较快)。
③按需求增加完善新的核心函数,如在游戏中通过脚本复制屏幕某块区域并保存为图片的函数等等。
④增加一些实用的辅助工具,如在查找图片时要将图片做成透明底图的东西,完全可以做成个专用的小工具来帮助做这件事。这个可以参考HyperSnap里面的几个功能,用起来真的很方便。
⑤改进脚本调试器的操作,很多时候,尤其是在编写、调用插件、VBS函数的时候,出错了但软件什么也不提示,根本无从知道究竟是哪里出错了,最起码给个变量的显示监控界面或者提示脚本的某行出错。
⑥可以考虑,将一些编写游戏脚本常用的模块,如渐开线找怪的算法,查血条的算法等等,将这些已经比较常用的东西作成一些代码片,类似If...Else...EndIf,在脚本编写时,可以直接复制插入到当前脚本中。也就是说,在脚本编辑器的左边栏PageControl里增加“常用脚本”一页,最好里面的内容是动态的,即可以自己添加,也可以网上更新。其内容应该是按照类别分类显示的。