Core/Quests: implemented MSG_QUEST_PUSH_RESULT notifications

Port From (https://github.com/TrinityCore/TrinityCore/commit/3eee76b1c63469152a9e531da4f973d0e0471ac6)
This commit is contained in:
hondacrx
2020-05-19 13:56:05 -04:00
parent 6e9d62c3ea
commit 46d9b510b7
2 changed files with 13 additions and 3 deletions
+3 -3
View File
@@ -1736,12 +1736,12 @@ namespace Game.Entities
var questStatusData = m_QuestStatus.LookupByKey(quest_id); var questStatusData = m_QuestStatus.LookupByKey(quest_id);
if (questStatusData != null) if (questStatusData != null)
{ {
if (questStatusData.Status != QuestStatus.Incomplete)
return false;
// in pool and not currently available (wintergrasp weekly, dalaran weekly) - can't share // in pool and not currently available (wintergrasp weekly, dalaran weekly) - can't share
if (Global.PoolMgr.IsPartOfAPool<Quest>(quest_id) != 0 && !Global.PoolMgr.IsSpawnedObject<Quest>(quest_id)) if (Global.PoolMgr.IsPartOfAPool<Quest>(quest_id) != 0 && !Global.PoolMgr.IsSpawnedObject<Quest>(quest_id))
{
SendPushToPartyResponse(this, QuestPushReason.NotDaily);
return false; return false;
}
return true; return true;
} }
+10
View File
@@ -560,7 +560,11 @@ namespace Game
Group group = sender.GetGroup(); Group group = sender.GetGroup();
if (!group) if (!group)
{
sender.SendPushToPartyResponse(sender, QuestPushReason.NotInParty);
return; return;
}
for (GroupReference refe = group.GetFirstMember(); refe != null; refe = refe.Next()) for (GroupReference refe = group.GetFirstMember(); refe != null; refe = refe.Next())
{ {
Player receiver = refe.GetSource(); Player receiver = refe.GetSource();
@@ -580,6 +584,12 @@ namespace Game
continue; continue;
} }
if (!receiver.SatisfyQuestDay(quest, false))
{
sender.SendPushToPartyResponse(receiver, QuestPushReason.DifferentServerDaily);
continue;
}
if (!receiver.CanTakeQuest(quest, false)) if (!receiver.CanTakeQuest(quest, false))
{ {
sender.SendPushToPartyResponse(receiver, QuestPushReason.Invalid); sender.SendPushToPartyResponse(receiver, QuestPushReason.Invalid);