首页 > 交通 > > 正文
【解决方法】按键精灵 实现 狂野飙车9 自动领取每日广告卡牌包 (1)|每日速讯
2023-06-25 07:07:42 博客园

环境:

工具:手机/安卓模拟器,按键精灵手机助手系统版本:android 10

问题描述:

描述:通过编程实现自动领取每日广告卡牌包,分享思路和使用到的代码,并进行解析。本文章仅仅只是个人学习所用,记录并复习所用的知识,并未对软件进行非法篡改和破坏行为。


(资料图)

提示:若按照教程还是无法完成操作,可以进入右侧的企鹅,找我看看。

解决方法-视频与文字教程:

视频教程:

文字教程:

1.首先思考思路流程大致为:主界面-进入领取界面-开始循环-完成后返回主界面同时代码需要具备:每个步骤都有其输出提示-将固定的步骤/高频率的代码写成函数。

2.准备工作:实现,将固定的步骤/高频率的代码写成函数。

  • 一般为固定的点击动作,如,某个关闭按钮固定位为一个位置,那么就封装一个函数代替动作。
  • 日志和提示功能也很常用,点击和滑动动作也同样。
实例封装代码:Sub 点击_小房子    Call 操作_点击并延迟_秒 (1023,2236,3)End SubFunction 提示(test)    TracePrint  test    ShowMessage testEnd FunctionFunction 操作_点击并延迟_秒(x, y, num)    Tap x, y    Delay int(num) * 1000End Function

3.检测是否在主界面使用颜色命令:FindMultiColor

  • 定位大概6个特征点,可看到主界面的3种货币的位置是固定的,所以选取这里。并且选取范围,减少匹配时间。
  • 函数需要返回值,故类型为Function,后续直接调用即可。
  • 函数名没有固定要求,个人喜欢这种格式,方便调用和维护,查找
实例代码:Function 检测_检查是否在主界面    Dim intX,intY    Dim num = 1    FindMultiColor 977,728,1069,1528,"00C6FF","0|-27|00C6FF,-8|-330|FF9000,-34|-346|FD8E00,-11|-677|1589E6,-4|-657|23649A",0,0.8,intX,intY    If intX > -1 And intY > -1 Then        call 提示 ("提示:在主界面~")        num = 1    Else         call 提示 ("提示:不在主界面!")        num = 0    End If    检测_检查是否在主界面 = numEnd Function

3.进入卡牌包界面使用触摸命令:tap

  • 在成功检测到在主界面后,进行一系列的点击动作,并根据自己设备的性能选择合适的延迟时间
  • 需要使用到 if 判断,并对比函数的返回值,返回为真,那么就进行后续操作。
实例代码:    If 检测_检查是否在主界面() = 1 Then         call 提示 ("操作:进入卡牌包中")        Call 操作_点击并延迟_秒 (1015,1957,3) //右上角        Call 操作_滑动并延迟_秒 (880,213,200,236,1,3)        Call 操作_点击并延迟_秒 (371,209,3) //卡牌包        Call 操作_滑动并延迟_秒(438, 2026, 419, 496, 1, 3)    Else         call 提示 ("异常:不在主页面")        Exit Function     End If

4.开始循环使用 for 循环内部进行 if 判断

  • 卡牌领取是有上限的,所以进行固定次数的循环
  • 使用 if 判断是否还有次数,判断条件为出现红色字体
实例代码:    //开始循环看广告    Call 提示 ("操作:循环看广告")    Call 操作_点击并延迟_秒 (115,1892,2) //第一次点击    For 5        If CmpColorEx("119|1018|4D05D3,126|1065|4F04DC,107|1087|4D04D5,70|1124|DDD9D8,117|1201|400C89,126|1253|4509A5",0.8) = 0 Then            Call 操作_点击并延迟_秒 (111,1161,3)            Call 操作_点击并延迟_秒(111, 1884, 60)            Call 操作_点击并延迟_秒(965,2084, 3) //退出            Call 操作_点击并延迟_秒(965,2084, 3)             Call 操作_点击并延迟_秒 (111,1884,3) //右下角继续        End If     Next

5.完成后返回主界面使用触摸命令:tap

  • 很基础的点击,注意延迟时间即可。
实例代码:    //返回桌面    Call 提示 ("操作:任务完成,返回桌面")    Call 点击_关闭卡牌包 ()    Call 点击_小房子 ()    Call 提示 ("完成任务:每日广告碎片")

6.此时就已经完成功能,大概70行

x 广告