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)
This commit is contained in:
hondacrx
2020-05-06 15:19:17 -04:00
parent 96294d3af5
commit 859109f472
3 changed files with 10 additions and 6 deletions
+5 -1
View File
@@ -2418,7 +2418,11 @@ namespace Game.Entities
{ {
CreatureData creatureData = GetCreatureData(); CreatureData creatureData = GetCreatureData();
if (creatureData != null) 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; return Global.ObjectMgr.GetCreatureTemplate(GetEntry()) != null ? Global.ObjectMgr.GetCreatureTemplate(GetEntry()).ScriptID : 0;
} }
@@ -2080,7 +2080,11 @@ namespace Game.Entities
{ {
GameObjectData gameObjectData = GetGoData(); GameObjectData gameObjectData = GetGoData();
if (gameObjectData != null) if (gameObjectData != null)
return gameObjectData.ScriptId; {
uint scriptId = gameObjectData.ScriptId;
if (scriptId != 0)
return scriptId;
}
return GetGoInfo().ScriptId; return GetGoInfo().ScriptId;
} }
-4
View File
@@ -3325,8 +3325,6 @@ namespace Game
data.phaseGroup = result.Read<uint>(25); data.phaseGroup = result.Read<uint>(25);
data.terrainSwapMap = result.Read<int>(26); data.terrainSwapMap = result.Read<int>(26);
data.ScriptId = GetScriptId(result.Read<string>(27)); data.ScriptId = GetScriptId(result.Read<string>(27));
if (data.ScriptId == 0)
data.ScriptId = cInfo.ScriptID;
var mapEntry = CliDB.MapStorage.LookupByKey(data.mapid); var mapEntry = CliDB.MapStorage.LookupByKey(data.mapid);
if (mapEntry == null) if (mapEntry == null)
@@ -4121,8 +4119,6 @@ namespace Game
} }
data.ScriptId = GetScriptId(result.Read<string>(21)); data.ScriptId = GetScriptId(result.Read<string>(21));
if (data.ScriptId == 0)
data.ScriptId = gInfo.ScriptId;
if (Math.Abs(data.orientation) > 2 * MathFunctions.PI) if (Math.Abs(data.orientation) > 2 * MathFunctions.PI)
{ {