From 46d9b510b7d7c0c4a65daec005665aafa34287d7 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 19 May 2020 13:56:05 -0400 Subject: [PATCH] Core/Quests: implemented MSG_QUEST_PUSH_RESULT notifications Port From (https://github.com/TrinityCore/TrinityCore/commit/3eee76b1c63469152a9e531da4f973d0e0471ac6) --- Source/Game/Entities/Player/Player.Quest.cs | 6 +++--- Source/Game/Handlers/QuestHandler.cs | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 4a8e98f76..5b5a642e7 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -1736,12 +1736,12 @@ namespace Game.Entities var questStatusData = m_QuestStatus.LookupByKey(quest_id); if (questStatusData != null) { - if (questStatusData.Status != QuestStatus.Incomplete) - return false; - // in pool and not currently available (wintergrasp weekly, dalaran weekly) - can't share if (Global.PoolMgr.IsPartOfAPool(quest_id) != 0 && !Global.PoolMgr.IsSpawnedObject(quest_id)) + { + SendPushToPartyResponse(this, QuestPushReason.NotDaily); return false; + } return true; } diff --git a/Source/Game/Handlers/QuestHandler.cs b/Source/Game/Handlers/QuestHandler.cs index 1cff7410f..49d1cc73c 100644 --- a/Source/Game/Handlers/QuestHandler.cs +++ b/Source/Game/Handlers/QuestHandler.cs @@ -560,7 +560,11 @@ namespace Game Group group = sender.GetGroup(); if (!group) + { + sender.SendPushToPartyResponse(sender, QuestPushReason.NotInParty); return; + } + for (GroupReference refe = group.GetFirstMember(); refe != null; refe = refe.Next()) { Player receiver = refe.GetSource(); @@ -580,6 +584,12 @@ namespace Game continue; } + if (!receiver.SatisfyQuestDay(quest, false)) + { + sender.SendPushToPartyResponse(receiver, QuestPushReason.DifferentServerDaily); + continue; + } + if (!receiver.CanTakeQuest(quest, false)) { sender.SendPushToPartyResponse(receiver, QuestPushReason.Invalid);