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);
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>(quest_id) != 0 && !Global.PoolMgr.IsSpawnedObject<Quest>(quest_id))
{
SendPushToPartyResponse(this, QuestPushReason.NotDaily);
return false;
}
return true;
}
+10
View File
@@ -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);