diff options
author | xinef1 <w.szyszko2@gmail.com> | 2017-04-24 05:46:06 +0200 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2020-04-28 12:56:03 +0200 |
commit | 16cf95654f35f6bb563e82608476d8f53837bd06 (patch) | |
tree | 549b44c3ebed03b2d2b5ad5d002ef6f9bd4af9a6 /src/server/game/Quests/QuestDef.h | |
parent | 9ef39fa5d2f76459e3e529a0877655b0f69b98d6 (diff) |
Various quest system fixes (seasonal quests, timed quests and more) (#18940)
- Unify quest status checking function, use dedicated function instead of direct map checks
- Fixed seasonal quest chains and ability to complete the same quests rewarded in past
- Update area dependent auras on quest status change (they often requires specific quest status)
- Send all not stored quest rewards by mail
- When casting quest reward spell, check if it is not self casted, if so - use player to cast this spell
- Perform full db save on quest reward to prevent data desynchronization
- Don't allow to fail completed timed quests, except for quests which are completed right from the start
- Don't allow to share pooled quests, if they are not available in the current pool (eg sharing easy dalaran weeklies, stored at alt character)
- Remove seasonal quest if rewarded quest is removed
- Don't complete whole quest on AreaExplore event, check if there are no more requirements that should be fulfilled
- Quests with flag QUEST_SPECIAL_FLAGS_PLAYER_KILL can be only credited in quest zone
Closes #18913
Closes #11187
Closes #15279
(cherry picked from commit cbbb74524623ea22fc5375697d6ec2ec16a1755f)
Diffstat (limited to 'src/server/game/Quests/QuestDef.h')
-rw-r--r-- | src/server/game/Quests/QuestDef.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h index 44347222711..da9d80dad63 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -224,7 +224,8 @@ enum QuestSpecialFlags QUEST_SPECIAL_FLAGS_SPEAKTO = 0x100, // Internal flag computed only QUEST_SPECIAL_FLAGS_KILL = 0x200, // Internal flag computed only QUEST_SPECIAL_FLAGS_TIMED = 0x400, // Internal flag computed only - QUEST_SPECIAL_FLAGS_PLAYER_KILL = 0x800 // Internal flag computed only + QUEST_SPECIAL_FLAGS_PLAYER_KILL = 0x800, // Internal flag computed only + QUEST_SPECIAL_FLAGS_COMPLETED_AT_START = 0x1000 // Internal flag computed only }; enum QuestObjectiveType |