摘要

在《魔法门之英雄无敌:上古纪元》里,英雄施法要花魔力(耗魔)。实际花多少会被很多来源改变:我方或敌方的技能、装备、某些生物的光环都可能让法术更贵或更便宜;“奇术”技能还允许同一回合施第二次法术,但第二次要乘一个倍率。项目的状态估计模块(SE,把读到的观察累积成对局状态和对手构筑推断)会读战斗日志里的“某英雄施放某法术、失去了多少魔力”,反推“需要哪些费用来源才能解释这个数”,进而推断对手可能带了什么技能或装备。

以前的费用测试只覆盖“第一次施法真实支付,第二个数字只是报价”。本实验补上缺口:在项目的规则模拟器里,让英雄合法地先后施放两种不同法术,把模拟器给出的实际扣蓝作为观察喂给 SE 的独立耗魔解释入口,检查真正起作用的费用来源类别是否被保留下来。新建 57 个测试节点,加上 3 个既有相关文件共 133 项全部通过,本批没有发现需要修改的生产错误。但在等待外部审阅期间,另一个探针在 SE 的自动推断主路径里发现了一个真实反例,已另立实验修复。

要回答的问题

当施法费用由多个来源叠加(我方减耗、敌方加耗、光环、学派联动、第二次施法倍率)时,SE 的耗魔解释能否:保留真正起作用的那类条件;不把我方的减耗或施法次序误归给敌方;在观察有歧义时拒绝配对?

数据与来源

  • 全部是规则模拟器(项目的规则实现,不是商业游戏的已验证规则;规则版本 battle-core.v449)中的合法构筑与合法动作。
  • 来源组合用的具体条目:生物德鲁伊与魅魔(升级版)、宝物“魔法拖鞋”、两个子技能(一个降耗、一个让敌方加耗)、主技能“奇术”和“日光魔法”。都由公开的竞技场解析器构造,没有手填价格系数。
  • 观察来自实际动作回执里的法术与扣蓝字面,经测试适配为日志格式;合成的玩家名和日志时钟只用于测试配对,不冒充录像元数据。真实构筑和完整状态只用于事后评分,不传给 SE。
  • 另用一份已保存的真实训练页(一段训练录像,10 月 10 日 16:57)通过 App 接口核对。

方法

测试组 做法
30 种构筑 5 种来源配置 × 3 种阻碍条件(无 / 有但学派不对应 / 有日光学派) × 奇术高级/专家;每次先后合法施放“力量之歌”和“原始弩箭”,核对报价 = 实际扣蓝 = 动作回执
10 个跨回合分支 5 种配置 × 阻碍无/有日光联动;合法跳过回合到法术可再施放,第三次施法恢复首施费用,敌方来源仍在
12 个逐来源去除 6 个来源各在奇术高级/专家下单独移除,重新构造并施法,验证每个来源都实际改变了费用
4 个观察负例 在第二次施法的合成日志里加入断行、时钟差、不同玩家或重复扣蓝,验证不配对、不调用价格枚举
1 个抵消对照 “无来源”与“德鲁伊 −2、魔法拖鞋 −2、敌方加耗 +4”实际费用相同,验证 SE 返回同一组匿名条件——净值为 0 不能排除敌方加耗

独立的期望数值由已审核公式手算后固定:两法术本等级基础耗魔都是 6;第二次施法倍率奇术高级为 1.75、专家为 1.5。例如高级、五来源全开时两次施法为 11→16;去掉魔法拖鞋变 14→20,去掉敌方加耗变 6→8,去掉日光联动变 10→16。(首轮 24 项只核对候选,手算绝对值和逐项去除是后续补强的,不能说成全部预期都在首轮之前冻结。)

设置

现有核心环境,8 核限制串行。所有动作从合法动作列表中选取,并在克隆状态上重复执行验证确定性。

结果

运行 结果
第 1 批 24 通过 / 30.79 秒
第 2 批(加跨回合) 24 通过、1 失败 / 31.06 秒
第 3 批 45 通过 / 46.95 秒
最终聚焦 新 57 + 既有 76,共 133 个不同节点通过 / 70.28 秒

真实保存页核对:同一训练页里两位不同玩家、不同时钟的两条记录(17:04:22 与 17:04:50),都是施放“审判”花费 28。经 App 的真实接口调用独立耗魔解释,每条都得到 4 组条件:模型等级 1–4、普通倍率 1、无阻碍、匿名固定 −2。这 4 组不是 4 种已识别的构筑;“无阻碍”只是有限模型内的相容组合,不能证明敌方没有相关技能,英雄特长等模型外来源也没有认证。

失败与负结果

  • 第 2 批 1 个失败:测试误用了动作对象上并不存在的“施法方”字段,改为读取当前行动方。这是测试夹具错误,不是 SE 产品缺陷;失败记录保留。
  • 随后发现的反例:在等待审阅时,另一个探针用合法构筑发现——只有德鲁伊单独减耗、没有魔法拖鞋或减耗子技能时,SE 的自动推断主路径仍强制在“魔法拖鞋或减耗子技能”二选一。这个发现不在本批测试范围内,本批“未发现生产错误”的结论不覆盖它;修复在另一个实验中进行。

局限

  • 这是模拟器动作的软件组合测试,不是商业游戏实测、OCR 准确率或完整实体覆盖。
  • 没有证明这些整套选择能在随机选秀中真的被抽到,也没覆盖所有英雄或每个法术等级;没有认证唯一来源、专注类动态加耗、零费用或超出 −6…+7 的固定项。
  • 本批只覆盖独立的单页费用解释入口,不代表 SE 主推断的跨页施法次序已经消费这些条件。

结论与下一步

测试批次收尾,不再扩充无关组合。外部审阅同意收尾,并强调这不代表自动 SE、商业游戏或全实体覆盖。下一步检查:SE 主推断和历史费用说明这两个不同的消费者,对同一条保存的扣蓝/施法是否给出一致的解释,避免“独立按钮有信息、App 自动分析却没用上”;先查已有实现,不再复制一套定价逻辑。