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.
1.8 KiB
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。