Core/Quests: implemented MSG_QUEST_PUSH_RESULT notifications
Port From (https://github.com/TrinityCore/TrinityCore/commit/3eee76b1c63469152a9e531da4f973d0e0471ac6)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user