《明日方舟》卫戍协议自动化买卖工具。当前版本以 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 maafwpython gui_app.py启动后:
- 在顶部选择目标游戏窗口。
- 配置名单(保留道具、倒转干员、保留干员、不处理干员)。
- 选择运行模式:
- 点击
启动自动倒转 (F8)或按F8 - 点击
干员道具刷新保留 (F9)或按F9
- 点击
脚本会尝试提权运行。若提权窗口被取消,程序会直接退出。
- 按策略执行:
- 保留道具:只买
- 倒转干员:买后卖
- 保留干员:只买
- 检测到商店刷新后进入下一轮识别。
- 仅执行“保留道具 + 保留干员”的购买。
- 不执行买卖干员动作。
- 当前轮可购目标处理完后,自动发送
D刷新商店并继续识别。
所有名单及进阶阈值数据均保存在 config/ 目录下,即便在打包成 exe 后也可自由用文本编辑器修改保存。
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.json:GUI 本地运行选项(记录你上次选择的游戏窗口句柄等本地状态)
此文件记录了游戏动画时长检测和操作之间的延迟补偿阈值。如果你观察到程序因网速或模拟器卡顿导致漏识别、连点吞按键,请修改它。
"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": 执行两组相互独立的连续组合动作时相隔的休息时间(秒)。防由于指令过密导致连击断触。
此文件用于精细控制图像识别的灵敏度与稳定性,以适应不同电脑配置和网络环境。
"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 运行时依赖
- 通常是提权流程被取消。请右键“以管理员身份运行”终端后再启动。
- 确保窗口前台、无覆盖。
- 检查分辨率比例是否为 16:9。
- 适当调整
config/advanced_config.json中稳定性与刷新阈值。
- 确保没有其他软件占用
F8/F9/X/D。 - 某些环境下需管理员权限才能全局监听热键。