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);
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user