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);