feat(chat): route retail lifestone commands
Separate retail client actions, ACE server commands, and ordinary chat at the shared router. Port lifestone/lif/ls from the named retail registry through a typed App controller to game action 0x0063, keep unknown verbs on ACE Talk, and cover both UI backends plus exact outbound bytes. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
5090aa7217
commit
5a45a7ac7f
19 changed files with 604 additions and 78 deletions
|
|
@ -46,6 +46,43 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #213 — Retail client commands were sent to ACE as chat text
|
||||
|
||||
**Status:** IN-PROGRESS — implementation complete 2026-07-13, pending live gate
|
||||
**Severity:** MEDIUM
|
||||
**Component:** retained UI / chat commands / net
|
||||
|
||||
**Description:** Retail chat-bar commands such as `/ls` were treated as unknown
|
||||
ACE commands. The client rewrote `/ls` to `@ls` and sent it through Talk, so ACE
|
||||
reported an unknown command instead of recalling the character.
|
||||
|
||||
**Root cause:** The shared chat router had only two outcomes: local
|
||||
presentation commands and `SendChatCmd`. It therefore conflated retail commands
|
||||
that send typed game actions with ACE administrator commands that are consumed
|
||||
as Talk text.
|
||||
|
||||
**Resolution:** Added an immutable named-retail client-command catalog and
|
||||
three explicit routes: typed retail client action, ACE server command, and
|
||||
ordinary chat. `/lifestone`, `/lif`, and `/ls` now publish
|
||||
`ExecuteClientCommandCmd`; the App-layer `ClientCommandController` invokes
|
||||
`WorldSession.SendTeleportToLifestone`, which sends retail game action `0x0063`.
|
||||
Unknown `/` commands publish `SendServerCommandCmd` in canonical `@` form, so
|
||||
commands such as `/ci` continue to reach ACE. Both chat backends use the same
|
||||
router.
|
||||
|
||||
**Research:**
|
||||
`docs/research/2026-07-13-retail-client-command-routing-pseudocode.md`;
|
||||
`ClientCommunicationSystem::OnChatCommand @ 0x00581320`;
|
||||
`ClientCommunicationSystem::DoLifestone @ 0x0056FC70`;
|
||||
`CM_Character::Event_TeleToLifestone @ 0x006A1B90`.
|
||||
|
||||
**Acceptance:** In the connected Release client, `/ls`, `/lif`, and
|
||||
`/lifestone` begin recall to the bound lifestone without appearing as speech or
|
||||
an ACE unknown-command error. `/ls now` shows local usage and sends nothing.
|
||||
An ACE command such as `/ci 629 1` still works.
|
||||
|
||||
---
|
||||
|
||||
## #212 — Toolbar shortcut numbers turn gray in physical combat
|
||||
|
||||
**Status:** IN-PROGRESS — implementation complete 2026-07-13, pending user gate
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue