Skip to content

Weather Record 天气计划

状态:Authoritative Reference v1

1. 物理结构

Weather record 固定:

text
0x10 = 16 bytes

字段:

OffsetSizeRaw type当前名称状态
+0x004int32 LEWeatherTypeRawConfirmed dispatch input
+0x044int32 LEParameterRawConfirmed runtime parameter / effect Unknown
+0x084int32 LEStartRoundConfirmed
+0x0C4int32 LEDurationConfirmed

2. 全局计划而不是 Tile 天气

原版 FUN_00387138 复制四个 int32。每回合 FUN_003871DC 从磁盘记录末尾向前扫描,选择满足:

text
StartRound <= GameRound < StartRound + Duration

的最后一条记录,再调用:

text
FUN_00387220(WeatherService, WeatherTypeRaw, ParameterRaw)

因此当前已确认:

  • Weather 是 battle-global schedule;
  • record 中没有 Tile、Province 或 Country 目标字段;
  • 多条时间区间重叠时,磁盘中靠后的有效记录优先
  • WeatherTypeRaw 原版 runtime 接受 0..3 的 dispatch 范围。

3. 当前原版正样本极少

WeatherTypeRaw 0..3 的 dispatch/效果状态可直接查 核心固定记录值域速查

当前 1358 个原版 BTL 中只有:

text
frontier60106.btl

含 Weather,且仅 1 条:

text
WeatherTypeRaw = 3
ParameterRaw   = 3
StartRound     = 1
Duration       = 20

所以“计划结构和选择时序”已经 Confirmed,但:

text
WeatherType 3 的具体天气名称
Parameter 3 的具体玩法意义

仍为 Unknown

不能因为它出现在 Frontier 关卡就自行命名为某种天气效果。

4. Writer 边界

当前缺少:

  • 各 WeatherType 的完整效果;
  • Parameter 的 type-dependent 语义;
  • 非正 Duration 的原版动态表现;
  • 多条计划组合的行为 corpus。

因此 semantic writer 仍为 NoGo

主要证据:

text
reconstruction/src/WC4.Runtime.BattleData/BtlScheduleRecords.cs
reports/route4_identity_reference_contract.md
reports/evidence_reuse_round3_btl_datasystem_fields_audit.md