0.脚本说明
当前脚本版本:1.2.2
基于 Python 版本:3.8
功能包含:
- 三种模式刷关卡:模式1:自定义关卡(通常针对活动)。模式2:刷钱ce。模式3:刷经验ls。三种模式优先级从高到低
- 访问好友
- 收邮件
- 领取信用,自动买打折的商品
- 自动公开招募(自动选9小时,没有资深出现的情况下选第一个种类,有资深则停止自动招募,待手动操作)
- 处理会客室线索:上线索、足够后解锁线索、送多出2个的同种线索中一个、领新线索
- 领取任务奖励
- 基建收货,收信赖,傻瓜式换人
- 基建中使用无人机加速贸易站赚钱
每个功能可以自己配置是否开启,执行顺序,以及其重复运行的周期
主要目的省掉重复的日常工作,专注于 挑战/抄作业 哈哈哈
个人已经使用三个月左右运行基本没问题,可以连续多天一直挂机。
脚本逻辑代码都在文件夹下中,基本实现方式是 opencv 图像匹配 + adb控制点击滑动等操作
有问题可留言,我看到后回复
0.1 近期更新日志
时间 | 版本 | 更新内容 |
2023/11/30 | 1.3.0 | 直接将截屏数据读为python cv2的img对象,跳过了硬盘的读写。增加脚本灵敏度,且更稳定,同时免去对硬盘的伤害 |
2022/5/31 | 1.2.2 | 增加对CE-6与LS-6的配置支持 |
2022/5/3 | 1.2.1 | 优化自定义关卡逻辑,增加对刷周年庆关卡的支持 |
2022/4/30 | 1.2.0 | 加整体打包为exe的支持,配置由settings.py的python文件改为settings.txt |
2022/4/26 | 1.1.2 | 解决基建换人报错的bug 调整代码结构 加入 OCR 模块(同时换Python版本为3.8) 加入在公开招募时发现资深干员、高级资深干员则停止自动公开招募,等待未来手动操作的功能(其他挂机选项照旧运行) |
2022/4/16 | 1.1.1 | 解决明日方舟新版本调整UI后,刷关卡的bug |
2022/4/13 | 1.1.0 | 增加挂机功能:基建中使用无人机加速贸易站赚钱 |
1.下载
1.1 带EXE版本
由 Python 版本打包而来, 400M 左右,大部分都是 python 库文件占的体积,个人还没研究懂怎么缩小。
不过可以省去环境配置环节。
使用EXE版本的话看这篇:https://pangruitao.com/post/3893
1.2 Python版本
链接:https://pan.baidu.com/s/1DuQEGYvUYuM8TZ9e5-jhtg?pwd=wv2j
提取码:wv2j
仅 1M 左右,但需要配一下 Python 环境,会略麻烦一些,本文针对 Python 版本
2.配置准备
2.1 解压
解压至任意位置,内容大致如上
2.2 安装Python3.8
已装可忽略。3.8版本主要是为了用 easyocr 包。
运行目录下的 pre_1_install_python.bat
已安装 Python3.8 会进入 Python 控制台:
否则 win10 和 win11 下会自动打开微软商店对应 Python 页面:
如果没有安装,应该会有一个“获取”按钮(我已经装了),点击自动安装即可。
如果跳转的不是Python 3.8,则需要主动搜索一下。
2.3 安装库
脚本有用到 opencv 进行图像匹配,需要安装相关库。
双击运行 pre_2_install_packages.bat 。会自动安装相关库
下载可能比较慢,需等待一会,受不了就关掉重来,可能就快了。(如果有梯子速度应该没问题的)
下载安装的过程可能有些报错,一般可以忽略
2.4 夜神模拟器配置
建议使用夜神模拟器,其自带 adb 比较方便,且我测试时是用的夜神模拟器。
安装明日方舟,且登录至少一次。
再将模拟器的分辨率设置为 1280*720
运行脚本前,先保持模拟器的运行
3 脚本设置
用文本编辑器打开脚本路径下的 settings.txt
3.1 adb_path
由于脚本使用 adb 控制模拟器。需修改 adb 相关的配置:
使用夜神模拟器的话,可以直接在夜神安装路径下的 bin 文件夹下找到 adb.exe
将其路径修改进去就行(允许有空格和括号,但最好没中文,因为没测过)
注意保留双引号
3.2 device_address
Win+R 运行 cmd
cmd 命令行进到夜神 adb.exe 所在文件夹
(不熟悉 cmd 命令的话,也可以把夜神的 adb.exe 复制到 cmd 打开后的默认文件夹)
输入命令 adb.exe devices 查看各个设备的地址:
如果没有多开模拟器,应只会看到一个 127 开头的本地地址
把 IP带冒号加端口 一起复制到 settings.txt 中的 device_address
3.3 资源关卡配置
修改 settings.txt 中的
填自己账号能代理的对应关卡等级(我还只能打 4 )
3.4 功能开关和顺序配置(非必要)
注:自动公开招募功能当前仅 python 版可用,由于其有用到 easyocr,但打包成exe后运行会缺环境报错,我还没研究出来怎么处理。所以用 exe 的都加 #屏蔽掉
说明见注释,没有需求可以不动
3.5 刷自定义关卡配置方式(非必要)
这一步略麻烦,可以不配置,如果不配置会默认刷 CE 或 LS 关卡。建议在正常能跑通的情况下再来考虑自定义关卡配置。
原理说明:截一系列需要点击的地方的图,脚本会依次匹配并点击,以进到对应关卡的位置。
示例配置方式(周年庆活动)如下,将从点击“终端”后的终端主页:
到对应关卡的“开始行动”的页面(最后一步一定是”开始行动“的截图):
对每个页面需要点击的地方依次截图,用于脚本匹配图并点击截图的中心
建议用夜神模拟器自带的截图工具,保证分辨率一致:
如我想刷 SN-4 关卡,则流程上依次需要点击以下四个地方:
注:暂时我没加滑动等额外操作的配置支持,所以像周年庆活动暂只能刷点击后默认打开的位置能看到的关卡。
注:如果可能出现默认非代理指挥的情况,这一步之前可以再加一步点击”代理指挥“(截没有勾选代理指挥时的”代理指挥“图)
把这几步依次需要点击的地方进行裁剪,裁剪可用 win 自带的裁剪工具,避免图片压缩失真:
由于图像匹配是逐像素的,截图时尽量使其特征最大化(如少截大片白、大片灰之类的无差异背景)
最后编辑 settings.txt
将图片的路径按格式依次加进去就ok,用逗号间隔,引号用半角。
可以试运行以下看看是否正常,如果某一步匹配失败,可以尝试调整那一步的图
3.6 其他配置(非必要)
还有一些其他配置,控制每个功能的循环周期,脚本的空闲时的等待时间等等,都有注释,可以根据需要自己调。
4 运行
可直接双击 run.bat 来运行
一切正常就能看到脚本在跑,且模拟器被控制运行了:
5.错误处理
5.1 CV相关报错
如果 run.bat 运行时 有 cv 相关的报错,代表依赖包安装有问题,及 2.3 的内容。
可尝试自己安装一下对应的包:
numpy
opencv-python
opencv-contrib-python
参考 opencv 文档:https://pypi.org/project/opencv-python/
其他解决方案参考 :opencv2安装报错no module named cv2
可以放github
厉害👍 感谢
有交流群吗
暂时还没弄,有问题先留言哇,以后有必要我再搞一个
求出一下教程如何自己调配置文件,试图学会能够自己设置刷那张图,优先选取四星公招,
好,关卡自定义配置方式我补到文章里了。公招的特殊选择功能暂时还没有,目前默认选第一个,我空了做一下优化
非常感谢提供教程,但是如图所示调好之后,他只过一次关卡之后就卡在结算界面了请问是怎么解决。
您好,我已经自己解决了,问题出现在原本的配置截图里,因为游戏结算UI改版更改了字体识别不了原本的图片level7行动结束,我改成新的就好了。
噢 ok,1.1.1版本里面我加了新的图
刚优化了一下公招功能,当发现资深选项时,停止自动公招,等以后手动处理。不过功能需要用到 ocr 包,并且需要重装一下 python3.8。
hello ,请问一下,它会判断理智吗,我试了一下,理智没有之后仍然会继续尝试刷图
目前逻辑下会尝试一下开始,按我设计的逻辑正常应该弹出了理智不足的框后就能识别,并且结束此次刷图
十分感谢啊,用的很舒服!
请问这个项目支持打包成exe文件嘛
哈哈哈,我还没试过python转exe ,晚点我试试
http://pangruitao.com:1180:1180/post/3893
EXE 可以用了,不过打包之后不能用之前的py文件进行配置了,我换了个 settings.txt
您好,请问一下,它适配周年庆的活动吗,我看活动的开始行动图标变了。
刚试了下,可以用,用文章3.5的配置方式,把到关卡上想点的地方依次截图(脚本点击截图的中心),这种把新”开始行动“也截一下。包”括使用代理“也可以截,没匹配上的图会自动跳过
噢,还是有点问题,目前这样只能成功行动一次。
晚些我调一下脚本。
大佬啊,像素逐点匹配考虑用灰度图吗?这次的“开始行动”图标换了颜色,用灰度图进行匹配就可以避免类似问题了吧qwq
我调了一下自定义的逻辑,把自定义延展到”开始行动“。灰度怕下次形状变了又得改,哈哈哈
那倒也是….就怕改点形状or加点花纹QwQ
重新截图就可以了,把template_images里面的level4和level8自己改一下,关卡的图片按照作者的方法做就好了
我分享下自己成功代理SN10(无限次)的截图,把原脚本里的文件替换就可以了
链接:https://pan.baidu.com/s/1ssU24d4IEkFGppJOkRMN9w
提取码:xltc
我刚修改了脚本,重新下1.2.1版,可以刷变”开始行动“的活动了
3.5的配置教程我也改了,参考着配一下就行,我自己跑了下没问题
请问,遇到无人机加速只加速一次就跳下一个指令了,怎么解决?
无人机那目前没写循环,但可以在 setting 中修改消耗无人机的执行周期,我目前设的2个小时消耗一次,基本能高于恢复速度的
如果想更快消耗就可以把无人机周期(go_drone_cycle)设更低一些(可能需要同时降低 recheck_time_when_no_work_to_do)
额,还是厚着脸皮来求教了,换了新版本后运行就一直出现这个错误了,然后我尝试了好久也解决不了QAQ
D:\Arknights_Scripts_EXE_1_2_1\Arknights_Scripts_EXE>python3.8 arknights_processor.py
Traceback (most recent call last):
File “arknights_processor.py”, line 8, in
import image_processor
File “D:\Arknights_Scripts_EXE_1_2_1\Arknights_Scripts_EXE\image_processor.py”, line 5, in
import easyocr
ModuleNotFoundError: No module named ‘easyocr’
D:\Arknights_Scripts_EXE_1_2_1\Arknights_Scripts_EXE>pause
这个看起来像是没有装 esayocr 包的问题
我在 pre_2_install_packages.bat 里面添加了装 easyocr 的命令,运行一下试试
解决了,十分感谢,nice!
#####################################################
Finished read settings by settings.txt
#####################################################
ArknightsController: Check Work : go_level ,last_time = 0 , current_time = 1651731825.7136528 ,work_cycle = 10800
#####################################################
ArknightsController: Choose to do go_level ….
#####################################################
ArknightsController:Start to Restart ….
ArknightsController:Stop the App ….
‘-s’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
ArknightsController:Start the App ….
AdbController: Start to wait till match screenshot by any [‘template_images\\start0.png’] for up to 60 seconds ….
‘-s’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
ImageProcessor: start to match temp_screenshot\screenshot.png by template_images\start0.png
Traceback (most recent call last):
File “arknights_processor.py”, line 634, in
re = restart_app()
File “arknights_processor.py”, line 38, in restart_app
start_app()
File “arknights_processor.py”, line 17, in start_app
re = adb_controller.wait_to_match_and_click([r”template_images\start0.png”],[0.01],True,60,2)
File “C:\Users\Administrator\Desktop\Arknights_Scripts_EXE\adb_controller.py”, line 97, in wait_to_match_and_click
re = wait_till_match_any(template_paths,thresholds,return_center,max_time,step_time,accidents,scope = scope,except_locs = except_locs)
File “C:\Users\Administrator\Desktop\Arknights_Scripts_EXE\adb_controller.py”, line 80, in wait_till_match_any
match_loc = image_processor.match_template(
File “C:\Users\Administrator\Desktop\Arknights_Scripts_EXE\image_processor.py”, line 29, in match_template
result = cv2.matchTemplate(target,template,cv2.TM_SQDIFF_NORMED)
cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\templmatch.cpp:1164: error: (-215:Assertion failed) (depth == CV_8U || depth == CV_32F) && type == _templ.type() && _img.dims() <= 2 in function 'cv::matchTemplate'
换了新版本,出现这种情况,请问怎么解决?
像是settings.txt 里面 adb_path 配置的问题,txt配置要取消以前双引号外面的r,并且再检查一下路径看看有问题不
#####################################################
Start to read settings by settings.txt
#####################################################
set adb_path : D:\Program Files\Nox\bin\adb.exe
set device_address : 127.0.0.1:62028
append to_do_list : go_level
append to_do_list : go_visit_friends
我开头的 log 如上
看来只是路径有中文不识别,已经解决了,谢谢
请问作者还有之前版本的吗?5.3号更新后的老是出错,不是程序出错,是基建过关有时候按不到某个选项,卡一阵子之后就跳过了。老版本之前用没出现过这种问题
https://pphkpublicbucket.oss-cn-hongkong.aliyuncs.com/file4public/Arknights_Scripts/Arknights_Scripts_1_1_2.zip
这个是4月底的。
基建上人确实偶尔会有问题,不过我最近挂起来没怎么遇到。等我遇到看看是怎么出错的,到时候我修一下
有百度網盤以外的下載方法嗎
自己是玩台服的,也想研究一下自己做一個