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:
Erik 2026-05-14 17:09:45 +02:00
parent ab7c04fb4f
commit e55ad48ade

View file

@ -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(