diff options
author | xinef1 <w.szyszko2@gmail.com> | 2017-04-24 05:46:06 +0200 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-04-24 00:46:06 -0300 |
commit | cbbb74524623ea22fc5375697d6ec2ec16a1755f (patch) | |
tree | 534ee5d53e523dd193e9f06f63a6cbaf5d1e6611 /src/server/game/Quests/QuestDef.h | |
parent | 522f537048189b40a12d68583485d1de7fcbf1d2 (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
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 24925b064c3..c92b548f7b4 100644 --- a/src/server/game/Quests/QuestDef.h +++ b/src/server/game/Quests/QuestDef.h @@ -171,7 +171,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 }; struct QuestLocale |