Core/Quests: Quest improvements

Port From (https://github.com/TrinityCore/TrinityCore/commit/91b91b502f30f781c8dea77dec4ce2f469b89744)
This commit is contained in:
hondacrx
2021-05-11 11:39:14 -04:00
parent 852cd21cae
commit 8847de54d5
13 changed files with 539 additions and 305 deletions
+9 -1
View File
@@ -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;
}
+4 -2
View File
@@ -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;
}
}