diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index cdd550a98f2..fa52653811f 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5293,14 +5293,8 @@ void ObjectMgr::LoadNPCText() uint32 oldMSTime = getMSTime(); QueryResult result = WorldDatabase.Query("SELECT ID, " - "BroadcastTextID0, Probability0, " - "BroadcastTextID1, Probability1, " - "BroadcastTextID2, Probability2, " - "BroadcastTextID3, Probability3, " - "BroadcastTextID4, Probability4, " - "BroadcastTextID5, Probability5, " - "BroadcastTextID6, Probability6, " - "BroadcastTextID7, Probability7" + "Probability0, Probability1, Probability2, Probability3, Probability4, Probability5, Probability6, Probability7, " + "BroadcastTextID0, BroadcastTextID1, BroadcastTextID2, BroadcastTextID3, BroadcastTextID4, BroadcastTextID5, BroadcastTextID6, BroadcastTextID7" " FROM npc_text"); if (!result) { @@ -5325,27 +5319,30 @@ void ObjectMgr::LoadNPCText() for (uint8 i = 0; i < MAX_NPC_TEXT_OPTIONS; ++i) { - npcText.Data[i].BroadcastTextID = fields[1 + i].GetUInt32(); - npcText.Data[i].Probability = fields[1 + i * 2].GetFloat(); + npcText.Data[i].Probability = fields[1 + i].GetFloat(); + npcText.Data[i].BroadcastTextID = fields[9 + i].GetUInt32(); } - bool isValid = false; for (uint8 i = 0; i < MAX_NPC_TEXT_OPTIONS; i++) { if (npcText.Data[i].BroadcastTextID) { if (!sBroadcastTextStore.LookupEntry(npcText.Data[i].BroadcastTextID)) { - TC_LOG_ERROR("sql.sql", "NpcText (Id: %u) in table `npc_text` has non-existing or incompatible Index: %u BroadcastTextID %u.", textID, i, npcText.Data[i].BroadcastTextID); + TC_LOG_ERROR("sql.sql", "NPCText (ID: %u) has a non-existing or incompatible BroadcastText (ID: %u, Index: %u)", textID, npcText.Data[i].BroadcastTextID, i); npcText.Data[i].BroadcastTextID = 0; } - else - isValid = true; } } - if (!isValid) - TC_LOG_ERROR("sql.sql", "NpcText (Id: %u) in table `npc_text` is invalid", textID); + for (uint8 i = 0; i < MAX_NPC_TEXT_OPTIONS; i++) + { + if (npcText.Data[i].Probability > 0 && npcText.Data[i].BroadcastTextID == 0) + { + TC_LOG_ERROR("sql.sql", "NPCText (ID: %u) has a probability (Index: %u) set, but no BroadcastTextID to go with it", textID, i); + npcText.Data[i].Probability = 0; + } + } } while (result->NextRow()); |
