本文使用腾讯手游助手进行「自由幻想手游」游戏,以在龙城为前提。
首先目的是,本文要做的是自动打开排行榜然后点到人气(周)榜进行全自动踩空间;对于腾讯助手的幻想游戏,打开排行榜的快捷键是V(细节:最后一次的排行榜);接着需要定位到人气周榜,再开始踩空间。
踩空间时,可能会得到888元宝、红蓝药水等,会挡住第六个的空间入口(笔者运气不好,没弄到,有则多加个判断把这个挡窗关掉)。根据上图得到空间和踩一踩的图片,结合使用N秒找图功能,用下方逻辑步骤,逐步完成自动化脚本。
打开排行榜就直接按下键盘的v键即可,然后游戏界面会显示最后出现的排行榜,为确保能精准定位在人气周榜中,可以如下图的红点位置,点击到综合实力栏为未展开的形式,再点击人气榜,并点进人气周榜,具体代码如下,该代码为第二步,返回结果是能否找到踩空间的入口,返回1则可以后续操作执行,否则结束 。
Sub 点击(坐标)
MoveTo 坐标(0), 坐标(1)
LeftClick 1
End Sub
Function 跳转人气周榜 //成功返回1,否则0
综合实力 = Array(384, 265)
人气榜 = Array(326, 520)
人气周榜 = Array(310, 866)
搜索位置 = Array(969, 341, 1057, 424) //搜索空间入口
openL = Array(-1, -1)
连错记号 = 0
While openL(0) = -1 and 连错记号 < 10
//先点一下综合实力然后判断是否展开
点击(综合实力)
// 3s超时
openL = 找图(Array(441, 242, 486, 287), "Attachment:\openL.bmp", 0.93, 300, 200, Array(1, 3 * 1000))
连错记号 = 连错记号+1
Wend
If 连错记号 >= 10 Then
TracePrint "貌似网络离家出走了呢~"
跳转人气周榜 = 0
Else
//定位未展开综合实力,然后点击展开人气榜并打开人气周榜
点击 (人气榜)
Delay 1000
点击 (人气周榜)
空间入口 = 找图(搜索位置, "Attachment:\zone.bmp", 0.6, 300, 200, Array(1, 3 * 1000))
If 空间入口(0) >= 0 Then
跳转人气周榜 = 1
Else
跳转人气周榜 = 0
End If
End If
End Sub
然后开始在该周榜中进行踩空间的操作,根据第一张图的黑框及其高度,用循环进行六次不同位置的空间入口查找,之后进行翻页操作,再重复前面步骤,直到排行榜拉到底为止。游戏中排行榜共100人次,为了参考简单,直接循环cell(100/6)=17次。
Sub NextPage()
单板高度 = 556 //多次调试的结果
MoveTo 1400, 800
LeftDown 1
For 单板高度 / 2
MoveR 0, - 2
Delay 2
Next
Delay 800 //防滑
LeftUp 1
End Sub
Function 踩空间
搜索位置 = Array(969, 341, 1057, 424)//搜索空间入口
搜索位置增量 = 搜索位置(3) - 搜索位置(1)
踩一踩区域 = Array(1526, 464, 1618, 555)
循环 = 1
For 17
单板位置 = 1 //当达到7后就要翻页
For 6
区域 = Array(搜索位置(0), 搜索位置(1) + (单板位置 - 1) * 搜索位置增量, 搜索位置(2), 搜索位置(3) + (单板位置 - 1) * 搜索位置增量)
空间入口 = 找图(区域, "Attachment:\zone.bmp", 0.5, 500, 300, Array(1, 3 * 1000))
If 空间入口(0) >= 0 Then
点击 (空间入口)
踩一踩 = 找图(踩一踩区域, "Attachment:\tap.bmp", 0.6, 500, 300, Array(1, 6 * 1000))
//这里不处理断网问题
If 踩一踩(0) >= 0 Then
For 3
点击 (踩一踩)
Delay 200
Next
End If
KeyPress "Esc", 1 //返回
KeyPress "e", 2//使用红蓝药水
//检测是否有888元宝等挡住视线(略)
End If
TracePrint "[" & (循环-1)*6+单板位置 & "] " & 空间入口(1)
单板位置 = 单板位置+1
Next
空间入口 = 找图(区域, "Attachment:\zone.bmp", 0.5, 500, 300, Array(1, 3 * 1000)) //目的是保证翻页及其速度
If 空间入口(0) >= 0 Then
循环 = 循环 + 1
//执行翻页
Call NextPage()
Else
TracePrint "网络延迟高!"
End If
Next
End Function
这是测试结果(手动F12结束)
最后把所有过程整合,得到
Sub 踩空间人气周榜
KeyPress "v", 1
Delay 500
If 跳转人气周榜() = 1 Then
Call 踩空间()
End If
Delay 500
KeyPress "Esc", 1
End Sub
本文仅供学习参考,制作脚本只是满足自身在不违规的前提下更好地完成日常化操作,作为学习自动化的一个案例。