mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Core/PacketIO: Fix SMSG_UI_MAP_QUEST_LINES_RESPONSE struct (TWW) (#30219)
This commit is contained in:
@@ -844,10 +844,21 @@ void WorldSession::HandleUiMapQuestLinesRequest(WorldPackets::Quest::UiMapQuestL
|
||||
if (!questLineQuests)
|
||||
continue;
|
||||
|
||||
bool isQuestLineCompleted = true;
|
||||
for (QuestLineXQuestEntry const* questLineQuest : *questLineQuests)
|
||||
{
|
||||
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questLineQuest->QuestID))
|
||||
{
|
||||
if (_player->CanTakeQuest(quest, false))
|
||||
response.QuestLineXQuestIDs.push_back(questLineQuest->ID);
|
||||
|
||||
if (isQuestLineCompleted && !_player->GetQuestRewardStatus(questLineQuest->QuestID))
|
||||
isQuestLineCompleted = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isQuestLineCompleted)
|
||||
response.QuestLineIDs.push_back(questLineId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -865,6 +865,7 @@ WorldPacket const* UiMapQuestLinesResponse::Write()
|
||||
_worldPacket << int32(UiMapID);
|
||||
_worldPacket << uint32(QuestLineXQuestIDs.size());
|
||||
_worldPacket << uint32(QuestIDs.size());
|
||||
_worldPacket << uint32(QuestLineIDs.size());
|
||||
|
||||
for (uint32 const& questLineQuestID : QuestLineXQuestIDs)
|
||||
_worldPacket << uint32(questLineQuestID);
|
||||
@@ -872,6 +873,9 @@ WorldPacket const* UiMapQuestLinesResponse::Write()
|
||||
for (uint32 const& questID : QuestIDs)
|
||||
_worldPacket << uint32(questID);
|
||||
|
||||
for (uint32 const& questLineID : QuestLineIDs)
|
||||
_worldPacket << uint32(questLineID);
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
|
||||
@@ -800,6 +800,7 @@ namespace WorldPackets
|
||||
int32 UiMapID = 0;
|
||||
std::vector<uint32> QuestLineXQuestIDs;
|
||||
std::vector<uint32> QuestIDs;
|
||||
std::vector<uint32> QuestLineIDs;
|
||||
};
|
||||
|
||||
class UiMapQuestLinesRequest final : public ClientPacket
|
||||
|
||||
Reference in New Issue
Block a user