Skip to content

Repository files navigation

MaaAutoReverse

《明日方舟》卫戍协议自动化买卖工具。当前版本以 MaaFramework 运行器为核心,由 gui_app.py 提供可视化配置和启停控制。

功能概览

  • 自动识别商店卡片并按名单执行操作。
  • 手牌区满判定(橙色或红色)避免误买。
  • 两种运行模式:
    • F8 自动倒转:按完整策略执行买/卖。
    • F9 干员道具刷新保留:只买保留道具和保留干员,买完后自动按 D 刷新继续循环。
  • 名单可在 GUI 中实时编辑,并保存到 config/
  • 支持预设复选框:
    • 预设道具(来自 config/predefined_items.json
    • 预设保留干员(来自 config/predefined_buy_only_operators.json

环境要求

  • Windows 10/11
  • Python 3.10+
  • 游戏窗口建议 16:9,且运行时保持前台无遮挡

安装

先安装项目依赖,再补充 maafw(运行器依赖)。

python -m pip install -r requirements.txt
python -m pip install maafw

快速开始

python gui_app.py

启动后:

  1. 在顶部选择目标游戏窗口。
  2. 配置名单(保留道具、倒转干员、保留干员、不处理干员)。
  3. 选择运行模式:
    • 点击 启动自动倒转 (F8) 或按 F8
    • 点击 干员道具刷新保留 (F9) 或按 F9

脚本会尝试提权运行。若提权窗口被取消,程序会直接退出。

运行模式说明

1) 自动倒转(F8)

  • 按策略执行:
    • 保留道具:只买
    • 倒转干员:买后卖
    • 保留干员:只买
  • 检测到商店刷新后进入下一轮识别。

2) 干员道具刷新保留(F9)

  • 仅执行“保留道具 + 保留干员”的购买。
  • 不执行买卖干员动作。
  • 当前轮可购目标处理完后,自动发送 D 刷新商店并继续识别。

配置文件

所有名单及进阶阈值数据均保存在 config/ 目录下,即便在打包成 exe 后也可自由用文本编辑器修改保存。

1. 名单及界面状态记录

  • buy_items.json保留道具名单(遇到这些道具会直接买下囤积)
  • buy_only_operators.json保留干员名单(遇到这些干员会买下囤积)
  • buy_sell_operators.json倒转干员名单(遇到这些干员会执行:买入 -> 卖出 赚取一费差价)
  • six_star_operators.json不处理干员名单(不会购买这些干员/道具)
  • predefined_items.json预设道具列表(用于构造控制界面下方的快捷勾选框)
  • predefined_buy_only_operators.json预设保留干员列表(控制界面快捷勾选框的数据集)
  • maa_option.jsonGUI 本地运行选项(记录你上次选择的游戏窗口句柄等本地状态)

2. 高级参数配置 (advanced_config.json)

此文件记录了游戏动画时长检测和操作之间的延迟补偿阈值。如果你观察到程序因网速或模拟器卡顿导致漏识别、连点吞按键,请修改它。

  • "change_threshold": 省流防沉睡阈值。截取两张图片画面对比时的容差。大于该容差表示有变化需要扫描分析。如果小则证明画面未变化(比如未按刷新),跳过本轮以节省性能。
  • "shop_refresh_change_threshold": 各商品格刷新判定阈值。买完卡后,未购买的卡槽位发生的变更幅度,超过该阈值被判定为发生了一切大刷新。
  • "stable_threshold": 画面静止稳定判定。当刚按下刷新或购买等指令时,容错多大区别内的画面闪烁会被认为“画面已安静无动画”。
  • "stable_timeout": 最长稳定超时(秒)。画面持续闪烁不停时,允许程序死等多少秒后强制继续操作(2.0 = 2秒)。
  • "post_action_refresh_wait": 买/卖单张卡牌后的死等时间(秒)。预留时间让所买卡牌消失动画播完(0.4 = 0.4秒)。
  • "sell_click_wait": 从选中手上干员敲击 X 键卖出之间 的焦点预设停顿(秒)。
  • "double_click_interval": 鼠标双击购买商品时,两次点击之间 的连点发包间隔时间(秒)。
  • "stable_poll_interval": 发起各种轮询截图的时间间隔。默认 0.1 表示每 0.1 秒向游戏截图并比对一次是否刷新/静止。
  • "action_interval": 执行两组相互独立的连续组合动作时相隔的休息时间(秒)。防由于指令过密导致连击断触。

3. 性能与稳定性配置

此文件用于精细控制图像识别的灵敏度与稳定性,以适应不同电脑配置和网络环境。

  • "change_threshold": 省流防沉睡阈值。截取两张图片画面对比时的容差。大于该容差表示有变化需要扫描分析。如果小则证明画面未变化(比如未按刷新),跳过本轮以节省性能。
  • "shop_refresh_change_threshold": 各商品格刷新判定阈值。买完卡后,未购买的卡槽位发生的变更幅度,超过该阈值被判定为发生了一切大刷新。
  • "stable_threshold": 画面静止稳定判定。当刚按下刷新或购买等指令时,容错多大区别内的画面闪烁会被认为“画面已安静无动画”。
  • "stable_timeout": 倒转长时间未响应,减小该值
  • "post_action_refresh_wait": 如果发现买单张卡牌后,错误的卖掉了其他的干员,可以尝试增大该值。
  • "double_click_interval": 如果发现双击后没有买到干员,可以尝试增大该值。
  • "action_interval": 买卖完一个干员后,进行下次操作的时间间隔

目录结构(核心)

MaaAutoReverse/
|- gui_app.py                  # GUI 入口(F8/F9 控制)
|- maa_adapter.py              # GUI 到 Maa 运行器的适配层
|- autoreverse/engine.py       # 识别、策略执行、手牌满判定
|- autoreverse/runner.py       # Maa 任务生命周期
|- config/                     # 用户配置与预设
|- resource/autoreverse_bundle # Maa pipeline 资源
|- runtime/bin                 # Maa 运行时依赖

常见问题

GUI 启动后直接退出

  • 通常是提权流程被取消。请右键“以管理员身份运行”终端后再启动。

识别/点击不稳定

  • 确保窗口前台、无覆盖。
  • 检查分辨率比例是否为 16:9。
  • 适当调整 config/advanced_config.json 中稳定性与刷新阈值。

快捷键无效

  • 确保没有其他软件占用 F8/F9/X/D
  • 某些环境下需管理员权限才能全局监听热键。

About

基于maafw的卫戍协议自动倒转、保留干员道具的小助手

Resources

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages