From 3c5399f4b40d908891167e1fbc6f2bb332aa4e17 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 22 Jun 2026 14:28:40 +0200 Subject: [PATCH] =?UTF-8?q?feat(D.2b):=20WorldSession.SendUse=20=E2=80=94?= =?UTF-8?q?=20thin=20Use=200x0036=20wire=20wrapper=20for=20container-open?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- src/AcDream.Core.Net/WorldSession.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/AcDream.Core.Net/WorldSession.cs b/src/AcDream.Core.Net/WorldSession.cs index a904140c..47785496 100644 --- a/src/AcDream.Core.Net/WorldSession.cs +++ b/src/AcDream.Core.Net/WorldSession.cs @@ -1215,6 +1215,15 @@ public sealed class WorldSession : IDisposable SendGameAction(InventoryActions.BuildNoLongerViewingContents(seq, containerGuid)); } + /// Send Use (0x0036) — open/use an object by guid (e.g. open a container in your + /// inventory). A direct wire send: opening a pack you already hold needs no autowalk, unlike + /// GameWindow.SendUse (the world-interaction path). Retail: CM_Physics::Event_Use. + public void SendUse(uint targetGuid) + { + uint seq = NextGameActionSequence(); + SendGameAction(InteractRequests.BuildUse(seq, targetGuid)); + } + /// Send retail QueryHealth (0x01BF). Server replies UpdateHealth (0x01C0). /// /// Retail anchor: CM_Combat::Event_QueryHealth / gmToolbarUI::HandleSelectionChanged:198635