diff options
author | azazel <none@none> | 2010-09-04 02:33:57 +0600 |
---|---|---|
committer | azazel <none@none> | 2010-09-04 02:33:57 +0600 |
commit | 7884fd927a3810a7429021f8badf528276b55ef9 (patch) | |
tree | df6e20bfca332495b4c1f91a808cbc870c619400 /src | |
parent | d4e2fdad780f39e1150f13e1d7735e1f2a2c1f05 (diff) |
Spell Scripts:
* moved some generic spell dummy effects to scripts
* implemented two spell scripts for quests: 8913 Sacred Cleansing (Quest 55), 44936 Quest - Fel Siphon Dummy (Quest 11515). Closes issue #3040
* did some cleanup in spell scripts and added more comments
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 115 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_item.cpp | 220 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 220 |
3 files changed, 393 insertions, 162 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index fc847e77874..3d9c9e03ffd 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -842,46 +842,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex) } return; } - case 14537: // Six Demon Bag - { - if( !unitTarget || !unitTarget->isAlive()) return; - - uint32 ClearSpellId[6] = - { - 15662, // Fireball - 11538, // Frostball - 21179, // Chain Lightning - 14621, // Polymorph - 25189, // Enveloping Winds - 14642 // Summon Felhund minion - }; - - uint32 effect = 0; - uint32 rand = urand(0, 100); - - if (rand < 25) // Fireball (25% chance) - effect = ClearSpellId[0]; - else if (rand < 50) // Frostball (25% chance) - effect = ClearSpellId[1]; - else if (rand < 70) // Chain Lighting (25% chance) - effect = ClearSpellId[2]; - else if (rand < 80) // Polymorph (10% chance) - { - effect = ClearSpellId[3]; - if (urand(0, 100) <= 30) // 30% chance to self-cast - unitTarget = m_caster; - } - else if (rand < 95) // Enveloping Winds (15% chance) - effect = ClearSpellId[4]; - else // Summon Felhund minion (5% chance) - { - effect = ClearSpellId[5]; - unitTarget = m_caster; - } - - m_caster->CastSpell(unitTarget, effect, true); - return; - } case 17251: // Spirit Healer Res { if (!unitTarget || !m_originalCaster) @@ -895,18 +855,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex) } return; } - case 17271: // Test Fetid Skull - { - if (!itemTarget && m_caster->GetTypeId() != TYPEID_PLAYER) - return; - - uint32 spell_id = roll_chance_i(50) - ? 17269 // Create Resonating Skull - : 17270; // Create Bone Dust - - m_caster->CastSpell(m_caster, spell_id, true, NULL); - return; - } case 20577: // Cannibalize if (unitTarget) m_caster->CastSpell(m_caster, 20578, false, NULL); @@ -925,22 +873,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex) return; } - case 23074: // Arcanite Dragonling - if (!m_CastItem) return; - m_caster->CastSpell(m_caster, 19804, true, m_CastItem); - return; - case 23075: // Mithril Mechanical Dragonling - if (!m_CastItem) return; - m_caster->CastSpell(m_caster, 12749, true, m_CastItem); - return; - case 23076: // Mechanical Dragonling - if (!m_CastItem) return; - m_caster->CastSpell(m_caster, 4073, true, m_CastItem); - return; - case 23133: // Gnomish Battle Chicken - if (!m_CastItem) return; - m_caster->CastSpell(m_caster, 13166, true, m_CastItem); - return; case 23448: // Transporter Arrival - Ultrasafe Transporter: Gadgetzan - backfires { int32 r = irand(0, 119); @@ -1031,20 +963,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex) else // Poultryized! - backfire 20% m_caster->CastSpell(unitTarget, 30504, true, m_CastItem); return; - case 34665: //Administer Antidote - { - if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT - || unitTarget->GetEntry() != 16880 || unitTarget->ToCreature()->isPet()) - return; - - unitTarget->ToCreature()->UpdateEntry(16992); - m_caster->ToPlayer()->RewardPlayerAndGroupAtEvent(16992, unitTarget); - - if (unitTarget->IsAIEnabled) - unitTarget->ToCreature()->AI()->AttackStart(m_caster); - - return; - } case 35745: // Socrethar's Stone { uint32 spell_id; @@ -1067,39 +985,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex) m_caster->CastCustomSpell(unitTarget, 37675, &basepoints0, NULL, NULL, true); return; } - case 40802: // Mingo's Fortune Generator (Mingo's Fortune Giblets) - { - // selecting one from Bloodstained Fortune item - uint32 newitemid; - switch(urand(1, 20)) - { - case 1: newitemid = 32688; break; - case 2: newitemid = 32689; break; - case 3: newitemid = 32690; break; - case 4: newitemid = 32691; break; - case 5: newitemid = 32692; break; - case 6: newitemid = 32693; break; - case 7: newitemid = 32700; break; - case 8: newitemid = 32701; break; - case 9: newitemid = 32702; break; - case 10: newitemid = 32703; break; - case 11: newitemid = 32704; break; - case 12: newitemid = 32705; break; - case 13: newitemid = 32706; break; - case 14: newitemid = 32707; break; - case 15: newitemid = 32708; break; - case 16: newitemid = 32709; break; - case 17: newitemid = 32710; break; - case 18: newitemid = 32711; break; - case 19: newitemid = 32712; break; - case 20: newitemid = 32713; break; - default: - return; - } - - DoCreateItem(effIndex, newitemid); - return; - } // Wrath of the Astromancer case 42784: { diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 9949b2a9951..8c431f338f0 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -23,6 +23,50 @@ #include "ScriptPCH.h" +// Generic script for handling item dummy effects which trigger another spell. +class spell_item_trigger_spell : public SpellScriptLoader +{ +private: + uint32 _triggeredSpellId; + +public: + spell_item_trigger_spell(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { } + + class spell_item_trigger_spell_SpellScript : public SpellScript + { + private: + uint32 _triggeredSpellId; + + public: + spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { } + + bool Validate(SpellEntry const * /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(_triggeredSpellId)) + return false; + return true; + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (Item* pItem = GetCastItem()) + GetCaster()->CastSpell(GetCaster(), _triggeredSpellId, true, pItem); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_item_trigger_spell_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_item_trigger_spell_SpellScript(_triggeredSpellId); + } +}; + +// http://www.wowhead.com/item=6522 Deviate Fish +// 8063 Deviate Fish enum eDeviateFishSpells { SPELL_SLEEPY = 8064, @@ -32,7 +76,6 @@ enum eDeviateFishSpells SPELL_HEALTHY_SPIRIT = 8068, }; -// 8063 Deviate Fish class spell_item_deviate_fish : public SpellScriptLoader { public: @@ -71,6 +114,8 @@ public: } }; +// http://www.wowhead.com/item=47499 Flask of the North +// 67019 Flask of the North enum eFlaskOfTheNorthSpells { SPELL_FLASK_OF_THE_NORTH_TRIGGERED1 = 67016, @@ -78,7 +123,6 @@ enum eFlaskOfTheNorthSpells SPELL_FLASK_OF_THE_NORTH_TRIGGERED3 = 67018, }; -// 67019 Flask of the North class spell_item_flask_of_the_north : public SpellScriptLoader { public: @@ -120,13 +164,14 @@ public: } }; +// http://www.wowhead.com/item=10645 Gnomish Death Ray +// 13280 Gnomish Death Ray enum eGnomishDeathRay { SPELL_GNOMISH_DEATH_RAY_SELF = 13493, SPELL_GNOMISH_DEATH_RAY_TARGET = 13279, }; -// 13280 Gnomish Death Ray class spell_item_gnomish_death_ray : public SpellScriptLoader { public: @@ -168,6 +213,8 @@ public: } }; +// http://www.wowhead.com/item=27388 Mr. Pinchy +// 33060 Make a Wish enum eMakeAWish { SPELL_MR_PINCHYS_BLESSING = 33053, @@ -177,7 +224,6 @@ enum eMakeAWish SPELL_MR_PINCHYS_GIFT = 33064, }; -// 33060 Make a Wish class spell_item_make_a_wish : public SpellScriptLoader { public: @@ -230,6 +276,62 @@ public: } }; +// http://www.wowhead.com/item=32686 Mingo's Fortune Giblets +// 40802 Mingo's Fortune Generator +class spell_item_mingos_fortune_generator : public SpellScriptLoader +{ +public: + spell_item_mingos_fortune_generator() : SpellScriptLoader("spell_item_mingos_fortune_generator") { } + + class spell_item_mingos_fortune_generator_SpellScript : public SpellScript + { + void HandleDummy(SpellEffIndex effIndex) + { + // Selecting one from Bloodstained Fortune item + uint32 newitemid; + switch (urand(1, 20)) + { + case 1: newitemid = 32688; break; + case 2: newitemid = 32689; break; + case 3: newitemid = 32690; break; + case 4: newitemid = 32691; break; + case 5: newitemid = 32692; break; + case 6: newitemid = 32693; break; + case 7: newitemid = 32700; break; + case 8: newitemid = 32701; break; + case 9: newitemid = 32702; break; + case 10: newitemid = 32703; break; + case 11: newitemid = 32704; break; + case 12: newitemid = 32705; break; + case 13: newitemid = 32706; break; + case 14: newitemid = 32707; break; + case 15: newitemid = 32708; break; + case 16: newitemid = 32709; break; + case 17: newitemid = 32710; break; + case 18: newitemid = 32711; break; + case 19: newitemid = 32712; break; + case 20: newitemid = 32713; break; + default: + return; + } + + CreateItem(effIndex, newitemid); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_item_mingos_fortune_generator_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_item_mingos_fortune_generator_SpellScript(); + } +}; + +// http://www.wowhead.com/item=10720 Gnomish Net-o-Matic Projector +// 13120 Net-o-Matic enum eNetOMaticSpells { SPELL_NET_O_MATIC_TRIGGERED1 = 16566, @@ -237,7 +339,6 @@ enum eNetOMaticSpells SPELL_NET_O_MATIC_TRIGGERED3 = 13099, }; -// 13120 Net-o-Matic class spell_item_net_o_matic : public SpellScriptLoader { public: @@ -284,6 +385,8 @@ public: } }; +// http://www.wowhead.com/item=8529 Noggenfogger Elixir +// 16589 Noggenfogger Elixir enum eNoggenfoggerElixirSpells { SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1 = 16595, @@ -291,7 +394,6 @@ enum eNoggenfoggerElixirSpells SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3 = 16591, }; -// 16589 Noggenfogger Elixir class spell_item_noggenfogger_elixir : public SpellScriptLoader { public: @@ -339,6 +441,8 @@ public: } }; +// http://www.wowhead.com/item=6657 Savory Deviate Delight +// 8213 Savory Deviate Delight enum eSavoryDeviateDelight { SPELL_FLIP_OUT_MALE = 8219, @@ -347,7 +451,6 @@ enum eSavoryDeviateDelight SPELL_YAAARRRR_FEMALE = 8222, }; -// 8213 Savory Deviate Delight class spell_item_savory_deviate_delight : public SpellScriptLoader { public: @@ -393,6 +496,89 @@ public: } }; +// http://www.wowhead.com/item=7734 Six Demon Bag +// 14537 Six Demon Bag +enum eSixDemonBagSpells +{ + SPELL_FROSTBOLT = 11538, + SPELL_POLYMORPH = 14621, + SPELL_SUMMON_FELHOUND_MINION = 14642, + SPELL_FIREBALL = 15662, + SPELL_CHAIN_LIGHTNING = 21179, + SPELL_ENVELOPING_WINDS = 25189, +}; + +class spell_item_six_demon_bag : public SpellScriptLoader +{ +public: + spell_item_six_demon_bag() : SpellScriptLoader("spell_item_six_demon_bag") { } + + class spell_item_six_demon_bag_SpellScript : public SpellScript + { + public: + bool Validate(SpellEntry const * /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_FROSTBOLT)) + return false; + if (!sSpellStore.LookupEntry(SPELL_POLYMORPH)) + return false; + if (!sSpellStore.LookupEntry(SPELL_SUMMON_FELHOUND_MINION)) + return false; + if (!sSpellStore.LookupEntry(SPELL_FIREBALL)) + return false; + if (!sSpellStore.LookupEntry(SPELL_CHAIN_LIGHTNING)) + return false; + if (!sSpellStore.LookupEntry(SPELL_ENVELOPING_WINDS)) + return false; + return true; + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (Unit* pTarget = GetHitUnit()) + { + Unit* pCaster = GetCaster(); + + uint32 spellId = 0; + uint32 rand = urand(0, 100); + if (rand >= 0 && rand < 25) // Fireball (25% chance) + spellId = SPELL_FIREBALL; + else if (rand >= 25 && rand < 50) // Frostball (25% chance) + spellId = SPELL_FROSTBOLT; + else if (rand >= 50 && rand < 70) // Chain Lighting (20% chance) + spellId = SPELL_CHAIN_LIGHTNING; + else if (rand >= 70 && rand < 80) // Polymorph (10% chance) + { + spellId = SPELL_POLYMORPH; + if (urand(0, 100) <= 30) // 30% chance to self-cast + pTarget = pCaster; + } + else if (rand >=80 && rand < 95) // Enveloping Winds (15% chance) + spellId = SPELL_ENVELOPING_WINDS; + else // Summon Felhund minion (5% chance) + { + spellId = SPELL_SUMMON_FELHOUND_MINION; + pTarget = pCaster; + } + + pCaster->CastSpell(pTarget, spellId, true, GetCastItem()); + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_item_six_demon_bag_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_item_six_demon_bag_SpellScript(); + } +}; + +// http://www.wowhead.com/item=44012 Underbelly Elixir +// 59640 Underbelly Elixir enum eUnderbellyElixirSpells { SPELL_UNDERBELLY_ELIXIR_TRIGGERED1 = 59645, @@ -400,7 +586,6 @@ enum eUnderbellyElixirSpells SPELL_UNDERBELLY_ELIXIR_TRIGGERED3 = 59843, }; -// 59640 Underbelly Elixir class spell_item_underbelly_elixir : public SpellScriptLoader { public: @@ -447,14 +632,33 @@ public: } }; +enum eGenericData +{ + SPELL_ARCANITE_DRAGONLING = 19804, + SPELL_BATTLE_CHICKEN = 13166, + SPELL_MECHANICAL_DRAGONLING = 4073, + SPELL_MITHRIL_MECHANICAL_DRAGONLING = 12749, +}; + void AddSC_item_spell_scripts() { + // 23074 Arcanite Dragonling + new spell_item_trigger_spell("spell_item_arcanite_dragonling", SPELL_ARCANITE_DRAGONLING); + // 23133 Gnomish Battle Chicken + new spell_item_trigger_spell("spell_item_gnomish_battle_chicken", SPELL_BATTLE_CHICKEN); + // 23076 Mechanical Dragonling + new spell_item_trigger_spell("spell_item_mechanical_dragonling", SPELL_MECHANICAL_DRAGONLING); + // 23075 Mithril Mechanical Dragonling + new spell_item_trigger_spell("spell_item_mithril_mechanical_dragonling", SPELL_MITHRIL_MECHANICAL_DRAGONLING); + new spell_item_deviate_fish(); new spell_item_flask_of_the_north(); new spell_item_gnomish_death_ray(); new spell_item_make_a_wish(); + new spell_item_mingos_fortune_generator(); new spell_item_net_o_matic(); new spell_item_noggenfogger_elixir(); new spell_item_savory_deviate_delight(); + new spell_item_six_demon_bag(); new spell_item_underbelly_elixir(); } diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 201c65419a7..d273d1ad453 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -23,15 +23,153 @@ #include "ScriptPCH.h" -enum Quest11587Spells +class spell_generic_quest_update_entry_SpellScript : public SpellScript { - QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE = 45446, // Summon Arcane Prisoner - Male - QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female - QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT = 45456 // Arcane Prisoner Kill Credit +private: + uint32 _spellEffect; + uint8 _effIndex; + uint32 _originalEntry; + uint32 _newEntry; + bool _shouldAttack; + uint32 _despawnTime; + +public: + spell_generic_quest_update_entry_SpellScript(uint32 spellEffect, uint8 effIndex, uint32 originalEntry, uint32 newEntry, bool shouldAttack, uint32 despawnTime = 0) : + SpellScript(), _spellEffect(spellEffect), _effIndex(effIndex), _originalEntry(originalEntry), + _newEntry(newEntry), _shouldAttack(shouldAttack), _despawnTime(despawnTime) { } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + if (Creature* pCreatureTarget = GetHitCreature()) + if (!pCreatureTarget->isPet() && pCreatureTarget->GetEntry() == _originalEntry) + { + pCreatureTarget->UpdateEntry(_newEntry); + if (_shouldAttack && pCreatureTarget->IsAIEnabled) + pCreatureTarget->AI()->AttackStart(GetCaster()); + + if (_despawnTime) + pCreatureTarget->ForcedDespawn(_despawnTime); + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_generic_quest_update_entry_SpellScript::HandleDummy, _effIndex, _spellEffect); + } +}; + +// http://www.wowhead.com/quest=55 Morbent Fel +// 8913 Sacred Cleansing +enum Quest55Data +{ + NPC_MORBENT = 1200, + NPC_WEAKENED_MORBENT = 24782, +}; + +class spell_q55_sacred_cleansing : public SpellScriptLoader +{ +public: + spell_q55_sacred_cleansing() : SpellScriptLoader("spell_q55_sacred_cleansing") { } + + SpellScript* GetSpellScript() const + { + return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_1, NPC_MORBENT, NPC_WEAKENED_MORBENT, true); + } +}; + +// http://www.wowhead.com/quest=5206 Marauders of Darrowshire +// 17271 Test Fetid Skull +enum Quest5206Data +{ + SPELL_CREATE_RESONATING_SKULL = 17269, + SPELL_CREATE_BONE_DUST = 17270 +}; + +class spell_q5206_test_fetid_skull : public SpellScriptLoader +{ +public: + spell_q5206_test_fetid_skull() : SpellScriptLoader("spell_q5206_test_fetid_skull") { } + + class spell_q5206_test_fetid_skull_SpellScript : public SpellScript + { + bool Validate(SpellEntry const * /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_CREATE_RESONATING_SKULL)) + return false; + if (!sSpellStore.LookupEntry(SPELL_CREATE_BONE_DUST)) + return false; + return true; + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* pCaster = GetCaster(); + if (pCaster->GetTypeId() == TYPEID_PLAYER) + { + uint32 spellId = roll_chance_i(50) ? SPELL_CREATE_RESONATING_SKULL : SPELL_CREATE_BONE_DUST; + pCaster->CastSpell(pCaster, spellId, true, NULL); + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_q5206_test_fetid_skull_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_q5206_test_fetid_skull_SpellScript(); + } +}; + +// http://www.wowhead.com/quest=10255 Testing the Antidote +// 34665 Administer Antidote +enum Quest10255Data +{ + NPC_HELBOAR = 16880, + NPC_DREADTUSK = 16992, +}; + +class spell_q10255_administer_antidote : public SpellScriptLoader +{ +public: + spell_q10255_administer_antidote() : SpellScriptLoader("spell_q10255_administer_antidote") { } + + SpellScript* GetSpellScript() const + { + return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_0, NPC_HELBOAR, NPC_DREADTUSK, true); + } +}; + +// http://www.wowhead.com/quest=11515 Blood for Blood +// 44936 Quest - Fel Siphon Dummy +enum Quest11515Data +{ + NPC_FELBLOOD_INITIATE = 24918, + NPC_EMACIATED_FELBLOOD = 24955 +}; + +class spell_q11515_fel_siphon_dummy : public SpellScriptLoader +{ +public: + spell_q11515_fel_siphon_dummy() : SpellScriptLoader("spell_q11515_fel_siphon_dummy") { } + + SpellScript* GetSpellScript() const + { + return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_0, NPC_FELBLOOD_INITIATE, NPC_EMACIATED_FELBLOOD, true); + } }; // http://www.wowhead.com/quest=11587 Prison Break // 45449 Arcane Prisoner Rescue +enum Quest11587Data +{ + SPELL_SUMMON_ARCANE_PRISONER_MALE = 45446, // Summon Arcane Prisoner - Male + SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female + SPELL_ARCANE_PRISONER_KILL_CREDIT = 45456 // Arcane Prisoner Kill Credit +}; + class spell_q11587_arcane_prisoner_rescue : public SpellScriptLoader { public: @@ -41,11 +179,11 @@ public: { bool Validate(SpellEntry const * /*spellEntry*/) { - if (!sSpellStore.LookupEntry(QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_ARCANE_PRISONER_MALE)) return false; - if (!sSpellStore.LookupEntry(QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_ARCANE_PRISONER_FEMALE)) return false; - if (!sSpellStore.LookupEntry(QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT)) + if (!sSpellStore.LookupEntry(SPELL_ARCANE_PRISONER_KILL_CREDIT)) return false; return true; } @@ -55,11 +193,11 @@ public: Unit* caster = GetCaster(); if (Unit* unitTarget = GetHitUnit()) { - uint32 spellId = QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE; + uint32 spellId = SPELL_SUMMON_ARCANE_PRISONER_MALE; if (rand() % 2) - spellId = QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE; + spellId = SPELL_SUMMON_ARCANE_PRISONER_FEMALE; caster->CastSpell(caster, spellId, true); - unitTarget->CastSpell(caster, QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT, true); + unitTarget->CastSpell(caster, SPELL_ARCANE_PRISONER_KILL_CREDIT, true); } } @@ -75,23 +213,23 @@ public: } }; -enum Quest11730Spells +// http://www.wowhead.com/quest=11730 Master and Servant +// 46023 The Ultrasonic Screwdriver +enum Quest11730Data { - SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8 = 46063, - SPELL_QUEST_SUMMON_SENTRYBOT_57K = 46068, - SPELL_QUEST_SUMMON_DEFENDOTANK_66D = 46058, - SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6 = 46066, - SPELL_QUEST_SUMMON_55D_COLLECTATRON = 46034, - SPELL_QUEST_ROBOT_KILL_CREDIT = 46027, - NPC_SCAVENGEBOT_004A8 = 25752, - NPC_SENTRYBOT_57K = 25753, - NPC_DEFENDOTANK_66D = 25758, - NPC_SCAVENGEBOT_005B6 = 25792, - NPC_55D_COLLECTATRON = 25793 + SPELL_SUMMON_SCAVENGEBOT_004A8 = 46063, + SPELL_SUMMON_SENTRYBOT_57K = 46068, + SPELL_SUMMON_DEFENDOTANK_66D = 46058, + SPELL_SUMMON_SCAVENGEBOT_005B6 = 46066, + SPELL_SUMMON_55D_COLLECTATRON = 46034, + SPELL_ROBOT_KILL_CREDIT = 46027, + NPC_SCAVENGEBOT_004A8 = 25752, + NPC_SENTRYBOT_57K = 25753, + NPC_DEFENDOTANK_66D = 25758, + NPC_SCAVENGEBOT_005B6 = 25792, + NPC_55D_COLLECTATRON = 25793 }; -// http://www.wowhead.com/quest=11730 Master and Servant -// 46023 The Ultrasonic Screwdriver class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader { public: @@ -101,17 +239,17 @@ public: { bool Validate(SpellEntry const * /*spellEntry*/) { - if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_SCAVENGEBOT_004A8)) return false; - if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SENTRYBOT_57K)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_SENTRYBOT_57K)) return false; - if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_DEFENDOTANK_66D)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_DEFENDOTANK_66D)) return false; - if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_SCAVENGEBOT_005B6)) return false; - if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_55D_COLLECTATRON)) + if (!sSpellStore.LookupEntry(SPELL_SUMMON_55D_COLLECTATRON)) return false; - if (!sSpellStore.LookupEntry(SPELL_QUEST_ROBOT_KILL_CREDIT)) + if (!sSpellStore.LookupEntry(SPELL_ROBOT_KILL_CREDIT)) return false; return true; } @@ -133,16 +271,16 @@ public: uint32 spellId = 0; switch (pTarget->GetEntry()) { - case NPC_SCAVENGEBOT_004A8: spellId = SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8; break; - case NPC_SENTRYBOT_57K: spellId = SPELL_QUEST_SUMMON_SENTRYBOT_57K; break; - case NPC_DEFENDOTANK_66D: spellId = SPELL_QUEST_SUMMON_DEFENDOTANK_66D; break; - case NPC_SCAVENGEBOT_005B6: spellId = SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6; break; - case NPC_55D_COLLECTATRON: spellId = SPELL_QUEST_SUMMON_55D_COLLECTATRON; break; + case NPC_SCAVENGEBOT_004A8: spellId = SPELL_SUMMON_SCAVENGEBOT_004A8; break; + case NPC_SENTRYBOT_57K: spellId = SPELL_SUMMON_SENTRYBOT_57K; break; + case NPC_DEFENDOTANK_66D: spellId = SPELL_SUMMON_DEFENDOTANK_66D; break; + case NPC_SCAVENGEBOT_005B6: spellId = SPELL_SUMMON_SCAVENGEBOT_005B6; break; + case NPC_55D_COLLECTATRON: spellId = SPELL_SUMMON_55D_COLLECTATRON; break; default: return; } pCaster->CastSpell(pCaster, spellId, true, castItem); - pCaster->CastSpell(pCaster, SPELL_QUEST_ROBOT_KILL_CREDIT, true); + pCaster->CastSpell(pCaster, SPELL_ROBOT_KILL_CREDIT, true); pTarget->ForcedDespawn(); } @@ -192,14 +330,14 @@ public: } }; -enum eQuest12937Spells +// http://www.wowhead.com/quest=12937 Relief for the Fallen +// 55804 Healing Finished +enum eQuest12937Data { SPELL_TRIGGER_AID_OF_THE_EARTHEN = 55809, NPC_FALLEN_EARTHEN_DEFENDER = 30035, }; -// http://www.wowhead.com/quest=12937 Relief for the Fallen -// 55804 Healing Finished class spell_q12937_relief_for_the_fallen : public SpellScriptLoader { public: @@ -243,6 +381,10 @@ public: void AddSC_quest_spell_scripts() { + new spell_q55_sacred_cleansing(); + new spell_q5206_test_fetid_skull(); + new spell_q10255_administer_antidote(); + new spell_q11515_fel_siphon_dummy(); new spell_q11587_arcane_prisoner_rescue(); new spell_q11730_ultrasonic_screwdriver(); new spell_q12683_take_sputum_sample(); |