【教程】找色找图之找血条

合集下载

解密色觉检查图-让世界不再有色弱

解密色觉检查图-让世界不再有色弱

解密色觉检查图-让世界不再有色弱解密色觉检查图,让世界不再有色弱本文旨在减轻能看清红绿灯但看不出较复杂的色觉检查图案的人士之痛苦;也能让正常人读特别复杂的色觉检查图变得轻松。

本文不是让你去背图,而是教你在10秒内分析出正确的图案,这样即使以后出现百十本新的色觉检查图你也不必焦虑了。

笔者曾受困于色觉检查图,看较复杂的色觉检查图案是花花绿绿一片,头都蒙了;后经笔者潜心研究,各种复杂的色觉检查图案在我眼前都能原形毕现,我不再需要做“看鹿读马”的事情了。

研究素材如下:1.《新编色觉检查图》李春慧编,第二版,简称李版;2.《色盲检查图》俞自萍编,第五版,简称俞版;3.《色觉检查图》王克长编,第二版,简称王版;4.《色盲检查图》汪芳润编,第三版,简称汪版;5.《实用色觉检查图》贾永源编,简称贾版。

经仔细查核以上各版本,深入到图上每一个色块,对比中间的蛛丝马迹,笔者解锁了它们的密码,发现了以下两个基本规律:1.色觉检查图仅由背景块与图形块组成,仅需读图形块拼成的图案。

解读细则:1.1 图上除了背景块就是图形块,十字,但不能读,因为它全由背景块拼成。

解读细则:1.3 视图的复杂程度,背景块有1到4种颜色不等,图形块也有1到4种颜色不等. 图例说明:李版10图890中有4种背景块与4种图形块,属于复杂的图。

2.图形块不会出现在最外圈。

解读细则:2.1 只能从最外圈找出背景块,这样避免把图形块误算到背景块中。

图例说明:俞版4图88 最外圈有3种背景块。

解读细则:2.2最外圈没有出现过的色块都是图形块,读图时必须全部包含进去。

图例说明:俞版4图88 读成99就漏掉了明显的图形块,故不能读99。

基于以上两个基本规律,总结出读图的四个步骤,简称四步法。

下面以李版27图“瞎子摸象”来详细说明四步法。

步骤1. 从最外圈找出背景块,并记住它们是哪几种颜色。

步骤2. 从图形中间找出不同于背景块的色块,那全是图形块,在大脑中迅速把它们处理成一种颜色,要进行连续阅读。

学习网络游戏找 怪 的思路方法(按键精灵脚本技术)

学习网络游戏找 怪 的思路方法(按键精灵脚本技术)

学习网络游戏找怪的思路方法(按键精灵脚本技术)很多朋友都不知道如何在游戏中用按键精灵找怪物请看下面哦对一些找怪的思路小有体会。

简单来说找怪就是找怪与背景不同的独有的特征,可以通过找怪的颜色/图片、怪名字颜色/图片、怪血条颜色/图片、渐开线扫描、小地图找怪等等的方法来实现。

具体看游戏而定,下面就介绍几种找怪的方法:1。

区域找色应该说是最简单的找怪方法了,在区域里查找怪的特有颜色、名字颜色、血条颜色、怪的阴影等等。

如果找到移动鼠标到怪身上进行攻击(推荐用区域模糊找色或从区域中间向外找色)。

