diff options
author | Rat <gmstreetrat@gmail.com> | 2015-03-31 20:24:10 +0200 |
---|---|---|
committer | Rat <gmstreetrat@gmail.com> | 2015-03-31 20:24:10 +0200 |
commit | ca9781f94ea67dec6f07e347784490fa2dc1ce19 (patch) | |
tree | 0ced7fc8e28f4d9083e43c40f294294433907d43 | |
parent | e734146a6f813c2996c217bc4a0997fe165f604f (diff) |
Core/Handlers: prevent sending empty packet in npc text query if no BroadcastTextID is set in db, to prevent wrong client caching. writes error instead
-rw-r--r-- | src/server/game/Handlers/QueryHandler.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp index 2addf293986..6c79b1e9632 100644 --- a/src/server/game/Handlers/QueryHandler.cpp +++ b/src/server/game/Handlers/QueryHandler.cpp @@ -203,19 +203,23 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPackets::Query::QueryNPCText& p WorldPackets::Query::QueryNPCTextResponse response; response.TextID = packet.TextID; + bool hasText = false; if (gossip) { for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i) { response.Probabilities[i] = gossip->Options[i].Probability; response.BroadcastTextID[i] = gossip->Options[i].BroadcastTextID; + if (!hasText && gossip->Options[i].BroadcastTextID) + hasText = true; } response.Allow = true; } - - SendPacket(response.Write()); - + if (hasText) + SendPacket(response.Write()); + else + TC_LOG_ERROR("sql.sql", "HandleNpcTextQueryOpcode: no BroadcastTextID found for text %u in `npc_text table`", packet.TextID); TC_LOG_DEBUG("network", "WORLD: Sent SMSG_NPC_TEXT_UPDATE"); } |