Core/Quests: Don't send update of already completed CriteriaTree objectives to the client when accepting quests
Port From (https://github.com/TrinityCore/TrinityCore/commit/6ac0f7bd1c4260cc7258f23a2f69a38e5ee7606b)
This commit is contained in:
@@ -702,11 +702,6 @@ namespace Game.Entities
|
||||
{
|
||||
AddQuest(quest, questGiver);
|
||||
|
||||
foreach (QuestObjective obj in quest.Objectives)
|
||||
if (obj.Type == QuestObjectiveType.CriteriaTree)
|
||||
if (m_questObjectiveCriteriaMgr.HasCompletedObjective(obj))
|
||||
KillCreditCriteriaTreeObjective(obj);
|
||||
|
||||
if (CanCompleteQuest(quest.Id))
|
||||
CompleteQuest(quest.Id);
|
||||
|
||||
@@ -2229,22 +2224,27 @@ namespace Game.Entities
|
||||
public void AdjustQuestObjectiveProgress(Quest quest)
|
||||
{
|
||||
// adjust progress of quest objectives that rely on external counters, like items
|
||||
if (quest.HasQuestObjectiveType(QuestObjectiveType.Item))
|
||||
foreach (QuestObjective obj in quest.Objectives)
|
||||
{
|
||||
foreach (QuestObjective obj in quest.Objectives)
|
||||
switch (obj.Type)
|
||||
{
|
||||
if (obj.Type == QuestObjectiveType.Item && !obj.Flags2.HasFlag(QuestObjectiveFlags2.QuestBoundItem))
|
||||
{
|
||||
uint reqItemCount = (uint)obj.Amount;
|
||||
uint curItemCount = GetItemCount((uint)obj.ObjectID, true);
|
||||
SetQuestObjectiveData(obj, (int)Math.Min(curItemCount, reqItemCount));
|
||||
}
|
||||
else if (obj.Type == QuestObjectiveType.HaveCurrency)
|
||||
{
|
||||
case QuestObjectiveType.Item:
|
||||
if (!obj.Flags2.HasFlag(QuestObjectiveFlags2.QuestBoundItem))
|
||||
{
|
||||
uint reqItemCount = (uint)obj.Amount;
|
||||
uint curItemCount = GetItemCount((uint)obj.ObjectID, true);
|
||||
SetQuestObjectiveData(obj, (int)Math.Min(curItemCount, reqItemCount));
|
||||
}
|
||||
break;
|
||||
case QuestObjectiveType.Currency:
|
||||
uint reqCurrencyCount = (uint)obj.Amount;
|
||||
uint curCurrencyCount = GetCurrencyQuantity((uint)obj.ObjectID);
|
||||
SetQuestObjectiveData(obj, (int)Math.Min(reqCurrencyCount, curCurrencyCount));
|
||||
}
|
||||
break;
|
||||
case QuestObjectiveType.CriteriaTree:
|
||||
if (m_questObjectiveCriteriaMgr.HasCompletedObjective(obj))
|
||||
SetQuestObjectiveData(obj, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user