Core/SAI: Implemented new action SMART_ACTION_COMPLETE_QUEST

Port From (https://github.com/TrinityCore/TrinityCore/commit/3429871a07c1c1ebe2bd94cb771ef187cb46fd46)
This commit is contained in:
Hondacrx
2024-09-08 14:09:45 -04:00
parent 54023d52d7
commit ad461858ca
4 changed files with 61 additions and 82 deletions
+11 -5
View File
@@ -3374,11 +3374,17 @@ namespace Game.Spells
if (quest == null)
return;
ushort logSlot = player.FindQuestSlot(questId);
if (logSlot < SharedConst.MaxQuestLogSize)
player.AreaExploredOrEventHappens(questId);
else if (quest.HasFlag(QuestFlags.TrackingEvent)) // Check if the quest is used as a serverside flag.
player.SetRewardedQuest(questId); // If so, set status to rewarded without broadcasting it to client.
QuestStatus questStatus = player.GetQuestStatus(questId);
if (questStatus == QuestStatus.Rewarded)
return;
if (quest.HasFlag(QuestFlags.CompletionEvent) || quest.HasFlag(QuestFlags.CompletionAreaTrigger))
{
if (questStatus == QuestStatus.Incomplete)
player.AreaExploredOrEventHappens(questId);
}
else if (quest.HasFlag(QuestFlags.TrackingEvent)) // Check if the quest is used as a serverside flag
player.CompleteQuest(questId);
}
}