diff options
| author | azazel <none@none> | 2010-09-16 13:14:14 +0600 |
|---|---|---|
| committer | azazel <none@none> | 2010-09-16 13:14:14 +0600 |
| commit | 236356628ab04cd520e89551e95ac7583a9945bd (patch) | |
| tree | 33400d7f4c9cbc01d6f7c9519d50489371a379fc /src/server/scripts/Spells | |
| parent | 9739bea487bf9e5791379db51b56f58016fb2386 (diff) | |
Scripts/Quests:
* add support for quest 12634 Some Make Lemonade, Some Make Liquor (implement 51840 spell and Adventurous Dwarf AI, thanks akadabeer)
* implement dummy effect for 49587 Seeds of Nature's Wrath spell (used in quest 12459 That Which Creates Can Also Destroy)
* implement dummy effect for 19512 Apply Salve spell (used in quest 6124/6129 Curing the Sick)
Scripts/Misc: some cleanup in chat log
Core/Locales: fix issue when default locale for trinity_string strings was not used (thanks Aokromes for testing).
--HG--
branch : trunk
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 179 |
1 files changed, 173 insertions, 6 deletions
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 34f85a1ac54..ac04c096721 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -60,7 +60,7 @@ public: // http://www.wowhead.com/quest=55 Morbent Fel // 8913 Sacred Cleansing -enum Quest55Data +enum eQuest55Data { NPC_MORBENT = 1200, NPC_WEAKENED_MORBENT = 24782, @@ -79,7 +79,7 @@ public: // http://www.wowhead.com/quest=5206 Marauders of Darrowshire // 17271 Test Fetid Skull -enum Quest5206Data +enum eQuest5206Data { SPELL_CREATE_RESONATING_SKULL = 17269, SPELL_CREATE_BONE_DUST = 17270 @@ -123,9 +123,66 @@ public: } }; +// http://www.wowhead.com/quest=6124 Curing the Sick (A) +// http://www.wowhead.com/quest=6129 Curing the Sick (H) +// 19512 Apply Salve +enum eQuests6124_6129Data +{ + NPC_SICKLY_GAZELLE = 12296, + NPC_CURED_GAZELLE = 12297, + NPC_SICKLY_DEER = 12298, + NPC_CURED_DEER = 12299, + DESPAWN_TIME = 30000 +}; + +class spell_q6124_6129_apply_salve : public SpellScriptLoader +{ +public: + spell_q6124_6129_apply_salve() : SpellScriptLoader("spell_q6124_6129_apply_salve") { } + + class spell_q6124_6129_apply_salve_SpellScript : public SpellScript + { + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (GetCastItem()) + if (Player* pCaster = GetCaster()->ToPlayer()) + if (Creature* pCreatureTarget = GetHitCreature()) + { + uint32 uiNewEntry = 0; + switch (pCaster->GetTeam()) + { + case HORDE: + if (pCreatureTarget->GetEntry() == NPC_SICKLY_GAZELLE) + uiNewEntry = NPC_CURED_GAZELLE; + break; + case ALLIANCE: + if (pCreatureTarget->GetEntry() == NPC_SICKLY_DEER) + uiNewEntry = NPC_CURED_DEER; + break; + } + if (uiNewEntry) + { + pCreatureTarget->UpdateEntry(uiNewEntry); + pCreatureTarget->ForcedDespawn(DESPAWN_TIME); + } + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q6124_6129_apply_salve_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q6124_6129_apply_salve_SpellScript(); + } +}; + // http://www.wowhead.com/quest=10255 Testing the Antidote // 34665 Administer Antidote -enum Quest10255Data +enum eQuest10255Data { NPC_HELBOAR = 16880, NPC_DREADTUSK = 16992, @@ -144,7 +201,7 @@ public: // http://www.wowhead.com/quest=11515 Blood for Blood // 44936 Quest - Fel Siphon Dummy -enum Quest11515Data +enum eQuest11515Data { NPC_FELBLOOD_INITIATE = 24918, NPC_EMACIATED_FELBLOOD = 24955 @@ -163,7 +220,7 @@ public: // http://www.wowhead.com/quest=11587 Prison Break // 45449 Arcane Prisoner Rescue -enum Quest11587Data +enum eQuest11587Data { SPELL_SUMMON_ARCANE_PRISONER_MALE = 45446, // Summon Arcane Prisoner - Male SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female @@ -215,7 +272,7 @@ public: // http://www.wowhead.com/quest=11730 Master and Servant // 46023 The Ultrasonic Screwdriver -enum Quest11730Data +enum eQuest11730Data { SPELL_SUMMON_SCAVENGEBOT_004A8 = 46063, SPELL_SUMMON_SENTRYBOT_57K = 46068, @@ -296,6 +353,113 @@ public: } }; +// http://www.wowhead.com/quest=12459 That Which Creates Can Also Destroy +// 49587 Seeds of Nature's Wrath +enum eQuest12459Data +{ + NPC_REANIMATED_FROSTWYRM = 26841, + NPC_WEAK_REANIMATED_FROSTWYRM = 27821, + + NPC_TURGID = 27808, + NPC_WEAK_TURGID = 27809, + + NPC_DEATHGAZE = 27122, + NPC_WEAK_DEATHGAZE = 27807, +}; + +class spell_q12459_seeds_of_natures_wrath : public SpellScriptLoader +{ +public: + spell_q12459_seeds_of_natures_wrath() : SpellScriptLoader("spell_q12459_seeds_of_natures_wrath") { } + + class spell_q12459_seeds_of_natures_wrath_SpellScript : public SpellScript + { + public: + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (Creature* pCreatureTarget = GetHitCreature()) + { + uint32 uiNewEntry = 0; + switch (pCreatureTarget->GetEntry()) + { + case NPC_REANIMATED_FROSTWYRM: uiNewEntry = NPC_WEAK_REANIMATED_FROSTWYRM; break; + case NPC_TURGID: uiNewEntry = NPC_WEAK_TURGID; break; + case NPC_DEATHGAZE: uiNewEntry = NPC_WEAK_DEATHGAZE; break; + } + if (uiNewEntry) + pCreatureTarget->UpdateEntry(uiNewEntry); + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q12459_seeds_of_natures_wrath_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q12459_seeds_of_natures_wrath_SpellScript(); + } +}; + +// http://www.wowhead.com/quest=12634 Some Make Lemonade, Some Make Liquor +// 51840 Despawn Fruit Tosser +enum eQuest12634Data +{ + SPELL_BANANAS_FALL_TO_GROUND = 51836, + SPELL_ORANGE_FALLS_TO_GROUND = 51837, + SPELL_PAPAYA_FALLS_TO_GROUND = 51839, + SPELL_SUMMON_ADVENTUROUS_DWARF = 52070 +}; + +class spell_q12634_despawn_fruit_tosser : public SpellScriptLoader +{ +public: + spell_q12634_despawn_fruit_tosser() : SpellScriptLoader("spell_q12634_despawn_fruit_tosser") { } + + class spell_q12634_despawn_fruit_tosser_SpellScript : public SpellScript + { + public: + bool Validate(SpellEntry const * /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_BANANAS_FALL_TO_GROUND)) + return false; + if (!sSpellStore.LookupEntry(SPELL_ORANGE_FALLS_TO_GROUND)) + return false; + if (!sSpellStore.LookupEntry(SPELL_PAPAYA_FALLS_TO_GROUND)) + return false; + if (!sSpellStore.LookupEntry(SPELL_SUMMON_ADVENTUROUS_DWARF)) + return false; + return true; + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + uint32 spellId = SPELL_BANANAS_FALL_TO_GROUND; + switch (urand(0, 3)) + { + case 1: spellId = SPELL_ORANGE_FALLS_TO_GROUND; break; + case 2: spellId = SPELL_PAPAYA_FALLS_TO_GROUND; break; + } + // sometimes, if you're lucky, you get a dwarf + if (roll_chance_i(5)) + spellId = SPELL_SUMMON_ADVENTUROUS_DWARF; + GetCaster()->CastSpell(GetCaster(), spellId, true, NULL); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q12634_despawn_fruit_tosser_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q12634_despawn_fruit_tosser_SpellScript(); + } +}; + // http://www.wowhead.com/quest=12683 Burning to Help // 52308 Take Sputum Sample class spell_q12683_take_sputum_sample : public SpellScriptLoader @@ -383,10 +547,13 @@ void AddSC_quest_spell_scripts() { new spell_q55_sacred_cleansing(); new spell_q5206_test_fetid_skull(); + new spell_q6124_6129_apply_salve(); new spell_q10255_administer_antidote(); new spell_q11515_fel_siphon_dummy(); new spell_q11587_arcane_prisoner_rescue(); new spell_q11730_ultrasonic_screwdriver(); + new spell_q12459_seeds_of_natures_wrath(); + new spell_q12634_despawn_fruit_tosser(); new spell_q12683_take_sputum_sample(); new spell_q12937_relief_for_the_fallen(); } |
