Core/Quests: Fixed quests that should have objectives immediately marked as complete
Port From (https://github.com/TrinityCore/TrinityCore/commit/fa4e2d3935b0184623a6d816dc25a41bad30b1d8)
This commit is contained in:
@@ -297,7 +297,7 @@ namespace Game.Entities
|
||||
if (status == QuestStatus.Complete)
|
||||
qm.AddMenuItem(quest_id, 4);
|
||||
else if (status == QuestStatus.Incomplete)
|
||||
qm.AddMenuItem(quest_id, 2);
|
||||
qm.AddMenuItem(quest_id, 4);
|
||||
}
|
||||
|
||||
foreach (var quest_id in objectQR)
|
||||
@@ -743,13 +743,11 @@ namespace Game.Entities
|
||||
QuestStatus oldStatus = questStatusData.Status;
|
||||
|
||||
// check for repeatable quests status reset
|
||||
SetQuestSlot(logSlot, questId);
|
||||
questStatusData.Slot = logSlot;
|
||||
questStatusData.Status = QuestStatus.Incomplete;
|
||||
questStatusData.Explored = false;
|
||||
|
||||
GiveQuestSourceItem(quest);
|
||||
AdjustQuestObjectiveProgress(quest);
|
||||
|
||||
foreach (QuestObjective obj in quest.Objectives)
|
||||
{
|
||||
m_questObjectiveStatus.Add((obj.Type, obj.ObjectID), new QuestObjectiveStatusData() { QuestStatusPair = (questId, questStatusData), Objective = obj });
|
||||
@@ -769,6 +767,9 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
|
||||
GiveQuestSourceItem(quest);
|
||||
AdjustQuestObjectiveProgress(quest);
|
||||
|
||||
long endTime = 0;
|
||||
uint limittime = quest.LimitTime;
|
||||
if (limittime != 0)
|
||||
@@ -804,7 +805,6 @@ namespace Game.Entities
|
||||
caster.CastSpell(this, spellInfo.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetCastDifficulty(spellInfo.Difficulty));
|
||||
}
|
||||
|
||||
SetQuestSlot(logSlot, questId);
|
||||
SetQuestSlotEndTime(logSlot, endTime);
|
||||
SetQuestSlotAcceptTime(logSlot, GameTime.GetGameTime());
|
||||
|
||||
@@ -824,9 +824,9 @@ namespace Game.Entities
|
||||
{
|
||||
SetQuestStatus(quest_id, QuestStatus.Complete);
|
||||
|
||||
ushort log_slot = FindQuestSlot(quest_id);
|
||||
if (log_slot < SharedConst.MaxQuestLogSize)
|
||||
SetQuestSlotState(log_slot, QuestSlotStateMask.Complete);
|
||||
QuestStatusData questStatus = m_QuestStatus.LookupByKey(quest_id);
|
||||
if (questStatus != null)
|
||||
SetQuestSlotState(questStatus.Slot, QuestSlotStateMask.Complete);
|
||||
|
||||
Quest qInfo = Global.ObjectMgr.GetQuestTemplate(quest_id);
|
||||
if (qInfo != null)
|
||||
|
||||
Reference in New Issue
Block a user