Core/SpellAreas: Changed the way quest_start and quest_end works.

They now follow this rule:
The player's quest status of quest_start must have the mask defined in quest_start_status in order for the spell to be applied/kept.
The player's quest status of quest_end must _NOT_ have the mask defined in quest_end_status in order for the spell to be removed
To generate the mask:
Take the QuestStatus enum in QuestDef.h, use (1 << theValueYouWant) to obtain a mask and you can use | to combine masks.
This expands the usage of the spell_area table, making possible to give a player an aura while he has a quest, but remove it as soon as the quest is completed (not rewarded).
Feature request by @Svannon
This commit is contained in:
Subv
2012-10-16 21:44:28 -05:00
parent 6abc6253a6
commit 27f091806a
4 changed files with 46 additions and 72 deletions
@@ -0,0 +1,4 @@
ALTER TABLE `spell_area` ADD COLUMN `quest_start_status` INT(11) NOT NULL DEFAULT 64; -- default is QUEST_STATUS_REWARDED
ALTER TABLE `spell_area` ADD COLUMN `quest_end_status` INT(11) NOT NULL DEFAULT 11; -- default is QUEST_STATUS_COMPLETE | QUEST_STATUS_NONE | QUEST_STATUS_INCOMPLETE
UPDATE spell_area SET `quest_start_status` = (1 << 6) | (1 << 3) | (1 << 1) WHERE `quest_start_active` = 1;
ALTER TABLE spell_area DROP COLUMN `quest_start_active`;