[Parity][panels][S1][R] 任务日志:状态标签和说明文字是自造的,正文不跟随任务阶段 #659

Closed
opened 2026-10-02 11:42:52 +00:00 by troytt · 0 comments
Owner

1.13c 客户端保真度审计立项(基准快照:7bd1090 / main @ 77a20c7)

证据标记说明:V-data = 1.13c MPQ 数据表 (.txt / animdata.d2 / .tbl / pal.pl2);V-src = D2MOO 逆向源码;V-bin = 1.13c DLL 反汇编;K = 1.13c 公认行为。

来源审计项:panels#5 — [S1][R] 任务日志:状态标签和说明文字是自造的,正文不跟随任务阶段

  • 位置
    • src/client/ui/world-panels.ts:1541-1578(getQuestDisplayText)
    • :2642-2658(描述框、标题、后缀)
    • :2637-2639(选中描边)
    • :1529-1539(lookupQuestString:questTblLookup / questStringTableChain 没有任何地方赋值,所以恒为 undefined)
    • 数据:src/common/data/canonical-quest-data.ts。objectiveKey 恒为第一阶段(如 "qstsa1q11");completedKey 是 NPC 领赏台词(如 "A1Q1SuccessfulAkara")
  • 代码:'[Completed]' / '[Active]' / '[Locked]'、'[已完成]' / '[进行中]' / '[未开启]';未开启的正文是 'This quest has not begun yet. …' / '此任务尚未开启。…';后缀是 `\n[Reward: …]` / `\n[奖励: …]`、[Objective:] / [目标:];描述框是 fillRect(ox + 18, oy + 264, 284, 116) 加描边。
  • 原版(V-data,tbl)
    • 有现成的状态字符串:#3722 qsts "Quest Status"(任務狀況)、#3726 qstsComplete "Quest completed."(任務結束。)、#3728 qstsprevious、#3727 qstsother、#3729-3731 qstsThankYouComeAgain*、#3723 noactivequest、#3721 newquestlog "New Entry"。
    • 每个任务按阶段有描述:qstsa1q11 → 12 → 14(#3738 "Monsters remaining: " 后接计数)→ 15 "Return to Akara for a reward.";qstsa1q21..23 等。由任务标志决定显示哪个阶段。
    • 代码里的状态标签、未开启说明、Reward/Objective 后缀,tbl 里都没有。
  • 影响(正常游玩可见):任务日志里的文字全部和原版不同;进度描述也不对,比如已经到了"回去找阿卡拉领赏",还显示"找寻洞穴"。完成的任务显示 NPC 领赏台词,而不是"任務結束。"。
  • 建议:按任务标志选 qstsa{act}q{n}{stage} 阶段串;完成状态用 qstsComplete / qstsprevious;删除自造的标签、后缀和描述框。
  • 已有 issue:—
> **1.13c 客户端保真度审计立项**(基准快照:`7bd1090` / `main @ 77a20c7`) > 证据标记说明:`V-data` = 1.13c MPQ 数据表 (`.txt` / `animdata.d2` / `.tbl` / `pal.pl2`);`V-src` = D2MOO 逆向源码;`V-bin` = 1.13c DLL 反汇编;`K` = 1.13c 公认行为。 ### 来源审计项:`panels#5` — [S1][R] 任务日志:状态标签和说明文字是自造的,正文不跟随任务阶段 - **位置** - `src/client/ui/world-panels.ts:1541-1578`(`getQuestDisplayText`) - `:2642-2658`(描述框、标题、后缀) - `:2637-2639`(选中描边) - `:1529-1539`(`lookupQuestString`:`questTblLookup` / `questStringTableChain` 没有任何地方赋值,所以恒为 `undefined`) - 数据:`src/common/data/canonical-quest-data.ts`。`objectiveKey` 恒为第一阶段(如 "qstsa1q11");`completedKey` 是 NPC 领赏台词(如 "A1Q1SuccessfulAkara") - **代码**:`'[Completed]' / '[Active]' / '[Locked]'`、`'[已完成]' / '[进行中]' / '[未开启]'`;未开启的正文是 `'This quest has not begun yet. …' / '此任务尚未开启。…'`;后缀是 `` `\n[Reward: …]` / `\n[奖励: …]` ``、`[Objective:]` / `[目标:]`;描述框是 `fillRect(ox + 18, oy + 264, 284, 116)` 加描边。 - **原版**(V-data,tbl) - 有现成的状态字符串:#3722 qsts "Quest Status"(任務狀況)、#3726 qstsComplete "Quest completed."(任務結束。)、#3728 qstsprevious、#3727 qstsother、#3729-3731 qstsThankYouComeAgain*、#3723 noactivequest、#3721 newquestlog "New Entry"。 - 每个任务按阶段有描述:qstsa1q11 → 12 → 14(#3738 "Monsters remaining: " 后接计数)→ 15 "Return to Akara for a reward.";qstsa1q21..23 等。由任务标志决定显示哪个阶段。 - 代码里的状态标签、未开启说明、Reward/Objective 后缀,tbl 里都没有。 - **影响**(正常游玩可见):任务日志里的文字全部和原版不同;进度描述也不对,比如已经到了"回去找阿卡拉领赏",还显示"找寻洞穴"。完成的任务显示 NPC 领赏台词,而不是"任務結束。"。 - **建议**:按任务标志选 qstsa{act}q{n}{stage} 阶段串;完成状态用 qstsComplete / qstsprevious;删除自造的标签、后缀和描述框。 - **已有 issue**:—
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#659
No description provided.