docs: file #170 — remote creature chase+attack renders wrong vs retail
User retail side-by-side during R5-V2 visual gate: chasing+attacking monster glides, over-frequency, uniform attack anims (retail correct on same ACE → client-side). Decomposes into #159 (attack cmd numbering) + pending_motions loop + dead-reckon-vs-locomotion glide. NOT V2 (chase tracking works). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
7c5bc97c74
commit
64f83d7cf1
1 changed files with 41 additions and 0 deletions
|
|
@ -46,6 +46,47 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #170 — Remote creature chase+attack renders wrong vs retail (glide, over-frequency, uniform attack anims)
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** MEDIUM (visual — remote combat / aggro)
|
||||
**Filed:** 2026-07-03 (user retail side-by-side during the R5-V2 visual gate)
|
||||
**Component:** animation, remote entity, combat
|
||||
|
||||
**Description:** A monster chasing + attacking the player (aggro) renders wrong
|
||||
vs the retail client running against the SAME local ACE. User side-by-side:
|
||||
retail plays proper animations, positions the monster better, plays DIFFERENT
|
||||
attack animations (variety), and the attack-animation FREQUENCY is correct;
|
||||
acdream shows the creature "stuck in the attack animation, gliding after me."
|
||||
Because retail gets the identical ACE motion stream and renders it correctly,
|
||||
the divergence is CLIENT-side (acdream's UM/animation handling), **not** ACE.
|
||||
|
||||
Three distinct sub-divergences:
|
||||
1. **Wrong/uniform attack animations** → likely **#159** (CombatAnimationPlanner
|
||||
uses 2013-decomp command numbering, not ACE/DRW; the attacks
|
||||
`0x10000062/63/64` misclassify → wrong or same animation).
|
||||
2. **Over-frequency / stuck attack** — motion trace: ACE streams attack UMs
|
||||
(`mt=0x00 cmd=0x62/0x63/0x64 spd=0.97`) on top of the `mt=0x06` chase;
|
||||
acdream's `pending_motions` completes+re-queues in a tight MOTIONDONE loop
|
||||
(`pending=True` spam) → over-plays. R3/R4 pending_motions/MotionDone area.
|
||||
3. **Glide** — the creature's position moves (mt-6 moveto + UP dead-reckon) but
|
||||
no locomotion legs play (attacks override) → smooth slide. AP-80 / #160
|
||||
dead-reckon-vs-animation family.
|
||||
|
||||
**Evidence:** `ACDREAM_DUMP_MOTION` trace for guid 0x80000244 — `mt-0 stance 0x3C`
|
||||
→ `mt-6 chase spd 2.03` → stream of `mt-0` attacks `0x62/63/64 spd 0.97`;
|
||||
MOTIONDONE loop between `0x8000003C` (stance) and the dispatched motion.
|
||||
|
||||
**NOT V2/R5:** the voyeur target-tracking correctly makes the creature chase
|
||||
(the `mt-6` is proof); this is the animation/position layer.
|
||||
|
||||
**Where:** `MotionInterpreter`/`AnimationSequencer` attack-motion dispatch +
|
||||
`pending_motions`; `CombatAnimationPlanner` (#159); `ServerControlledLocomotion`
|
||||
+ remote dead-reckoning (glide).
|
||||
|
||||
**Acceptance:** side-by-side with retail — a chasing+attacking Mite Scamp shows
|
||||
correct attack-animation variety, correct frequency, and steps/runs (no glide).
|
||||
|
||||
## #169 — Cold-spawn "hole": world doesn't load / invisible player when spawning far from Holtburg
|
||||
|
||||
**Status:** DONE (`9b06a9b8`, 2026-07-03) — root confirmed live via a landblock-load
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue