Core/Misc: Don't log errors about npc_text probability if broadcast text was removed because it did not exist during loading

Port From (https://github.com/TrinityCore/TrinityCore/commit/ef4e307a494d8492d4a6bb4dacd4f00c27c8a1bc)
This commit is contained in:
hondacrx
2021-11-15 20:44:08 -05:00
parent ecf92ed8b9
commit 0968392d0d
+5 -2
View File
@@ -29,6 +29,7 @@ using Game.Misc;
using Game.Scripting; using Game.Scripting;
using Game.Spells; using Game.Spells;
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
@@ -2956,21 +2957,23 @@ namespace Game
npcText.Data[i].BroadcastTextID = result.Read<uint>(9 + i); npcText.Data[i].BroadcastTextID = result.Read<uint>(9 + i);
} }
BitSet erasedBroadcastTexts = new(SharedConst.MaxNpcTextOptions);
for (int i = 0; i < SharedConst.MaxNpcTextOptions; i++) for (int i = 0; i < SharedConst.MaxNpcTextOptions; i++)
{ {
if (npcText.Data[i].BroadcastTextID != 0) if (npcText.Data[i].BroadcastTextID != 0)
{ {
if (!CliDB.BroadcastTextStorage.ContainsKey(npcText.Data[i].BroadcastTextID)) if (!CliDB.BroadcastTextStorage.ContainsKey(npcText.Data[i].BroadcastTextID))
{ {
Log.outError(LogFilter.Sql, "NPCText (Id: {0}) has a non-existing or incompatible BroadcastText (ID: {1}, Index: {2})", textID, npcText.Data[i].BroadcastTextID, i); Log.outError(LogFilter.Sql, "NPCText (Id: {0}) has a non-existing BroadcastText (ID: {1}, Index: {2})", textID, npcText.Data[i].BroadcastTextID, i);
npcText.Data[i].BroadcastTextID = 0; npcText.Data[i].BroadcastTextID = 0;
erasedBroadcastTexts[i] = true;
} }
} }
} }
for (byte i = 0; i < SharedConst.MaxNpcTextOptions; i++) for (byte i = 0; i < SharedConst.MaxNpcTextOptions; i++)
{ {
if (npcText.Data[i].Probability > 0 && npcText.Data[i].BroadcastTextID == 0) if (npcText.Data[i].Probability > 0 && npcText.Data[i].BroadcastTextID == 0 && !erasedBroadcastTexts[i])
{ {
Log.outError(LogFilter.Sql, "NPCText (ID: {0}) has a probability (Index: {1}) set, but no BroadcastTextID to go with it", textID, i); Log.outError(LogFilter.Sql, "NPCText (ID: {0}) has a probability (Index: {1}) set, but no BroadcastTextID to go with it", textID, i);
npcText.Data[i].Probability = 0; npcText.Data[i].Probability = 0;