diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index 9e6e6f9a9..10a4d71f6 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -120,6 +120,7 @@ namespace Game.Entities m_outdoors = data.outdoors; m_staticFloorZ = data.FloorZ; m_liquidStatus = data.LiquidStatus; + m_currentWmo = data.wmoLocation; } public virtual void BuildCreateUpdateBlockForPlayer(UpdateData data, Player target) @@ -1080,6 +1081,8 @@ namespace Game.Entities public ZLiquidStatus GetLiquidStatus() { return m_liquidStatus; } + public WmoLocation GetCurrentWmo() { return m_currentWmo; } + public bool IsInWorldPvpZone() { switch (GetZoneId()) @@ -3804,6 +3807,7 @@ namespace Game.Entities float m_staticFloorZ; bool m_outdoors; ZLiquidStatus m_liquidStatus; + WmoLocation m_currentWmo; // Event handler public EventSystem m_Events = new(); diff --git a/Source/Game/Networking/Packets/PartyPackets.cs b/Source/Game/Networking/Packets/PartyPackets.cs index 0af922306..8489c2f20 100644 --- a/Source/Game/Networking/Packets/PartyPackets.cs +++ b/Source/Game/Networking/Packets/PartyPackets.cs @@ -280,8 +280,13 @@ namespace Game.Networking.Packets MemberStats.SpecID = (ushort)player.GetPrimarySpecialization(); MemberStats.PartyType[0] = player.m_playerData.PartyType[0]; MemberStats.PartyType[1] = player.m_playerData.PartyType[1]; - MemberStats.WmoGroupID = 0; - MemberStats.WmoDoodadPlacementID = 0; + + var wmoLocation = player.GetCurrentWmo(); + if (wmoLocation != null) + { + MemberStats.WmoGroupID = (ushort)wmoLocation.GroupId; + MemberStats.WmoDoodadPlacementID = wmoLocation.UniqueId; + } // Vehicle Vehicle vehicle = player.GetVehicle();