From 7060f728a31a1c3333e44f8d61598175cf9e31ba Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sat, 22 Aug 2020 15:30:16 -0400 Subject: [PATCH] Core/WorldObject: Properly initialize position data for all types when initially creating them. Fixes some issues with PvP objectives not having the correct area ID set on initialization. Port From (https://github.com/TrinityCore/TrinityCore/commit/e6be53d1417e733f0916ff305960cfac3e2ca551) --- Source/Game/Entities/Creature/Creature.cs | 1 + Source/Game/Entities/GameObject/GameObject.cs | 2 ++ Source/Game/Entities/Player/Player.DB.cs | 1 + Source/Game/Entities/Player/Player.cs | 1 + 4 files changed, 5 insertions(+) diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index 1783a4364..ff9e4bf63 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -774,6 +774,7 @@ namespace Game.Entities Log.outError(LogFilter.Unit, "Creature.Create: given coordinates for creature (guidlow {0}, entry {1}) are not valid (X: {2}, Y: {3}, Z: {4}, O: {5})", guidlow, entry, x, y, z, ang); return false; } + UpdatePositionData(); // Allow players to see those units while dead, do it here (mayby altered by addon auras) if (cinfo.TypeFlags.HasAnyFlag(CreatureTypeFlags.GhostVisible)) diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index 3a5624ec5..0e892bb24 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -194,6 +194,8 @@ namespace Game.Entities return false; } + UpdatePositionData(); + SetZoneScript(); if (m_zoneScript != null) { diff --git a/Source/Game/Entities/Player/Player.DB.cs b/Source/Game/Entities/Player/Player.DB.cs index 31f2496ae..181d2a9dc 100644 --- a/Source/Game/Entities/Player/Player.DB.cs +++ b/Source/Game/Entities/Player/Player.DB.cs @@ -2841,6 +2841,7 @@ namespace Game.Entities } SetMap(map); + UpdatePositionData(); // now that map position is determined, check instance validity if (!CheckInstanceValidity(true) && !IsInstanceLoginGameMasterException()) diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 582db8044..7d235a218 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -192,6 +192,7 @@ namespace Game.Entities } SetMap(Global.MapMgr.CreateMap(info.MapId, this)); + UpdatePositionData(); PowerType powertype = cEntry.DisplayPower;