Core/Objects: Keep current WMO info on position updates and use it in party member state packets
Port From (https://github.com/TrinityCore/TrinityCore/commit/d397b636d48f55b5e76d77c36ded33b2c8bbe295)
This commit is contained in:
@@ -120,6 +120,7 @@ namespace Game.Entities
|
|||||||
m_outdoors = data.outdoors;
|
m_outdoors = data.outdoors;
|
||||||
m_staticFloorZ = data.FloorZ;
|
m_staticFloorZ = data.FloorZ;
|
||||||
m_liquidStatus = data.LiquidStatus;
|
m_liquidStatus = data.LiquidStatus;
|
||||||
|
m_currentWmo = data.wmoLocation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void BuildCreateUpdateBlockForPlayer(UpdateData data, Player target)
|
public virtual void BuildCreateUpdateBlockForPlayer(UpdateData data, Player target)
|
||||||
@@ -1080,6 +1081,8 @@ namespace Game.Entities
|
|||||||
|
|
||||||
public ZLiquidStatus GetLiquidStatus() { return m_liquidStatus; }
|
public ZLiquidStatus GetLiquidStatus() { return m_liquidStatus; }
|
||||||
|
|
||||||
|
public WmoLocation GetCurrentWmo() { return m_currentWmo; }
|
||||||
|
|
||||||
public bool IsInWorldPvpZone()
|
public bool IsInWorldPvpZone()
|
||||||
{
|
{
|
||||||
switch (GetZoneId())
|
switch (GetZoneId())
|
||||||
@@ -3804,6 +3807,7 @@ namespace Game.Entities
|
|||||||
float m_staticFloorZ;
|
float m_staticFloorZ;
|
||||||
bool m_outdoors;
|
bool m_outdoors;
|
||||||
ZLiquidStatus m_liquidStatus;
|
ZLiquidStatus m_liquidStatus;
|
||||||
|
WmoLocation m_currentWmo;
|
||||||
|
|
||||||
// Event handler
|
// Event handler
|
||||||
public EventSystem m_Events = new();
|
public EventSystem m_Events = new();
|
||||||
|
|||||||
@@ -280,8 +280,13 @@ namespace Game.Networking.Packets
|
|||||||
MemberStats.SpecID = (ushort)player.GetPrimarySpecialization();
|
MemberStats.SpecID = (ushort)player.GetPrimarySpecialization();
|
||||||
MemberStats.PartyType[0] = player.m_playerData.PartyType[0];
|
MemberStats.PartyType[0] = player.m_playerData.PartyType[0];
|
||||||
MemberStats.PartyType[1] = player.m_playerData.PartyType[1];
|
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 vehicle = player.GetVehicle();
|
Vehicle vehicle = player.GetVehicle();
|
||||||
|
|||||||
Reference in New Issue
Block a user