diff --git a/game/core/effect_engine.gd b/game/core/effect_engine.gd index 4ce6d5e4..0883c8f4 100644 --- a/game/core/effect_engine.gd +++ b/game/core/effect_engine.gd @@ -367,6 +367,11 @@ static func validate_trigger_row(rid: String, row: Dictionary, triggers: Array, var kind := String(do_d.get("kind", "")) if not EFFECT_KINDS.has(kind): errs.append({"category": "enum", "message": "%s 效果类型出域(解释器闭集): %s" % [rid, kind]}) + # 计数器前缀归属合法性(.tres 行路径——写错前缀加载致命;判据单点 counter_id_legal,与 _push_trigger 同源) + if do_d.has("counter_id"): + var cid := String(do_d.counter_id) + if not counter_id_legal(cid): + errs.append({"category": "enum", "message": "%s counter_id 前缀非法(meta_ 出域/引擎不接存档级): %s" % [rid, cid]}) # value_from/delta_from/mult_from/cap_from 引用面:行字段存在性(悬空=加载致命)—— # do 与 when 两侧同面(when value_from=dawn_order effective_rounds 先例) for vf_k in ["value_from", "delta_from", "mult_from", "cap_from"]: