zl程序教程

您现在的位置是:首页 >  其他

当前栏目

基于雷电模拟器利用python制作手游脚本 (神都夜行录,古剑奇谭木语人) (一)

2023-03-20 14:59:11 时间

前言

此文仅做为自己的一个学习记录,感激雷电和zerglurker大神的文章,侵删。

雷电模拟器命令操作

雷电官方:https://www.ldmnq.com/forum/71604.html
有了该基本命令行,能对模拟器进行按键、截屏等操作,而python能够通过图片的内容识别再使用CMD控制模拟器进而实现游戏脚本。

python实现

吾爱破解:https://www.52pojie.cn/thread-837510-1-1.html
这里应该是最初版源码,百度其他的内容基本都是复制粘贴此处的,作者已经把实现函数具体化了,但缺少实例,以下为两个实例:实例一:古剑奇谭木语人:自动进入刷本(卡片游戏,界面较为静态,且内容较为简单,特别容易);神都夜行录:挖宝钓鱼。(第三人称游戏,游戏场景丰富,较有难度)

实例一:古剑奇谭木语人

主要内容

主要讲述一个点击动作的完整流程:
启动游戏->截取屏幕->目标图与截图进行匹配比对->得到目标点后动作处理

启动APP

我之前于此部分犯错,当时误以为package name就是APP名称,实际是包名。需要通过

//index:0
cmd = "ldconsole.exe -s 0 pm list package")

的输出找到游戏包(如木语人:package:com.wangyuan.yjzz.bilibili)。那么自启动APP的命令行:

a,b = 0,"package:com.wangyuan.yjzz.bilibili"
cmd = "ldconsole.exe runapp --index %d --packagename %s" %(a,b))

截屏图片截取

在这里插入图片描述

截取图片之后可以通过查看按钮找到模拟器和本机共享文件夹的位置,于screenshots文件下存放着。
命令条:

//路径:模拟器(手机)的存储路径
cmd = "ldconsole.exe -s 0 screencap -p /sdcard/Pictures/Screenshots/apk_scr.jpg"

图片识别

效仿zerglurker,我也采用了opencv2的模板比对。
CSDN:https://blog.csdn.net/qq_41603898/article/details/82219291
博客园:https://www.cnblogs.com/decode1234/p/9161584.html
运用matchTemplate函数可以返回出可信区域坐标和一个可信值,自行调整参数完成理想的识别效果。

效果

古剑奇谭木语人 python脚本 自动点击

结尾

此为第一部分,后续神都相关功能还待测试(号卖了…在买个小号),相关代码等后续写完一起打包;
基于模拟器的脚本会比较安全,无非就是截屏识图后利用ld.exe执行一些按键点击的功能。