From 859109f472d06f46057ddd9b3dabc3b39a8dc4b1 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 6 May 2020 15:19:17 -0400 Subject: [PATCH] Core/Scripts: Fix a logic fail that overriden the script of an entity that changed entry Port From (https://github.com/TrinityCore/TrinityCore/commit/649009552065940ab0f03d905b945f1a16d603bb) --- Source/Game/Entities/Creature/Creature.cs | 6 +++++- Source/Game/Entities/GameObject/GameObject.cs | 6 +++++- Source/Game/Globals/ObjectManager.cs | 4 ---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index 5218d9493..cfaaca192 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -2418,7 +2418,11 @@ namespace Game.Entities { CreatureData creatureData = GetCreatureData(); if (creatureData != null) - return creatureData.ScriptId; + { + uint scriptId = creatureData.ScriptId; + if (scriptId != 0) + return scriptId; + } return Global.ObjectMgr.GetCreatureTemplate(GetEntry()) != null ? Global.ObjectMgr.GetCreatureTemplate(GetEntry()).ScriptID : 0; } diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index ed9abf671..db7d962c9 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -2080,7 +2080,11 @@ namespace Game.Entities { GameObjectData gameObjectData = GetGoData(); if (gameObjectData != null) - return gameObjectData.ScriptId; + { + uint scriptId = gameObjectData.ScriptId; + if (scriptId != 0) + return scriptId; + } return GetGoInfo().ScriptId; } diff --git a/Source/Game/Globals/ObjectManager.cs b/Source/Game/Globals/ObjectManager.cs index 78ab969ac..7d9b1aa61 100644 --- a/Source/Game/Globals/ObjectManager.cs +++ b/Source/Game/Globals/ObjectManager.cs @@ -3325,8 +3325,6 @@ namespace Game data.phaseGroup = result.Read(25); data.terrainSwapMap = result.Read(26); data.ScriptId = GetScriptId(result.Read(27)); - if (data.ScriptId == 0) - data.ScriptId = cInfo.ScriptID; var mapEntry = CliDB.MapStorage.LookupByKey(data.mapid); if (mapEntry == null) @@ -4121,8 +4119,6 @@ namespace Game } data.ScriptId = GetScriptId(result.Read(21)); - if (data.ScriptId == 0) - data.ScriptId = gInfo.ScriptId; if (Math.Abs(data.orientation) > 2 * MathFunctions.PI) {