例子(区域模糊找色):VBSCall FindColorEx(0,0,1024,768,\"FFFFFF\",1,0.8,x,y)//区域模糊找色,0,0,1024,768为区域范围,\"FFFFFF\"为颜色,1为查找方式(中间向外),0.8为模糊值,x,y为找色后储存坐标的变量If x>=0 and y>=0//如果找到颜色(通过判断坐标变量是否在区域内就可以知道有没有找到目标)MoveTo x y//把鼠标移动到该色的坐标(如果找的是怪名字或血条,可能移动不到怪身上,这时就要用鼠标偏移如:MoveTo x+10 y+10)Delay 50//延时LeftClick 1//左键单击进行攻击EndIf//条件结束用数组区域查找多色:点击查看注:①。

区域范围的定位:区域范围指的是被搜索区域的范围,这4个参数分别指的是区域的左,上,右,下。

简单的说就是取区域的左上角x,y坐标和右下角的x,y坐标,把这4个数值依次组合起来就是一个区域范围了。

②。

很多朋友对最后两个坐标变量x,y不太了解,在这里通俗的解释一下:顾名思义,这两个变量是用来贮存找色或找图后的坐标。

当找到目标后,把目标所在的坐标位置贮存到这两个变量里,然后可以通过判断这两个坐标变量是否在区域范围内来确定是否找到了目标。

按键精灵1--6级答案

按键精灵1--6级答案

以下哪一个不是按键精灵的产品? 按键箱子录制的脚本没有以下哪个功能? 记录鼠标特征码下列哪一个命令不属于"全部命令"? 内核命令按键精灵自带的抓图工具是? 按键抓抓哪一种方法能够找到命令的帮助说明? 在全部命令中搜索命令,点击后帮助说明会出现在编辑器下方.按键精灵不可以在以下哪个系统中使用? Linux可以使用神盾功能的程序是? 小精灵商业版旧版本的脚本导入到新版本中,以下哪种方法不可以纠正语法错误? 使用"自动缩进"功能WaitClick命令的含义是? 按任意鼠标键继续哪一类脚本程序是按键精灵官方授予销售权的? 小精灵商业版只要在编辑脚本,切换输入法时,按键精灵就卡住了,可能是下列哪一个原因? Plugin目录下装有不是官方提供的插件引起的关于加密脚本的描述,下列是错误的是? 只有会员输入密码可以解开加密脚本GetLastClick命令的含义是? 检测上次按过的鼠标键按键精灵生成的小精灵程序的后缀名是? EXE按键精灵会员不能享受的论坛权限是? 可以访问按键精灵“版版家园”专区享受版主资源网页按键精灵是下列哪一个程序? wqm.exe按键精灵的产品包括以下哪一个? 按键盒子按键精灵是下列哪一个程序? 按键精灵9.exe按键精灵会员卡注册码,没有以下哪一种? 天卡(1天)UnlockMouse命令的含义是? 解除锁定鼠标位置按键精灵会员不能享受的资源是? 免费小精灵的源代码RightUp命令的含义是? 右键弹起按键精灵的功能不包括? 自动发明汽车、飞机、火箭等机器按键精灵能兼容下列哪一种语言? VBS不能用抓抓工具直接获取的是? PID关于按键精灵的描述,以下正确的是? 按键精灵是一款绿色的模拟键盘鼠标操作的软件脚本编辑界面上没有的按钮是?启动与取色判断命令没有直接关系的参数是? 按键码以下哪种方式可以在脚本编辑界面中获取到新的插件? 点击"资源库"按钮,然后导入需要的插件LeftClick命令的含义是? 左键单击按键精灵官方网站的网址是? /RestoreMousePos命令的含义是? 恢复上次保存的鼠标位置如果按键精灵在某些环境失效,可以使用下列哪个工具? 神盾SaveMousePos命令的含义是? 保存当前鼠标所在位置GetCursorPos命令的含义是? 得到鼠标位置坐标键盘命令的类型不包括? 锁定按键精灵里运算符乘号是? *KeyPress命令的含义是? 按键MiddleClick命令的含义是? 中键单击LockMouse命令的含义是? 锁定鼠标位置按键精灵会员不能享受的功能是? 脚本编写服务GetCursorShape命令的含义是? 得到鼠标形状按键精灵自带的用户界面叫做什么? QUI界面RightClick命令的含义是? 右键单击按键精灵里运算符减号是? -按键精灵默认的启动热键是? F10属于"全部命令"的是? 我的命令库“录制”功能不能录制的内容是? 记录鼠标指向的窗口句柄按键抓抓是下列哪一个程序? picker.exe想要知道脚本是否存在错误,应该使用下列哪个功能? 调试以下哪种方式不可以获得论坛银币? 发布大量无内容的主题贴按键精灵里运算符除号是? /按键精灵会员不能享受的技术支持是? 技术人员上门服务按键精灵自带的功能不包括以下哪一个? 路由功能GetLastKey命令在获取一次ANSI字符代码后继续循环执行返回值是?0变量的定义,以下哪个是正确的? dim a下列哪一种方法不能够正确输入命令? 鼠标右键单击命令按键精灵的功能是?模拟鼠标键盘操作的工具MoveR命令的含义是? 相对移动关于小精灵去广告的描述,下列正确的是? 会员用户在“制作按键小精灵”界面上->更多设置->选择会员去广告(是)即可按键精灵里运算符加号是? +对小精灵的描述,以下是正确的? 按键小精灵是把按键精灵的脚本打包成一个可单独执行的EXE程序,便于传播以及提供给新手使用。

CE入门简单实用教程(附图解)

CE入门简单实用教程(附图解)

现在开始搜索精确数值 100 数值中输入100点击首次扫描按钮一般游戏就是4字节,这里不需要改动,默认就好。

这次扫描我们得到 59 个结果,里面肯定有我们要找的那个血值,不过好像太多了。

我们再输入 96 点击再次扫描按钮结果只剩1个(这就是我们要找的),我们双击此地址将其添加到地址栏:只有1个结果了,这个就是我们要找的内存地址,双击将其加入到地址栏双击下图对应位置可快速更改数值。

第3关的密码是 419482这一关很重要,因为某些游戏中血显示的不是数字而是血条,这样的话教程2中的方法就失效了。

本关就你要教会你如何修改这些讨厌的未知数此时点击新扫描然后选择未知初始数值点击首次扫描然后出现了肯定是N多的结果,因为太多了,CE没有显示出来。

老办法,回到 Tutorial ,点击打我,CE会告诉你血量减了多少,比如-1这里面我们换个思路,假设CE没告诉我减少了多少或者我根本没看清,这时应该怎么办呢?注意看下面的操作一、扫描减少的数值下拉框,选择减少了的数值,按再次扫描(此时血量减少了)二、扫描不变的数值然后选择没变动的数值(此时血量没有变化)三、反复操作再回到Tutorial ,点击打我 => 扫描减少了的数值 => 扫描没变动的数值反复操作,最后就会只剩14个地址四、简单判断简单判断下(Tutorial中告诉你了这个数值是小于500的),很容易就找到了最终的地址双击把地址加到地址栏,然后更改数值为5000,就可以过关了(前面教程有说过,这里就不再重复了)闯关成功。

大家一定要明白这样操作的思路:血量减少=>CE搜索减少的数值血量不变=>CE搜索不变的数值血量增加=>CE搜索增加的数值这样反复筛减,就能很容易找到最终的结果。

第4关的密码是 890124这一关的操作和前面和基本相同,主要是介绍一下什么浮点数:浮点数就是带小数点的数字如何扫描呢:1、首先将数值类型改成浮点数。

2、浮点数扫描时不必输入后的小数94.444 扫描时输入94就可以了其它的操作和前面的基本相同大家也注意到了(上图),浮点数也分为2种:1、浮点数也叫单精度浮点数英文是Single Float2、双浮点数也叫双精度浮点数英文是Double Float这里面要强调的是:浮点数的长度是4字节,使用4字节也可搜索到浮点数,但需要使用模糊搜索。

制作暗黑恐怖效果与血液溅射的Photoshop教程

制作暗黑恐怖效果与血液溅射的Photoshop教程

制作暗黑恐怖效果与血液溅射的Photoshop教程亲爱的读者们,今天我将为大家带来一篇有关制作暗黑恐怖效果与血液溅射的Photoshop教程。

在这个教程中,我会为您详细介绍如何使用Photoshop软件来制作独特而令人毛骨悚然的暗黑风格效果。

现在,让我们直入主题吧!第一步:准备素材在使用Photoshop之前,我们首先要准备所需的素材。

您可以从互联网上找到一些与暗黑主题相关的图像素材和血液溅射的图像素材。

请确保这些素材的版权符合法律规定,以免侵权。

第二步:创建新图层打开Photoshop软件,并在“文件”菜单中选择“新建”。

选择您希望的画布大小和分辨率。

然后,点击“确定”创建一个新的图层。

第三步:选择暗黑效果在制作暗黑效果之前,我们需要调整整个画布的色调。

请点击“图像”菜单中的“调整”并选择“色调/饱和度”。

将饱和度设置为-100,并稍微降低亮度,以获得更加阴暗的效果。

第四步:添加暗黑元素现在我们可以开始添加暗黑元素了。

您可以使用画笔工具,在画布上绘制一些燃烧的火焰,或者添加一些黑暗的纹理。

如果您希望添加一些恐怖的效果,可以找一些与丧尸、骨骼或鬼魂相关的图片,并将其合并到主画布中。

使用“编辑”菜单中的“自由变换”工具可以调整素材的大小和位置。

第五步:制作血液溅射效果现在让我们来制作血液溅射效果。

首先,找一些血液溅射的图像素材,并将其拖放到主画布中。

使用“编辑”菜单中的“自由变换”工具来调整其大小和位置。

接下来,选择“图像”菜单中的“调整”并选择“颜色平衡”。

调整色调、饱和度和亮度,以使血液看起来更加真实。

第六步:添加阴影和高光效果为了增加暗黑效果的真实感,我们可以在暗处添加一些阴影效果,并在光亮处添加一些高光效果。

使用“画笔”工具,在需要添加阴影和高光效果的地方绘制阴影和高光的颜色。

然后,调整图层的不透明度和混合模式,以融合到原始画布中。

第七步:调整色调与对比度为了使整个画面看起来更加统一,我们可以进行一些色调和对比度的调整。

CE入门教程

CE入门教程

C E入门教程(找寻内存基址)(总12页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--CHEAT ENGINE 入门教程CHEAT ENGINE(以下简称CE)是我见过的最优秀的游戏作弊工具。

它的优点多不胜数,虽然单独从搜索游戏里面的数值来说,它并不比其他同类软件强多少,但它不仅仅是个游戏修改工具,它还有其他游戏修改软件所没有的一些特点,例如:它有强大的反汇编功能,这个是别的游戏工具中几乎没有的;还有,它本身就自带了外挂制作工具,可以直接由它生成外挂。

而它的界面非常简洁朴素,这也是我喜欢它的原因之一。

同类软件中,我觉得TSEARCH可以和它媲美,但TSEARCH的界面比较混乱,操作过于复杂,所以我个人并不喜欢TSEARCH。

在这个教程里面,你不会看到任何图片,因为我觉得我能用纯文字教你使用CE,如果你觉得没有图片就一定学不会,我想你没必要看下去了,因为我没空做图片,并且我觉得文字已经足够表达,没必要用多余的图片。

还有如果你喜欢这个入门教程,你可以把它转载到任何地方,但在转载之前,请你征得本人的同意,并且在转载时注明作者为CCB及广海游戏(&u=1742)或本帖连接。

好了,废话少说,进入正题吧。

其实,使用CE的基本步骤,可以简单到一句话:1.运行CE->2.运行游戏->3.在CE中指定要修改的游戏->4.首次搜索一个数值->5.回游戏中让这个数值增加或减少->6.回CE按数值增减的情况再次搜索->7.重复5和6直到得到一个或很少的几个结果->8.在这几个结果中判断哪一个是真正的结果。

而下面的这个教程,就是要对上面说的这些步骤进行详细的解释,然后再用一个具体的例子来让大家真正掌握CE的用法。

当然,要用一个具体的例子来讲解CE的用法,需要一个游戏,以这个游戏的修改来讲解。

不过,如果真正的用一个游戏来做例子,那么大家也得找到我用的游戏,就算找得到,还有可能要安装,确实比较麻烦。

第一课、用ce和od找绿色征途的人物血量

第一课、用ce和od找绿色征途的人物血量

第一课、用ce和od找绿色征途的人物血量
1、用ce搜索精确的数值270。

2、让怪一直打,人物不断掉血,用ce搜索减少的数值,直到最后只剩2个值。

3、用ce依次修改这两个值,发现当第二个值改变时,血量随之改变,所以第二个正确。

看效果:
3、用OD附加游戏,然后DD 066FD2C2 (DD [地址] -- 使用堆栈格式转储)
十六进制10e对应的十进制就是当前血值。

3、在地址066FD2C2处,下硬件访问断点,游戏自动断下。

则断下地方上面一句,就是血的偏移。

00477E30 . 8B81 52110000 MOV EAX,DWORD PTR DS:[ECX+1152] ; 1
需要向上找ECX的来源。

4、分析上面图片中的代码发现,这段程序中就这一句MOV EAX,DWORD PTR DS:[ECX+1152]。

所以在这句处下F2断点。

断下后,在反汇编窗口中跟随。

来到
向上找到
MOV ECX,EDI //往上找EDI
004F63A9 MOV EDI,DWORD PTR DS:[EAX+540] ; 3
004F63A4 MOV EAX,DWORD PTR DS:[B89C08] ; 4
血偏移:[[00b89c08]+00000540]+00001152。

按键精灵9--找图找色之找血条

按键精灵9--找图找色之找血条

1 为什么写找血条?生命值在网游中是最关键、最敏感、最值得关注的参数之一,而血条作为人物生命值的直观展现,几乎所有的实用脚本都要与血条打交道,几乎所有的实用脚本都首先关注人物的生死存亡,几乎所有的打怪练级加PK类网游脚本都首先提供自动加红加蓝等基础功能,在简单游平台上,您提供的脚本要是不提供加红加蓝功能,上网、出门还真不好意思和别的简单游作者打招呼!生命值/血值,因其颜色一般为红色所以又叫“红”,相应地把补充生命值叫做“加血”、“加红”或者“补红”等等。

同样的,HP值/法力值/魔法值,因其颜色一般为蓝色所以又叫“蓝”,同时把补充魔法值叫做“加蓝”或者“补蓝”等等。

找血条和找蓝条的原理类似,区别只在于颜色不同,因此在这里我们只介绍找血条的方法。

找血条技术是一门很基础的技术,其应用范围之广令人发指:∙找血条是循环找怪打怪的基础。

在小地图上,利用鼠标点击和遍历地图上的所有地点,查找是否存在血条,以此判断此处是否存在怪物,实现自动找怪打怪。

∙找血条是补红补蓝的基础。

实现自动补红补蓝的基础就是能够自动地、准确地判断人物是否已经缺红缺蓝。

……目前得到血条的数值一般有三种方式:找内存法、解析封包法、找色找图法。

找内存方法是一种最直接、最根本、最有效的方法,只要能得到生命值的内存地址,得到生命值就如探囊取物一般,如果你的胆子再稍微大一点,甚至可以修改生命值。

所以,找内存法可以说是最锋利的倚天剑,“倚天一出,谁与争锋”!当然武器越锋利也越容易伤到自己,使用内存方法需要冒较大的风险,一旦被封的话一定让你痛不欲生,欲哭无泪,哭爹喊娘,欲仙欲死!而且网游厂商对内存读取之类的技术深恶痛绝,会采用各种技术例如动态内存等来防止第三方轻易读取内存,读取与反读取内存的较量也是一个永恒的话题。

截获和解析游戏封包的方法的优缺点和读取内存法类似,优点是解决方案比较直接和彻底,但是封包的加解密,协议分析都比较困难,且动态变化。

找色找图法是一种较为中庸的方法,不强大不张扬,不温不火,却又比较保险。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 为什么写找血条?生命值在网游中是最关键、最敏感、最值得关注的参数之一,而血条作为人物生命值的直观展现,几乎所有的实用脚本都要与血条打交道,几乎所有的实用脚本都首先关注人物的生死存亡,几乎所有的打怪练级加PK类网游脚本都首先提供自动加红加蓝等基础功能,在简单游平台上,您提供的脚本要是不提供加红加蓝功能,上网、出门还真不好意思和别的简单游作者打招呼!生命值/血值,因其颜色一般为红色所以又叫“红”,相应地把补充生命值叫做“加血”、“加红”或者“补红”等等。

同样的,HP值/法力值/魔法值,因其颜色一般为蓝色所以又叫“蓝”,同时把补充魔法值叫做“加蓝”或者“补蓝”等等。

找血条和找蓝条的原理类似,区别只在于颜色不同,因此在这里我们只介绍找血条的方法。

找血条技术是一门很基础的技术,其应用范围之广令人发指:∙找血条是循环找怪打怪的基础。

在小地图上,利用鼠标点击和遍历地图上的所有地点,查找是否存在血条,以此判断此处是否存在怪物,实现自动找怪打怪。

∙找血条是补红补蓝的基础。

实现自动补红补蓝的基础就是能够自动地、准确地判断人物是否已经缺红缺蓝。

∙……目前得到血条的数值一般有三种方式:找内存法、解析封包法、找色找图法。

找内存方法是一种最直接、最根本、最有效的方法,只要能得到生命值的内存地址,得到生命值就如探囊取物一般,如果你的胆子再稍微大一点,甚至可以修改生命值。

所以,找内存法可以说是最锋利的倚天剑,“倚天一出,谁与争锋”!当然武器越锋利也越容易伤到自己,使用内存方法需要冒较大的风险,一旦被封的话一定让你痛不欲生,欲哭无泪,哭爹喊娘,欲仙欲死!而且网游厂商对内存读取之类的技术深恶痛绝,会采用各种技术例如动态内存等来防止第三方轻易读取内存,读取与反读取内存的较量也是一个永恒的话题。

截获和解析游戏封包的方法的优缺点和读取内存法类似,优点是解决方案比较直接和彻底,但是封包的加解密,协议分析都比较困难,且动态变化。

找色找图法是一种较为中庸的方法,不强大不张扬,不温不火,却又比较保险。

看似功能有限,只能完成一些基本的血条查找功能,甚至在大多数DirectX游戏中无法后台运行,但是正如正家基本拳脚功夫一样,一旦练得精熟,在高手的使唤下却又能显得颇为强大。

如上所述缘由,本文对已有找血条的方法进行小结,以便新手学习和查看。

2 读血条的一般方法生命值在网游中的展现有如下几种方式:横向的血条、竖向的血条、圆形的血球、不规则型等,其读取和判断的原理大致相同,所以下面将以横向血条为示例进行讲述。

在第2小节中,我们假设所有颜色都是固定的,血条颜色固定为红色,无血的颜色(血条底色)固定为黑色,如下图所示。

具体编写脚本时,我们可以先抓一个满血的颜色,再抓一个空血的颜色,然后替换脚本中的0000FF(红色)和000000(黑色),依葫芦画瓢写出脚本即可。

读取/判断血条基于这样一个基本原理,当血条数值改变时,相应位置的血条颜色就会由血条颜色变成血条底色。

按照判断方式的不同,补血的时机有两种:一、以血条的颜色作为判断依据。

在需要补血的地方取点判断,如上图绿色箭头所指示位置,如果该点颜色为血条颜色,那么表示血量充足,不需要做任何事情,否则需要补血。

按键精灵的示例脚本如下:IfColor 100,100,0000FF,0 //如果点(100,100)的颜色为红色Else //不做任何事情KeyPress 114,1 //否则,按补血快捷键F3EndIf二、以血条底色作为判断依据。

在需要补血的地方取点判断,同样如上图绿色箭头所指示位置,如果该点为血条底色,那么表示血量已经低于安全血量,需要补血。

否则不需要补血。

IfColor 100,100,000000,0 //如果点(100,100)的颜色为黑色KeyPress 114,1 //按补血快捷键F3Else //否则,不做任何事情EndIf以上讲的是固定位置的血量比例的判断,例如我们只在血量为30%,坐标为(100,100)的地方进行判断,如果加血的位置不固定,而由用户灵活给定,由血量的数值计算出判断点坐标的方法如下:如果血条是均匀的,假设血条开头的横坐标为a,血条末尾的横坐标为b,假设补血比例为x(0<x<1),那么判断点的横坐标为a+x(b-a)=x*b+(1-x)a。

如果血条是非均匀的,那么处理起来稍微棘手一些。

如果非均匀的程度还不是很严重的话,那么可以近似地采用上一步的计算方法,误差不会太大。

如果非均匀程度很严重的话,可以采用采样法。

即,一般用户关注的血条关键点就那么几个,可以手动得到这几个关键点的坐标,具体方法如下:首先补满血,然后采用各种方法失血到特定数值,然后得到这些数值下血条的坐标。

3 渐变血条的查找在许多游戏(例如奇迹世界)中,血条并不是一成不变的,而是一个渐变的血条,使用上一小节判断固定颜色的方法会产生误判,因此需要采用判断模糊颜色的方法,而判断模糊颜色方法的核心为如何得到渐变颜色条的中心色作为模糊颜色判断的对象。

让我们通过论坛上一个网友举的奇迹世界的例子来看看如何得到渐变血条的中心色。

在1024*768分辨率下,血条的起始坐标是(87,11),终点坐标是(295,11),我们可以得到该血条所有坐标点的颜色,在这里摘取一段坐标点看看其满血时的颜色:107,11=007808108,11=007808109,11=007808110,11=007808111,11=007908112,11=007909113,11=007909114,11=007A09115,11=007A09116,11=007A09117,11=007B09从上面可以看出血条颜色的变化规律,那就是血条颜色在一定范围内逐渐变化。

那么,如何得到这个线性渐变血条的中心色呢?有一种说法,取血条中的颜色最低值和颜色最高值,然后求其算术平均值即可。

在这里,血条中颜色的最低值为007108,颜色最高值为00B00C,那么颜色的波动范围为28936~45068,中心色为(28936+45068)/2=37002(00908A)。

我认为这种方法是不准确的。

首先,渐进血条的变化范围不是在颜色的最低值和颜色的最高值之间变化,而是颜色的RGB分量分别在各自范围内变化。

所以,求颜色的平均值时,应该求出颜色RGB分量的各自平均值,RGB分量平均值组成的颜色更能代表中心色。

有人给出了求线性渐变血条RGB分量平均值的方法,该方法是用按键语言写的,当然也可以在截取血条中所有颜色点数值的情况下,用Java,C++等语言来计算平均值。

按键精灵的代码如下:Dim r,g,b,i,c,x,mx,myr=0:g=0:b=0:i=0//按空格键.表示捉鼠标的颜色WaitKey xWhile x=32//得到鼠标的位置VBSCall GetCursorPos(mx,my)//得到鼠标位置上的颜色VBSCall c=GetPixelColor(mx,my)//分离颜色.并转成整数想加.r=r+Cint("&H" & Right(c,2))g=g+Cint("&H" & Mid(c,3,2))b=b+Cint("&H" & Left(c,2))i=i+1WaitKey xEndWhile//求出平均值r=CInt(r/i):g=CInt(g/i):b=CInt(b/i)MessageBox "R:" & r & " G:" & g & " B:" & b4 闪烁血条的查找在某些游戏中,不仅仅血条中的每个点颜色不一样,各个点的颜色随着时间也会变化,这就叫做闪烁血条。

闪烁血条在使用模糊找色时,会遇到更多的问题,例如无法准确地判断颜色等等,解决该问题的办法有两个:第一,在闪烁血条的颜色变化范围不是很大的情况下,仍然可以采用上一小节的模糊找色法,虽然每个点的颜色时时刻刻都在变化,不过可以通过各种办法得到每个点的平均色,然后以此平均色为对象,进行模糊找色判断;第二,找出闪烁血条颜色变化的规律,然后基于此规律进行血条是否为空血的判断。

我们首先介绍第一种方法,得到每个点的平均色。

有两种工具,一种是网友介绍的工具Zoommy,使用该工具,可以动态地得到每个点的RGB实时变化情况,并根据颜色的实时变化情况,得到每个点的RGB的最大值和最小值,然后得到平均值。

还有一种工具,叫做GifSplitter,可以把一个GIF文件的每一帧分割成原始的BMP图片。

由于网游中的闪烁血条多由GIF动画组成,所以可以采用该工具得到每个GIF文件的原始图片,然后使用按键精灵的颜色查看工具分别查看同一个点的所有帧的颜色,然后求其平均值即可。

下面九副图是组成上一个GIF文件的原始BMP图片。

当然,如果闪烁血条颜色变化幅度太大的话,采用模糊找色的方法应对闪烁血条效果可能不是很好,所以有时必须采用第二种方法,即找到闪烁的规律,例如上述例子,原文作者发现,不管该血条怎么闪烁,在血条有血的位置,其颜色的R分量值一直大于200,因此,可以利用这一规律进行判断,如果某位置的颜色R分量小于200,那么认为此处为空血,需进行加血。

5 透明血条的查找透明血条由于其颜色随着背景的变化而变化,难以进行准确的判断,因此透明血条是一个更加令人头疼的话题。

目前,可以尝试的方法有:如果血条本身不透明而仅仅是空血条透明,或者有血状态的血条颜色变化范围不大的话,可以使用有血颜色进行模糊判断,如果颜色模糊等于有血颜色,那么不需要补血,否则需要补血。

如果满血条和空血条都是透明的,那么和上一小节一样,只有寻找满血条和空血条的颜色之间的差异规律进行是否补血的判断。

6 百分比补血的实现所谓的百分比补血,指的是用户可以自己设定补血的百分比,是在70%之处补血呢,还是在80%之处补血。

这个功能的实现原理在第2小节中已经给出。

如果血条是均匀的,假设血条开头的横坐标为a,血条末尾的横坐标为b,假设补血比例为x(0<x<1),那么判断点的横坐标为a+x(b-a)=x*b+(1-x)a。

例如,血条开头的横坐标为20,血条末尾的横坐标为180,补血比例为x,那么判断点的横坐标为20+160*x。

7 后记总结一下找血条的两条原则:1、如果采用模糊判断找色的方法,那么找到整个血条的中心色是最关键的;2、如果采用直接判断的方法,那么找到血条中满血和空血的颜色变化的规律是最关键的。

再闲扯几句,现在的网络游戏做的越来越精明,为了防止脚本自动工作,做了数不清的工作,因此,仔细研究各个游戏的差异,有目的性地,有的放矢地选择不同的方法进行解决显得尤为重要,这才是写出一个好脚本的关键。

相关文档
最新文档