- 高中三年级
- 3392724
- 654
- 0
- 49 朵
- 957 个
- 64 个
- 24700
- 2015-07-27
|
1#
t
T
发表于 2016-01-19 17:01
|
|只看楼主
抢年货脚本的实现 - 您所在的用户组无法下载或查看附件
本文由按键学院提供技术支持
按键学院交流①群(已满):376122403 按键学院交流②群(已满):372671254 按键学院交流③群(快满):170084238 按键学院安卓①群:115768679 啦啦啦,要过年啦,有心的小伙伴,就能发现最新版本的按键精灵安卓版上面有一个抢年货的脚本,为了ipadpro,必须玩玩玩!当然,是让按键来帮我们玩。 |
- 您所在的用户组无法下载或查看附件
首先,当然是要先熟悉游戏的玩法,我们打开网址后,开始游戏,恩,这不就是打地鼠吗,轻松学会,那么脚本要如何下手呢?我们仔细观察,一共是有5个不一样的"地鼠",有3个是奖励的,2个是惩罚的,既然是要得高分的,那么我们当然只考虑奖励的情况。那么,脚本的编写方法就清晰了,我们开始游戏,分别在三个奖励的出现的时候截图(眼疾手快是关键):- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
这三个就是+分的“地鼠”,以我单身30年的手速分分钟截下,接下来就是对图片进行分析,我们发现这三个图,差异非常明显,也就是我们只需要采用多点找色,就可以完全区分开,而不需要用到找图,细心的同学应该关注到了上面的红色小方框,我们取点的时候,应该尽量取颜色特征变化的区域,取点完成后,我们将这三个多点找色的命令,放入一个循环中,加入一定的延时,这个脚本就算完成了。 但是,我们在实际的测试中,发现这样虽然可以点击大部分的+分项,但是会漏掉部分,这是什么原因造成的呢?第一个最能想到的原因,脚本速度跟不上地鼠的冒头速度,我们通过减少延时甚至不需要延时,可以将这一情况出现的概率降低,却也使得脚本更加卡顿,方式不可取,我们知道,一个循环判断3个图,需要截图三次,但是一次最多冒出两个+分项,那么这是不是无形中浪费了时间,解决的办法就是在循环的开始将界面信息存入内存,也就是使用KeepCapture命令,在循环结束的时候使用ReleaseCapture命令,这样可以让每次循环只取一次图来判断,加快了循环速度。改完后,我们继续测试,发现情况确实有所好转,但依旧有出现,并且这次出现的问题相当有规律,我们发现,类似下图这样的情况,基本上都会漏掉:- 您所在的用户组无法下载或查看附件
我们发现,漏掉的时候基本都是同一只"地鼠",然后漏掉一只,仔细思考一下多点找色命令,他只返回一个坐标,也就是就算有两个一样的特征,也只会返回一个。这是否是BUG?当然不是,我们仔细查看多点找色命令,会发现平时很容易忽略掉的一个参数----查找方式。他可以规定多点找色按照何种顺序来查找。这么一来,我们只需要每个图使用两种相反的方式去搜索(比如一种从左上到右下搜索,一种从右下到左上搜索),就一定能把两个相同的图都找到,立马尝试,发现问题完美的解决!接下来,看看代码吧! - SetScreenScale 720,1280
- Dim intX,intY
- Dim 查找方式 = 7
- Do
- KeepCapture
- FindMultiColor 115,993,626,1267, "2DE6AC-101010","36|0|2AE5A9-101010,277|-3|27DEA4-101010,326|-3|25DDA1-101010", 0, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- Tap intX,intY
- End If
- Delay 10
- FindMultiColor 44,559,680,1190, "010101-101010","8|2|FDFDFD-101010,16|5|010101-101010,23|8|F6F6F6-101010,31|8|010101-101010", 查找方式, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- Tap intX,intY
- End If
- Delay 10
- FindMultiColor 44,559,680,1190, "4C659A-101010","-12|27|FFFFFF-101010,-17|42|6A56B6-101010,57|41|6A56B6-101010,48|2|4B6395-101010", 查找方式, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- Tap intX,intY
- End If
- Delay 10
- FindMultiColor 0,0,0,0, "C3E8E6-101010","17|28|53D3C7-101010,29|23|0F1620-101010,48|22|5EDFD7-101010,58|20|10151C-101010", 查找方式, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- Tap intX,intY
- End If
- Delay 10
- If CmpColorEx("266|784|0048FF-101010,328|782|0048FF-101010,389|782|0048FF-101010,451|784|0048FF-101010", 0.9) = 1 Then
- ShowMessage "游戏结束,脚本停止"
- Delay 2000
- TracePrint "游戏结束,脚本停止"
- Exit Do
- End If
- If 查找方式 = 7 then
- 查找方式 = 8
- Else
- 查找方式 = 7
- End If
- ReleaseCapture
- Loop
复制代码 想知道更多请关注院刊系列!- 您所在的用户组无法下载或查看附件
|