[Parity][net-world][S1][R] 0x0D 被解成"停止移动",丢掉了 mode 代码:其他玩家死亡、受击、格挡全部看不到,自己的 DT 也永远不播(#548 只修了一半) #567
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?
来源审计项:
net-world#6— [S1][R] F6 0x0D 被解成"停止移动",丢掉了 mode 代码:其他玩家死亡、受击、格挡全部看不到,自己的 DT 也永远不播(#548 只修了一半)src/netproto/d2gs/s2c/movement.ts:41-59(byte 6 的 mode 代码和 byte 12 的生命百分比都直接丢弃,输出UnitMove mode:'stop');src/client/session/online-session.ts:1597-1598(selfMode = isSelfDead ? (selfUnit?.mode === 0 ? 0 : 17) : ...);src/client/world/client-world.ts:1848、1947(把 PlrMode 16 = S4 当成死亡态)PlrMsg.cpp:85-107的stru_6FD30708(按 PlrMode 下标):DT → 0x0D 代码 0x08;GH → 0x0D 代码 0x06;BL → 0x0D 代码 0x12;DD → 0x0D 代码 0x09;NU/TN → 0x0D 代码 0x07。sub_6FC82010(PlrMsg.cpp:172-176,GH/BL/DD)和sub_6FC820C0(178-191,DT)对所有客户端都发,包括本人;sub_6FC821C0(NU/TN,193-200)不发给本人。包结构见D2PacketDef.h:653:byte 0x0C 是UNITS_GetCurrentLifePercentage(玩家为 0..100)(V-src)。plrmode.txt#16 = S4(V-data)。isSelfDead=false。UnitMode{code→PlrMode 映射, hitClass, lifePct(0..100)};客户端按 DT → DD 播放;死亡判定只认 0/17,去掉 16。