MCPcopy Index your code
hub / github.com/Minkelxy/NZM_CMD

github.com/Minkelxy/NZM_CMD @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
171 symbols 336 edges 9 files 18 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

NZM_CMD - 逆战:未来指挥官

NZM_CMD 是《逆战:未来》的自动化执行终端与辅助框架。

本项目采用了 双模驱动架构 (Dual-Mode Driver Architecture)计算机视觉 (Computer Vision) 相结合的方案,旨在提供最安全、最稳定的自动化体验。

⚠️ 注意:可执行文件无效传播, 却不能对项目有任何改进. 本项目目前不提供预编译的可执行文件 (EXE),直至软件进入稳定阶段。请参照下文自行编译。

> 💬 加入讨论: 1075480881

🛠️ 生态系统与配合 (Ecosystem)

本项目是 MINKE 体系 的一部分,建议配合以下项目使用以获得完整体验:

🧩 MINKE's Indexed NiZhan Keypoint Environment

(策略生产工场)

NZM_CMD 专注于执行,而 MINKE 专注于生产。 * 可视化编辑:使用 MINKE 提供的可视化地图编辑器,您可以直观地在游戏截图上标记网格、绘制地形、规划陷阱布局。 * 数据生成MINKE 负责生成 NZM_CMD 所需的核心配置文件: * *地图.json:包含地图的物理参数、网格数据和预备动作。 * *策略.json:定义每一波的建造、升级和拆除指令。 * 工作流: 1. 在 MINKE 中加载游戏截图,绘制地图与策略。 2. 导出 JSON 文件。 3. 将 JSON 文件放入 NZM_CMD 的运行目录。 4. 启动 NZM_CMD 执行全自动挂机。


⚙️ 游戏配置要求 (Prerequisites)

为了确保 CV 识别准确,请务必将游戏设置为以下配置:

  • 显示模式: 无边框全屏 (Borderless Windowed)
  • 分辨率: 1920x1080
  • 帧率限制: 60 FPS (包括大厅和局内,必须锁定以保证时序稳定)
  • 画质设置: 推荐低/中画质,关闭动态模糊和光影特效(减少 OCR 干扰)

📅 开发路线图 (Roadmap)

✅ 已完成特性 (Completed)

模块 特性说明 完成时间
核心驱动 双模架构 (Dual-Mode):支持硬件串口与软件模拟热切换,集成 CLI 参数控制 2026-02-04
拟人算法 生物力学模拟:实现贝塞尔曲线鼠标轨迹、高斯分布按键延迟与微颤算法 2026-02-05
智能导航 NavEngine:基于 TOML 配置的场景感知、OCR 状态识别与动态路由分发 2026-02-07
塔防业务 策略引擎:支持 JSON 定义建造/升级/拆除序列,实现坐标自动修正与双击防漏 2026-02-08
日活业务 任务闭环:实现每日任务的自动识别、刷新、领奖及弹窗跳过逻辑 2026-02-09
OCR增强 智能波次识别:基于上下文的OCR纠错、波次递增验证、文本去重逻辑 2026-02-28
配置工具 UI可视化编辑器tools/UI_tool/ 支持TOML场景可视化编辑与导出 2026-02-28

🚧 开发计划 (In Progress)

  • [ ] 相机系统优化
    • [ ] 多矩形安全区域拼接、边界校准与累计误差消除

🔮 远期规划 (Backlog)

  • [ ] 全链路无人值守
    • 实现 启动游戏 -> 自动登录 -> 选区进入 -> 执行任务 -> 退出游戏 的全流程托管。
  • [ ] 事件调度系统 (Event Scheduler)
    • 支持 Cron 表达式风格的定时任务(如:每天凌晨 3 点自动刷首胜)。
  • [ ] 云端策略库
    • 支持从远程服务器拉取最新的 ui_map.tomlstrategy.json,应对游戏热更新。

🏗️ 项目架构

