Core/SAI: Implemented new action SMART_ACTION_COMPLETE_QUEST (#30048)

This commit is contained in:
Meji
2024-08-15 15:43:17 +02:00
committed by GitHub
parent 585cbd9394
commit 3429871a07
5 changed files with 63 additions and 69 deletions

View File

@@ -3690,11 +3690,17 @@ void Spell::EffectQuestComplete()
if (!quest)
return;
uint16 logSlot = player->FindQuestSlot(questId);
if (logSlot < MAX_QUEST_LOG_SIZE)
player->AreaExploredOrEventHappens(questId);
else if (quest->HasFlag(QUEST_FLAGS_TRACKING_EVENT)) // 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 == QUEST_STATUS_REWARDED)
return;
if (quest->HasFlag(QUEST_FLAGS_COMPLETION_EVENT) || quest->HasFlag(QUEST_FLAGS_COMPLETION_AREA_TRIGGER))
{
if (questStatus == QUEST_STATUS_INCOMPLETE)
player->AreaExploredOrEventHappens(questId);
}
else if (quest->HasFlag(QUEST_FLAGS_TRACKING_EVENT)) // Check if the quest is used as a serverside flag
player->CompleteQuest(questId);
}
}