fix(B.5): make creature-pickup guard silent (retail-faithful)
The previous "Can't pick that up" toast wasn't retail behavior either — retail silently dropped the malformed pickup with no client-side feedback. Drop the toast, keep the guard. The user learns by trying again (which IS the retail UX). Filter still prevents the malformed packet from reaching ACE, so the WeenieError 0x0029 + NPC-emote chain that originally surfaced this bug stays suppressed.
This commit is contained in:
parent
ab7c04fb4f
commit
e55ad48ade
1 changed files with 10 additions and 11 deletions
|
|
@ -8897,19 +8897,18 @@ public sealed class GameWindow : IDisposable
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// B.5 polish (2026-05-14): block client-side when the selected
|
// B.5 polish (2026-05-14): silently block client-side when the
|
||||||
// entity is a creature/NPC — ACE's HandleActionPutItemInContainer
|
// selected entity is a creature/NPC. ACE's
|
||||||
// would otherwise reject with WeenieError.Stuck (0x0029, "You
|
// HandleActionPutItemInContainer would otherwise reject with
|
||||||
// cannot pick that up!") AND trigger the NPC's emote chain,
|
// WeenieError.Stuck (0x0029, "You cannot pick that up!") AND
|
||||||
// which surfaces as "the NPC talks to me when I press F" if the
|
// trigger the NPC's emote chain, which surfaces as "the NPC
|
||||||
// user single-clicked an NPC last before the F press. Use
|
// talks to me when I press F" if the user single-clicked an
|
||||||
// (double-click) is the right action for NPCs; F is only for
|
// NPC last before the F press. Use (double-click) is the right
|
||||||
// ground items.
|
// action for NPCs; F is only for ground items. Silent rejection
|
||||||
|
// matches retail behavior — retail showed no client-side
|
||||||
|
// feedback for this case either.
|
||||||
if (IsLiveCreatureTarget(itemGuid))
|
if (IsLiveCreatureTarget(itemGuid))
|
||||||
{
|
|
||||||
_debugVm?.AddToast("Can't pick that up");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
var seq = _liveSession.NextGameActionSequence();
|
var seq = _liveSession.NextGameActionSequence();
|
||||||
var body = AcDream.Core.Net.Messages.InteractRequests.BuildPickUp(
|
var body = AcDream.Core.Net.Messages.InteractRequests.BuildPickUp(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue