diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h index 7f563e831..2f0c82aa4 100644 --- a/src/game/DBCStructure.h +++ b/src/game/DBCStructure.h @@ -1131,6 +1131,8 @@ struct MapDifficultyEntry char* areaTriggerText[16]; // 3-18 text showed when transfer to map failed (missing requirements) uint32 textFlags; // 19 uint32 resetTime; // 20 + uint32 maxPlayers; // 21 + char* difficultyString; // 22 }; struct MovieEntry diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index ab229d9f1..7a221a59f 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -545,13 +545,13 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) WorldPacket data( SMSG_QUEST_QUERY_RESPONSE, 100 ); // guess size - data << uint32(pQuest->GetQuestId()); + data << uint32(pQuest->GetQuestId()); // quest id data << uint32(pQuest->GetQuestMethod()); // Accepted values: 0, 1 or 2. 0==IsAutoComplete() (skip objectives/details) data << uint32(pQuest->GetQuestLevel()); // may be 0, static data, in other cases must be used dynamic level: Player::GetQuestLevel data << uint32(pQuest->GetZoneOrSort()); // zone or sort to display in quest log - data << uint32(pQuest->GetType()); - data << uint32(pQuest->GetSuggestedPlayers()); + data << uint32(pQuest->GetType()); // quest type + data << uint32(pQuest->GetSuggestedPlayers()); // suggested players count data << uint32(pQuest->GetRepObjectiveFaction()); // shown in quest log as part of quest objective data << uint32(pQuest->GetRepObjectiveValue()); // shown in quest log as part of quest objective @@ -564,7 +564,7 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) if (pQuest->HasFlag(QUEST_FLAGS_HIDDEN_REWARDS)) data << uint32(0); // Hide money rewarded else - data << uint32(pQuest->GetRewOrReqMoney()); + data << uint32(pQuest->GetRewOrReqMoney()); // reward money (below max lvl) data << uint32(pQuest->GetRewMoneyMaxLevel()); // used in XP calculation at client data << uint32(pQuest->GetRewSpell()); // reward spell, this spell will display (icon) (casted if RewSpellCast==0) @@ -572,8 +572,8 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) // rewarded honor points data << uint32(MaNGOS::Honor::hk_honor_at_level(pSession->GetPlayer()->getLevel(), pQuest->GetRewHonorableKills())); - data << uint32(pQuest->GetSrcItemId()); - data << uint32(pQuest->GetFlags() & 0xFFFF); + data << uint32(pQuest->GetSrcItemId()); // source item id + data << uint32(pQuest->GetFlags() & 0xFFFF); // quest flags data << uint32(pQuest->GetCharTitleId()); // CharTitleId, new 2.4.0, player gets this title (id from CharTitles) data << uint32(pQuest->GetPlayersSlain()); // players slain data << uint32(pQuest->GetBonusTalents()); // bonus talents @@ -634,6 +634,8 @@ void PlayerMenu::SendQuestQueryResponse( Quest const *pQuest ) data << uint32(0); // TODO: 5 item objective data << uint32(0); + data << uint32(0); // TODO: 6 item objective + data << uint32(0); for (iI = 0; iI < QUEST_OBJECTIVES_COUNT; ++iI) data << ObjectiveText[iI]; diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index 041e81b5d..e7ae81462 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -150,7 +150,8 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data ) { uint32 entry; recv_data >> entry; - recv_data.read_skip(); // guid + uint64 guid; + recv_data >> guid; CreatureInfo const *ci = objmgr.GetCreatureTemplate(entry); if (ci) @@ -201,9 +202,6 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data ) } else { - uint64 guid; - recv_data >> guid; - sLog.outDebug("WORLD: CMSG_CREATURE_QUERY - NO CREATURE INFO! (GUID: %u, ENTRY: %u)", GUID_LOPART(guid), entry); WorldPacket data( SMSG_CREATURE_QUERY_RESPONSE, 4 ); @@ -218,7 +216,8 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data ) { uint32 entryID; recv_data >> entryID; - recv_data.read_skip(); // guid + uint64 guid; + recv_data >> guid; const GameObjectInfo *info = objmgr.GetGameObjectInfo(entryID); if(info) @@ -262,9 +261,6 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data ) } else { - uint64 guid; - recv_data >> guid; - sLog.outDebug( "WORLD: CMSG_GAMEOBJECT_QUERY - Missing gameobject info for (GUID: %u, ENTRY: %u)", GUID_LOPART(guid), entryID ); WorldPacket data ( SMSG_GAMEOBJECT_QUERY_RESPONSE, 4 );