[Parity][render][S1][H][R] OVERLAY_METADATA 是自造的"状态→overlay"表:帧数、偏移、光照、混合方式与 states.txt / overlay.txt 全部不符 #603
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
来源审计项:
render#2— [S1][H][R]OVERLAY_METADATA是自造的"状态→overlay"表:帧数、偏移、光照、混合方式与 states.txt / overlay.txt 全部不符位置:
src/client/view/unit-drawables.ts:204-225(表),:509-547(state → overlay 路径,这是唯一的"按状态画 overlay"路径),:446、:456、:469、:474、:488、:493(用ov.overlayId查同一张表)代码:
原版(V-data
states.txt的 overlay1..4 列 +overlay.txt):aura_resistall_front+aura_resistall_back(overlay.txt #9/#10):20 帧,AnimRate 16,Trans 3,Radius 6,211,148,255;back 行 PreDraw=1curseamplifydamage(#128):24 帧,Height1-4 = 14/0/−14/−60,Radius 6,255,64,64frozenarmor/chillarmor/shiverarmor(#38-40):24 帧,Radius 13,200,200,255convictionfront(#120,Filenamenull,2 帧)+convictionback(#121,21 帧,AnimRate 6,PreDraw 1,Radius 0)energyshield(#86):ManaShieldBall 8 帧,AnimRate 8,Trans 5,Radius 0aura_might_front/back(#11/#12):15 帧,Xoffset 4,Radius 0;back PreDraw 1fanaticismfront/back(#116/#117):30 帧,AnimRate 6,Radius 0其他问题:
overlayArtMap里的小写别名去找图(overlays-meta.ts:23245-23652:"might"→MIGHT_FRONT、"salvation"→SALVATION_FRONT、"fanaticism"→FANATICISM_BACK……),所以成对的 front/back 只能画出其中一张。PreDraw(back 层应画在单位身后)虽已载入CANONICAL_113C_OVERLAYS.preDraw,但没有任何渲染代码使用;overlay 一律sortY = worldY + 1画在单位前面。Height1-4没有载入。ov.overlayId查这张"按 stateId 建键"的表,但 client-world 里的overlayId是一个自增计数器(client-world.ts:325、:446)。L519 也用overlayId === stateId去重,计数器值恰好等于某个 stateId 时会误伤。影响:
client-world.ts:807attachUnitOverlay(m, curseOverlay, false)),所以诅咒持续期间头顶那个循环图标,实际上只能靠这张自造表来显示。建议:删掉
OVERLAY_METADATA。改为stateId → states.txt.overlay1..4 → overlay.txt 行,全部参数取自该行(Frames、AnimRate、Trans、PreDraw、Xoffset/Yoffset、Height1-4 按单位高度档、Radius/InitRadius、RGB)。state 没有 overlay 就不画。overlay 的标识用 overlay.txt 行号,不要用计数器。已有 issue:—