Core/PacketIO: Fix SMSG_UI_MAP_QUEST_LINES_RESPONSE struct (TWW)

Port From (https://github.com/TrinityCore/TrinityCore/commit/19a0e885a63a7d07a6edd6c1b14ba91f87141ffd)
This commit is contained in:
Hondacrx
2024-11-10 13:59:19 -05:00
parent e59de27d66
commit a60dc0bd9e
2 changed files with 17 additions and 2 deletions
+12 -2
View File
@@ -810,12 +810,22 @@ namespace Game
if (questLineQuests.Empty())
continue;
bool isQuestLineCompleted = true;
foreach (var questLineQuest in questLineQuests)
{
Quest quest = Global.ObjectMgr.GetQuestTemplate(questLineQuest.QuestID);
if (quest != null && _player.CanTakeQuest(quest, false))
response.QuestLineXQuestIDs.Add(questLineQuest.Id);
if (quest != null)
{
if (_player.CanTakeQuest(quest, false))
response.QuestLineXQuestIDs.Add(questLineQuest.Id);
if (isQuestLineCompleted && !_player.GetQuestRewardStatus(questLineQuest.QuestID))
isQuestLineCompleted = false;
}
}
if (!isQuestLineCompleted)
response.QuestLineIDs.Add(questLineId);
}
var quests = Global.ObjectMgr.GetUiMapQuestsList(uiMap.Id);
@@ -960,6 +960,7 @@ namespace Game.Networking.Packets
public uint UiMapID;
public List<uint> QuestLineXQuestIDs = new();
public List<uint> QuestIDs = new();
public List<uint> QuestLineIDs = new();
public UiMapQuestLinesResponse() : base(ServerOpcodes.UiMapQuestLinesResponse, ConnectionType.Instance) { }
@@ -968,12 +969,16 @@ namespace Game.Networking.Packets
_worldPacket.WriteUInt32(UiMapID);
_worldPacket.WriteInt32(QuestLineXQuestIDs.Count);
_worldPacket.WriteInt32(QuestIDs.Count);
_worldPacket.WriteInt32(QuestLineIDs.Count);
foreach (var questLineQuestID in QuestLineXQuestIDs)
_worldPacket.WriteUInt32(questLineQuestID);
foreach (var questID in QuestIDs)
_worldPacket.WriteUInt32(questID);
foreach (var questID in QuestLineIDs)
_worldPacket.WriteUInt32(questID);
}
}