文档 其它

常见问题

这是外挂吗?支持哪些版本?AI 能看到什么、能做什么?不会编程能用吗?……

这是外挂吗?

不是。它是一个给 AI 研究和娱乐用的开发接口,只用于你自己合法拥有的客户端,在本机、局域网或自建游戏里和电脑或别的 AI 对打。它不得用于 Battle.net 或任何带反作弊的服务器,也不提供任何针对真人对局的功能。详见 使用边界。

支持哪些游戏版本?

目前只支持魔兽争霸 III 1.27(冰封王座)。1.24 ~ 1.28 是同一套引擎结构,多版本适配(按版本选符号表、特征码兜底、开机自检出能力清单)在 路线图 的 P4 阶段。1.29 之后的版本和重制版是另一套引擎,需要单独适配,目前不承诺。

会修改我的游戏文件吗?

不会。运行时在游戏运行时注入,不修改磁盘上的 Game.dll 或任何游戏文件。多开时只是把原版的 War3.exe 启动壳原样拷贝改名。游戏数据(单位表等)从你自己的游戏里提取,不随代码分发。

AI 能看到什么?

基本上是一个职业选手想知道的一切,每 50 ms 更新一次:

  • 所有玩家的金、木、人口;所有单位的位置、血蓝、当前订单、正在打谁、等级经验;
  • 英雄和单位的技能等级与剩余冷却、身上的 buff、背包;
  • 每座建筑在训练 / 研究 / 建造 / 升级什么、进度多少、有没有因为人口卡住;
  • 地上的物品、树、地图的可走 / 可建网格、出生点、游戏内时间(昼夜);
  • 事件流:单位出现与死亡、每一下伤害(谁打的、攻击类型、护甲前伤害)、击杀、生产完成、英雄升级……
  • 还能直接问引擎:某件事现在能不能做、为什么不能;某个科技几级;某一点看不看得见;金矿还剩多少;电脑对手要带兵打哪。

在此之上,SDK 还算好了战斗属性(克制、护甲、攻防升级)、「打死它要几秒」和地面寻路。全部接口见 接口目录。

AI 能做什么?

玩家能做的操作基本都有:移动、攻击移动、攻击指定目标、停止、原地待命、巡逻、攻击地面、采集、修理、建造(可自动找落点)、训练 / 研究 / 升级、取消、学技能、施法(对单位 / 对点 / 无目标)、集结点、复活英雄、捡 / 用 / 丢 / 给 / 卖物品、买东西、战斗号召;Shift 排队、按路径点行军、一个工人连造几座;还有倍速、暂停、头顶气泡。每条命令都有回执。

除了玩家的操作,还能往游戏画面上画自己的面板和标注(画板),以及在单人局里调用地图作者能用的 1291 个 JASS 函数(JASS 通道)。

能用在 RPG / 自定义地图里吗?

能。选一张 RPG 地图、给实例选「玩伴示例」方案,开局后你自己玩,身边会跟着一个会助战、给你加血、陪你说话的 AI 伙伴,见 RPG 玩伴。g.map_data 能读出地图自定义单位的名字;JASS 通道 能造单位、设盟友、弹面板……怎么玩由你决定。改世界的操作只在单人局可用(多人局会不同步),画板在多人局里也安全。

不会编程能用吗?

能。按 快速开始 装好环境,然后看 用大模型写一个 Bot:你用大白话描述打法,大模型写代码;跑起来有问题,把报错或你在游戏里看到的现象告诉它,让它改。

只能用 Python 吗?

SDK 是 Python。运行时和外部程序之间只有一份共享内存协议(W3P),任何能读写 Windows 共享内存的语言都能接入。更省事的是 网关(WebSocket / JSON):JS、C#、Go、Rust、浏览器页面、另一台机器上的程序都能调同样的接口;大模型 Agent 可以直接挂 MCP。

用哪个大模型最好?

能写代码的主流模型都可以。关键不在模型,而在给它正确的材料(手册 + api.json + 一个示例),并要求它只用接口目录里存在的方法。局内实时决策(参谋、配音)对延迟敏感,本地 MoE 模型表现很好,见 大模型当参谋 和 头顶气泡与本地模型。

会拖慢游戏吗?

世界状态一次采集在游戏线程上中位 0.5 ~ 0.9 ms(100 ~ 120 个单位),每 50 ms 一次。命令在游戏线程上每条几微秒,一次排空有 4 ms 的时间预算,做不完的留到下一次,不会拖住游戏。所有对游戏的调用都有异常保护,Bot 崩了只是那一方停了,不会带崩游戏。

能同时开多个游戏吗?

能。runtime/farm.py 负责多实例编排,每个实例一个编号;在 远见指挥台 里起停。你的 Bot 用 --inst N 连到指定实例。

能让两个 AI 对打吗?

在同一局里开两条 player 通道(--player 0 / --player 1)就是 AI 对 AI。本机模式下公平靠约定;有裁判、视野过滤、归属校验的正式对战在 对战平台(P6 阶段)。

支持 Mac / Linux 吗?

目前只支持 Windows 10 / 11。

用什么许可证?

许可证会随正式版一起公布。第三方组件保留各自的许可(例如 MinHook 为 BSD-2);AMAI 为自定义许可,其衍生数据不随项目分发,安装时从 AMAI 公开仓库拉取生成。

遇到问题去哪反馈?

正式版发布后会开放问题反馈渠道。反馈时请附上实例号、python -m openwar3 status 的输出和复现步骤。先看看 调试与性能 能不能解决。