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:
@@ -810,12 +810,22 @@ namespace Game
|
|||||||
if (questLineQuests.Empty())
|
if (questLineQuests.Empty())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
bool isQuestLineCompleted = true;
|
||||||
foreach (var questLineQuest in questLineQuests)
|
foreach (var questLineQuest in questLineQuests)
|
||||||
{
|
{
|
||||||
Quest quest = Global.ObjectMgr.GetQuestTemplate(questLineQuest.QuestID);
|
Quest quest = Global.ObjectMgr.GetQuestTemplate(questLineQuest.QuestID);
|
||||||
if (quest != null && _player.CanTakeQuest(quest, false))
|
if (quest != null)
|
||||||
response.QuestLineXQuestIDs.Add(questLineQuest.Id);
|
{
|
||||||
|
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);
|
var quests = Global.ObjectMgr.GetUiMapQuestsList(uiMap.Id);
|
||||||
|
|||||||
@@ -960,6 +960,7 @@ namespace Game.Networking.Packets
|
|||||||
public uint UiMapID;
|
public uint UiMapID;
|
||||||
public List<uint> QuestLineXQuestIDs = new();
|
public List<uint> QuestLineXQuestIDs = new();
|
||||||
public List<uint> QuestIDs = new();
|
public List<uint> QuestIDs = new();
|
||||||
|
public List<uint> QuestLineIDs = new();
|
||||||
|
|
||||||
public UiMapQuestLinesResponse() : base(ServerOpcodes.UiMapQuestLinesResponse, ConnectionType.Instance) { }
|
public UiMapQuestLinesResponse() : base(ServerOpcodes.UiMapQuestLinesResponse, ConnectionType.Instance) { }
|
||||||
|
|
||||||
@@ -968,12 +969,16 @@ namespace Game.Networking.Packets
|
|||||||
_worldPacket.WriteUInt32(UiMapID);
|
_worldPacket.WriteUInt32(UiMapID);
|
||||||
_worldPacket.WriteInt32(QuestLineXQuestIDs.Count);
|
_worldPacket.WriteInt32(QuestLineXQuestIDs.Count);
|
||||||
_worldPacket.WriteInt32(QuestIDs.Count);
|
_worldPacket.WriteInt32(QuestIDs.Count);
|
||||||
|
_worldPacket.WriteInt32(QuestLineIDs.Count);
|
||||||
|
|
||||||
foreach (var questLineQuestID in QuestLineXQuestIDs)
|
foreach (var questLineQuestID in QuestLineXQuestIDs)
|
||||||
_worldPacket.WriteUInt32(questLineQuestID);
|
_worldPacket.WriteUInt32(questLineQuestID);
|
||||||
|
|
||||||
foreach (var questID in QuestIDs)
|
foreach (var questID in QuestIDs)
|
||||||
_worldPacket.WriteUInt32(questID);
|
_worldPacket.WriteUInt32(questID);
|
||||||
|
|
||||||
|
foreach (var questID in QuestLineIDs)
|
||||||
|
_worldPacket.WriteUInt32(questID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user