diff options
-rw-r--r-- | sql/base/world_database.sql | 3 | ||||
-rw-r--r-- | sql/updates/world/2011_06_22_03_world_achievement_criteria_data.sql | 7 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp | 28 |
3 files changed, 35 insertions, 3 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index bd71ae81929..c3347731ab3 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -17295,7 +17295,8 @@ INSERT INTO `spell_dbc` (`Id`,`Dispel`,`Mechanic`,`Attributes`,`AttributesEx`,`A (65074, 0, 0, 536870912, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 101, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 16, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Freya credit marker'), (60937, 0, 0, 562036736, 32, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 101, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Seaforium charges damaging wall achievement credit'), (62791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'XT-002 Heart Overload Trigger Spell'), -(65037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nerf the Scrapbots Achievement Criteria Marker'); +(65037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Nerf the Scrapbots Achievement Criteria Marker'), +(65074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 30, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Freya Achievement spell - Criteria Marker); /*!40000 ALTER TABLE `spell_dbc` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/world/2011_06_22_03_world_achievement_criteria_data.sql b/sql/updates/world/2011_06_22_03_world_achievement_criteria_data.sql new file mode 100644 index 00000000000..2eafd5e4d6e --- /dev/null +++ b/sql/updates/world/2011_06_22_03_world_achievement_criteria_data.sql @@ -0,0 +1,7 @@ +UPDATE `spell_dbc` SET `comment`='Freya Achievement spell - Criteria Marker' WHERE `id`=65074; + +DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (10445,10758) AND `type` IN (11,18); +INSERT INTO `achievement_criteria_data` (`criteria_id`,`type`,`value1`,`value2`,`ScriptName`) +VALUES +(10445,11,0,0,'achievement_getting_back_to_nature'), +(10758,11,0,0,'achievement_getting_back_to_nature'); diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp index f65ee25811e..bcd22a5c248 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp @@ -221,6 +221,7 @@ enum FreyaEvents #define WAVE_TIME 60000 // Normal wave is one minute #define TIME_DIFFERENCE 10000 // If difference between waveTime and WAVE_TIME is bigger then TIME_DIFFERENCE, schedule EVENT_WAVE in 10 seconds #define DATA_KNOCK_ON_WOOD 1 +#define DATA_GETTING_BACK_TO_NATURE 2 class npc_iron_roots : public CreatureScript { @@ -412,8 +413,13 @@ class boss_freya : public CreatureScript uint32 GetData(uint32 type) { - if (type == DATA_KNOCK_ON_WOOD) - return elderCount; + switch (type) + { + case DATA_KNOCK_ON_WOOD: + return elderCount; + case DATA_GETTING_BACK_TO_NATURE: + return attunedToNature; + } return 0; } @@ -1656,6 +1662,23 @@ class achievement_knock_knock_knock_on_wood : public AchievementCriteriaScript } }; +class achievement_getting_back_to_nature : public AchievementCriteriaScript +{ + public: + achievement_getting_back_to_nature() : AchievementCriteriaScript("achievement_getting_back_to_nature") + { + } + + bool OnCheck(Player* /*player*/, Unit* target) + { + if (Creature* Freya = target->ToCreature()) + if (Freya->AI()->GetData(DATA_GETTING_BACK_TO_NATURE) >= 25) + return true; + + return false; + } +}; + void AddSC_boss_freya() { new boss_freya(); @@ -1678,4 +1701,5 @@ void AddSC_boss_freya() new achievement_knock_on_wood(); new achievement_knock_knock_on_wood(); new achievement_knock_knock_knock_on_wood(); + new achievement_getting_back_to_nature(); } |