• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 9
发新话题 回复该主题

[按键精灵安卓版] 抢年货脚本的实现 - 【201601期】 [复制链接]

1#

抢年货脚本的实现


本文按键学院提供技术支持


按键学院交流①群(已满):376122403

按键学院交流②群(已满):372671254

按键学院交流③群(快满):170084238

按键学院安卓①群:115768679


啦啦啦,要过年啦,有心的小伙伴,就能发现最新版本的按键精灵安卓版上面有一个抢年货的脚本,为了ipadpro,必须玩玩玩!当然,是让按键来帮我们玩。


首先,当然是要先熟悉游戏的玩法,我们打开网址后,开始游戏,恩,这不就是打地鼠吗,轻松学会,那么脚本要如何下手呢?我们仔细观察,一共是有5个不一样的"地鼠",有3个是奖励的,2个是惩罚的,既然是要得高分的,那么我们当然只考虑奖励的情况。那么,脚本的编写方法就清晰了,我们开始游戏,分别在三个奖励的出现的时候截图(眼疾手快是关键):




这三个就是+分的“地鼠”,以我单身30年的手速分分钟截下,接下来就是对图片进行分析,我们发现这三个图,差异非常明显,也就是我们只需要采用多点找色,就可以完全区分开,而不需要用到找图,细心的同学应该关注到了上面的红色小方框,我们取点的时候,应该尽量取颜色特征变化的区域,取点完成后,我们将这三个多点找色的命令,放入一个循环中,加入一定的延时,这个脚本就算完成了。


但是,我们在实际的测试中,发现这样虽然可以点击大部分的+分项,但是会漏掉部分,这是什么原因造成的呢?第一个最能想到的原因,脚本速度跟不上地鼠的冒头速度,我们通过减少延时甚至不需要延时,可以将这一情况出现的概率降低,却也使得脚本更加卡顿,方式不可取,我们知道,一个循环判断3个图,需要截图三次,但是一次最多冒出两个+分项,那么这是不是无形中浪费了时间,解决的办法就是在循环的开始将界面信息存入内存,也就是使用KeepCapture命令,在循环结束的时候使用ReleaseCapture命令,这样可以让每次循环只取一次图来判断,加快了循环速度。改完后,我们继续测试,发现情况确实有所好转,但依旧有出现,并且这次出现的问题相当有规律,我们发现,类似下图这样的情况,基本上都会漏掉:


我们发现,漏掉的时候基本都是同一只"地鼠",然后漏掉一只,仔细思考一下多点找色命令,他只返回一个坐标,也就是就算有两个一样的特征,也只会返回一个。这是否是BUG?当然不是,我们仔细查看多点找色命令,会发现平时很容易忽略掉的一个参数----查找方式。他可以规定多点找色按照何种顺序来查找。这么一来,我们只需要每个图使用两种相反的方式去搜索(比如一种从左上到右下搜索,一种从右下到左上搜索),就一定能把两个相同的图都找到,立马尝试,发现问题完美的解决!接下来,看看代码吧!

  1. SetScreenScale 720,1280
  2. Dim intX,intY
  3. Dim 查找方式 = 7
  4. Do
  5. KeepCapture
  6. FindMultiColor 115,993,626,1267, "2DE6AC-101010","36|0|2AE5A9-101010,277|-3|27DEA4-101010,326|-3|25DDA1-101010", 0, 0.9, intX, intY
  7. If intX > -1 And intY > -1 Then
  8. Tap intX,intY
  9. End If
  10. Delay 10
  11. 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
  12. If intX > -1 And intY > -1 Then
  13. Tap intX,intY
  14. End If
  15. Delay 10
  16. 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
  17. If intX > -1 And intY > -1 Then
  18. Tap intX,intY
  19. End If
  20. Delay 10
  21. 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
  22. If intX > -1 And intY > -1 Then
  23. Tap intX,intY
  24. End If
  25. Delay 10
  26. If CmpColorEx("266|784|0048FF-101010,328|782|0048FF-101010,389|782|0048FF-101010,451|784|0048FF-101010", 0.9) = 1 Then
  27. ShowMessage "游戏结束,脚本停止"
  28. Delay 2000
  29. TracePrint "游戏结束,脚本停止"
  30. Exit Do
  31. End If
  32. If 查找方式 = 7 then
  33. 查找方式 = 8
  34. Else
  35. 查找方式 = 7
  36. End If
  37. ReleaseCapture
  38. Loop
复制代码


想知道更多请关注院刊系列!


最后编辑兄弟工程师13 最后编辑于 2016-01-19 18:42:07
本主题由 按键工程师 兄弟工程师13 于 2016/1/20 16:29:17 执行 移动主题 操作
2#

看看~

3#

学到老 活到老 学到老 老老老

4#

感謝大大的分享

5#

支持一下给点动力!!!!!

6#


7#

回复看看

按键精灵安卓版2.5.0即将发布,将带给你更好的编辑体验!点击链接了解新版本功能,还有更多好礼等你来拿哦!
http://bbs.anjian.com/showtopic-584866.aspx
8#

变量rColor需要预先定义。如果您还没有定义该变量,请取消下面一行的注释
Dim rColor
rColor = GetPixelColor(0, 0)
变量rColor需要预先定义。如果您还没有定义该变量,请取消下面一行的注释
Dim rColor
rColor = GetPixelColor(0, 0)
变量rColor需要预先定义。如果您还没有定义该变量,请取消下面一行的注释
Dim rColor
rColor = GetPixelColor(0, 0)

9#


10#

饿了吗

11#

现场V型从V型从

12#

11111111111111111111111111111111111111111

13#

脑袋大爆炸

14#

好像不错,蛮厉害的么

15#

6666666666666


脚本制作联系QQ:561369986
16#


17#


18#

赶紧学习学习!

19#


20#

看看 看看 怎么玩的

发新话题 回复该主题