You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
AdLike2048/docs/方案-配表异常.md

1.8 KiB

方案:配表异常告警

日期:2026-09-09
入口:TableAnomaly(assets/script/game/TableAnomaly.ts)

1. 目的

配表与实现契约对不上、或行内自相矛盾时,只暴露、不兜底。策划在控制台搜 【配表异常】 即可看到表名、id、字段和原因。

禁止用默认值、猜间隔、按单体顶替未知 atk_type 等把错误跑通。

2. 打印格式

【配表异常】 Skill id= 20501 cd 主动技能 cd≤0,实现不会编造间隔 0

同 key(表+id+字段+原因)只打一次,避免局内刷屏。热更重新扫会先 reset。

3. 何时检查

时机 行为
Boot / Deferred / 全表加载完成 TableAnomaly.scan
配表热更写入后 再扫一遍
运行时发现(如主动 cd≤0、未知 atk_type 进表现) TableAnomaly.warn,不补逻辑

4. 加载扫描范围

  • Skill:type 非 1/2;主动 cd≤0;atk_type 头无索敌实现;skill 额外头未落地;主动既无 atk_type 也无额外效果
  • Hero:herotype 非法;atk_id / act_skill 指向不存在的 Skill;武器 id 无 Weapon 行;合成武将 startweapon 的 Weapon.type 与 Hero.weapon 不一致;atk_id 长度小于 level_limit
  • Weapon:type 非 1–4;act_skill 无 Skill;heroid 无 Hero 或该英雄 personalweapon 不是本武器;战斗武器 skin 为空

新契约(新 atk_type / 额外效果头)落地后,须同步改 TableAnomaly 里的实现集,否则会误报。

5. 调用约定

运行时发现配表问题一律:

TableAnomaly.warn('Skill', skillId, 'cd', '主动技能 cd≤0,不编造连放间隔', baseCd);

然后中止或保持空结果,不要再写 ?? 默认值 / 编造 CD / 改成已实现的 atk_type。