NZM_CMD/
├── src/
│   ├── main.rs           # [入口] CLI 参数解析与路由分发 (Router)
│   ├── hardware.rs       # [驱动] InputDriver Trait 定义及软/硬件实现
│   ├── human.rs          # [核心] 拟人化算法 (曲线生成、抖动控制)
│   ├── nav.rs            # [核心] 导航引擎、Windows OCR 封装、场景识别
│   ├── daily_routine.rs  # [业务] 日常任务自动化逻辑
│   ├── tower_defense.rs  # [业务] 塔防战斗逻辑、陷阱策略调度
│   └── models.rs         # 数据结构定义
├── tools/
│   └── UI_tool/          # [工具] UI场景可视化编辑器 (TOML编辑与导出)
├── maps/                 # [配置] 地图与策略文件目录
│   └── 地图名称/
│       ├── *地图.json    # 地图元数据 (网格、安全区、相机参数)
│       ├── *策略.json    # 波次策略 (建造/升级/拆除指令)
│       └── *防御塔.json  # 防御塔配置 (可选)
├── ui_map.toml           # 界面导航与路由配置文件
└── start_task.bat        # 自动提权启动脚本


🚀 快速开始 (Quick Start)

环境要求

  • OS: Windows 10 / 11 (需启用 Windows OCR 服务)
  • Rust: Stable toolchain (请自行安装 Rust 环境进行编译)

1. 编译项目

# 推荐使用 Release 模式以获得最佳 OCR 性能
cargo build --release

2. 启动方式

本项目支持命令行参数控制,或使用批处理脚本一键启动。

方式 A: 使用 BAT 脚本 (推荐)

直接运行根目录下的 启动日活.bat (或自定义的 .bat 文件)。脚本会自动请求管理员权限并运行程序。

方式 B: 命令行启动

请以管理员身份打开 PowerShell 或 CMD:

通用语法:

cargo run --release -- -p <端口> -t <目标任务>

示例 1:使用软件模拟 (无需硬件)

# 自动回退到软件模式,执行赛季任务
cargo run --release -- -p SOFT -t "赛季任务"

示例 2:使用硬件串口

# 连接 COM3 端口,前往空间站地图
cargo run --release -- -p COM3 -t "空间站普通"

3. 命令行参数说明

参数 简写 默认值 说明
--port -p COM3 指定串口号 (如 COM9)。输入 SOFT 强制使用软件模拟。
--target -t 空间站普通 导航的目标界面名称 (对应 ui_map.toml 中的 id)。
--test None 运行单元测试模式:input (键鼠), screen (截图), ocr (识别), scroll (滚轮)。

⚙️ 配置指南

1. 界面路由 (ui_map.toml)

你可以通过修改此文件来定义界面跳转逻辑及业务接管:

[[scenes]]
id = "每日目标"
name = "每日目标"
handler = "daily"  # 指定由 DailyRoutineApp 接管

[[scenes]]
id = "空间站炼狱"
handler = "td"     # 指定由 TowerDefenseApp 接管

2. 塔防策略 (*策略.json)

定义塔防模式下的建造顺序和位置。强烈建议使用 MINKE 环境 生成此文件。


🛠️ 辅助工具

进入 tool 目录运行调试工具,用于获取屏幕坐标和测试 OCR 识别率:

cd tool
cargo run --release


⚠️ 免责声明

  • 本项目仅作为 Rust 系统编程计算机视觉自动化控制技术的学习研究案例。
  • 严禁将本项目用于任何破坏游戏平衡、盈利或非法用途。
  • 使用任何辅助软件均存在账号封禁风险,开发者不对使用本项目产生的任何后果负责。

📜 License

MIT License

Extension points exported contracts — how you extend this code

InputDriver (Interface)
========================================== 1. Common Interface (Trait) ========================================== [2 implementers]
src/hardware.rs

Core symbols most depended-on inside this repo

key_click
called by 15
src/human.rs
click_humanly
called by 15
src/human.rs
move_to_humanly
called by 14
src/human.rs
key_hold
called by 13
src/human.rs
key_up
called by 11
src/hardware.rs
key_down
called by 10
src/hardware.rs
send_raw
called by 9
src/hardware.rs
current_scene_mut
called by 5
tools/UI_tool/src/main.rs

Shape

Method 99
Class 39
Function 22
Enum 10
Interface 1

Languages

Rust100%

Modules by API surface

src/tower_defense.rs51 symbols
tools/UI_tool/src/main.rs33 symbols
src/nav.rs26 symbols
src/hardware.rs18 symbols
src/main.rs15 symbols
src/human.rs13 symbols
src/scheduler.rs10 symbols
src/daily_routine.rs5 symbols

For agents

$ claude mcp add NZM_CMD \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact