/MAA-Linux-RemoteControl

无图形界面(Linux等)下使用Websocket远程控制MAA(MaaAssistantArknights)运行任务,包含日志和截图的消息推送

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

MAA-Linux-RemoteControl

就简称MAA-LRC吧

MAA-LRC使用Python实现无图形界面设备下远程控制MAA,运行明日方舟助手

  • 利用Websocket协议通信,MAA-LRC作为客户端连接到远程控制的服务端,对服务端下发的任务配置进行队列处理
  • 对每个子任务的运行结果进行回调报告,可以加入截图一并汇报

目前已实现

  • 没有任务等待运行时释放相关内存资源进入休眠(虽然已经进行了删除实例和内存回收工作,但还是存在内存泄漏问题,目前的妥协方案是在任务队列清空后自动退出进程,等待守护进程帮助重启)
  • 下发任务时自动更新MAA版本和OTA资源
  • MAA内核版本更新后热重载相关进程资源(python似乎暂时没有特别优雅的进程重启方法,使用子进程又担心长期运行可能存在的内存泄漏,目前还是依靠守护进程帮助重启)
  • 支持Android 11+设备的无线调试连接(端口扫描和自动重连)
  • 运行MAA的常规任务(启动、关闭、作战、公招、基建、领取奖励和自定义任务)
  • 作战结果与掉落物品汇总汇报
  • 获取任务运行前后截图
  • 获取基建入驻总览的截图
  • 获取基建副手简报的截图
  • 获取日常周常奖励页面截图
  • 获取公招界面的截图
  • 发送截图和日志到服务端进行回调报告
  • 任务运行时立即获取实时截图
  • 任务运行时立即中断运行
  • 自动检查是否存在签到/合成玉抽签活动尚未领取的情况(只是检查,不是自动领取,自动领取有MAA开发大佬在写了)
  • 自动检查是否存在大型活动赠送单抽机会尚未使用的情况(只是检查,不是自动用掉,自动领取功能可以在MAA的Award任务中配置)
  • 自动检查基建是否存在异常情况(红色三角警告标志)(只是检查,不是自动处理)

运行效果(使用Nonebot构建的QQ机器人下对MAA-LRC推送的回调消息进行通知)

激活MAA时自动更新
image

启动游戏
image

作战总结
image

基建排班
image image

基建简报
image

信用商店
image

公开招募
image %7BAAF74C4D-043F-4c1b-9266-5E13139B571C%7D

任务奖励
image

使用方法

1、下载MAA的linux发布版本,解压后放在某某路径

2、下载本项目源码

3、修改源码文件夹 config-example 的名字为 config

4、阅读并按自己需求修改 config 文件夹下的配置文件 asst.yaml

5、检查安装python的依赖包,我所用的是Python 3.10.13

aiohttp==3.9.1
loguru==0.7.2
PyYAML==6.0.1
requests==2.31.0
websocket-client==1.7.0
opencv-python-headless==4.9.0.80

6、运行

在项目主文件夹下运行:

python __init__.py

交互协议说明

本项目wiki

任务配置说明

本项目wiki

通知消息说明

本项目wiki

运行过程说明

本项目wiki

常见问题与重要提醒

本项目wiki

另外的

我的代码水平很差,欢迎各种issue和pr。
唯有一点:请使用tab进行代码缩进,如非必要,不使用空格实现缩进。
建议使用ruff进行代码格式化