Core/Quests: Quest improvements
Port From (https://github.com/TrinityCore/TrinityCore/commit/91b91b502f30f781c8dea77dec4ce2f469b89744)
This commit is contained in:
@@ -365,7 +365,15 @@ namespace Game.Conditions
|
||||
if (questObj == null)
|
||||
break;
|
||||
|
||||
condMeets = (!player.GetQuestRewardStatus(questObj.QuestID) && player.IsQuestObjectiveComplete(questObj));
|
||||
Quest quest = Global.ObjectMgr.GetQuestTemplate(questObj.QuestID);
|
||||
if (quest == null)
|
||||
break;
|
||||
|
||||
ushort slot = player.FindQuestSlot(questObj.QuestID);
|
||||
if (slot >= SharedConst.MaxQuestLogSize)
|
||||
break;
|
||||
|
||||
condMeets = (!player.GetQuestRewardStatus(questObj.QuestID) && player.IsQuestObjectiveComplete(slot, quest, questObj));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2123,7 +2123,9 @@ namespace Game
|
||||
if (condition.QuestKillID != 0)
|
||||
{
|
||||
Quest quest = Global.ObjectMgr.GetQuestTemplate(condition.QuestKillID);
|
||||
if (quest != null && player.GetQuestStatus(condition.QuestKillID) != QuestStatus.Complete)
|
||||
ushort questSlot = player.FindQuestSlot(condition.QuestKillID);
|
||||
|
||||
if (quest != null && player.GetQuestStatus(condition.QuestKillID) != QuestStatus.Complete && questSlot < SharedConst.MaxQuestLogSize)
|
||||
{
|
||||
results = new bool[condition.QuestKillMonster.Length];
|
||||
for (var i = 0; i < results.Length; ++i)
|
||||
@@ -2136,7 +2138,7 @@ namespace Game
|
||||
var questObjective = quest.Objectives.Find(objective => objective.Type == QuestObjectiveType.Monster && objective.ObjectID == condition.QuestKillMonster[i]);
|
||||
|
||||
if (questObjective != null)
|
||||
results[i] = player.GetQuestObjectiveData(quest, questObjective.StorageIndex) >= questObjective.Amount;
|
||||
results[i] = player.GetQuestSlotObjectiveData(questSlot, questObjective) >= questObjective.Amount;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user