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
This commit is contained in:
@@ -26643,18 +26643,28 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
|||||||
( 73033, 'spell_festergut_blighted_spores'),
|
( 73033, 'spell_festergut_blighted_spores'),
|
||||||
( 73034, 'spell_festergut_blighted_spores'),
|
( 73034, 'spell_festergut_blighted_spores'),
|
||||||
-- quest
|
-- quest
|
||||||
|
( 8913, 'spell_q55_sacred_cleansing'),
|
||||||
|
( 17271, 'spell_q5206_test_fetid_skull'),
|
||||||
|
( 34665, 'spell_q10255_administer_antidote'),
|
||||||
|
( 44936, 'spell_q11515_fel_siphon_dummy'),
|
||||||
( 45449, 'spell_q11587_arcane_prisoner_rescue'),
|
( 45449, 'spell_q11587_arcane_prisoner_rescue'),
|
||||||
( 46023, 'spell_q11730_ultrasonic_screwdriver'),
|
( 46023, 'spell_q11730_ultrasonic_screwdriver'),
|
||||||
( 52308, 'spell_q12683_take_sputum_sample'),
|
( 52308, 'spell_q12683_take_sputum_sample'),
|
||||||
( 55804, 'spell_q12937_relief_for_the_fallen'),
|
( 55804, 'spell_q12937_relief_for_the_fallen'),
|
||||||
-- item
|
-- item
|
||||||
|
( 23074, 'spell_item_arcanite_dragonling'),
|
||||||
( 8063, 'spell_item_deviate_fish'),
|
( 8063, 'spell_item_deviate_fish'),
|
||||||
( 67019, 'spell_item_flask_of_the_north'),
|
( 67019, 'spell_item_flask_of_the_north'),
|
||||||
|
( 23133, 'spell_item_gnomish_battle_chicken'),
|
||||||
( 13280, 'spell_item_gnomish_death_ray'),
|
( 13280, 'spell_item_gnomish_death_ray'),
|
||||||
( 33060, 'spell_item_make_a_wish'),
|
( 33060, 'spell_item_make_a_wish'),
|
||||||
|
( 23076, 'spell_item_mechanical_dragonling'),
|
||||||
|
( 40802, 'spell_item_mingos_fortune_generator'),
|
||||||
|
( 23075, 'spell_item_mithril_mechanical_dragonling'),
|
||||||
( 13120, 'spell_item_net_o_matic'),
|
( 13120, 'spell_item_net_o_matic'),
|
||||||
( 16589, 'spell_item_noggenfogger_elixir'),
|
( 16589, 'spell_item_noggenfogger_elixir'),
|
||||||
( 8213, 'spell_item_savory_deviate_delight'),
|
( 8213, 'spell_item_savory_deviate_delight'),
|
||||||
|
( 14537, 'spell_item_six_demon_bag'),
|
||||||
( 59640, 'spell_item_underbelly_elixir'),
|
( 59640, 'spell_item_underbelly_elixir'),
|
||||||
-- warrior
|
-- warrior
|
||||||
( 12975, 'spell_warr_last_stand'),
|
( 12975, 'spell_warr_last_stand'),
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
-- 14537 Six Demon Bag
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=14537 AND `ScriptName`='spell_item_six_demon_bag';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (14537,'spell_item_six_demon_bag');
|
||||||
|
|
||||||
|
-- 17271 Test Fetid Skull
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=17271 AND `ScriptName`='spell_q5206_test_fetid_skull';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (17271,'spell_q5206_test_fetid_skull');
|
||||||
|
|
||||||
|
-- 23074 Arcanite Dragonling
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=23074 AND `ScriptName`='spell_item_arcanite_dragonling';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (23074,'spell_item_arcanite_dragonling');
|
||||||
|
|
||||||
|
-- 23075 Mithril Mechanical Dragonling
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=23075 AND `ScriptName`='spell_item_mithril_mechanical_dragonling';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (23075,'spell_item_mithril_mechanical_dragonling');
|
||||||
|
|
||||||
|
-- 23076 Mechanical Dragonling
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=23076 AND `ScriptName`='spell_item_mechanical_dragonling';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (23076,'spell_item_mechanical_dragonling');
|
||||||
|
|
||||||
|
-- 23133 Gnomish Battle Chicken
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=23133 AND `ScriptName`='spell_item_gnomish_battle_chicken';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (23133,'spell_item_gnomish_battle_chicken');
|
||||||
|
|
||||||
|
-- 34665 Administer Antidote
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=34665 AND `ScriptName`='spell_q10255_administer_antidote';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (34665,'spell_q10255_administer_antidote');
|
||||||
|
|
||||||
|
-- 40802 Mingo's Fortune Generator
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=40802 AND `ScriptName`='spell_item_mingos_fortune_generator';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (40802,'spell_item_mingos_fortune_generator');
|
||||||
|
|
||||||
|
-- 8913 Sacred Cleansing
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=8913 AND `ScriptName`='spell_q55_sacred_cleansing';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (8913,'spell_q55_sacred_cleansing');
|
||||||
|
|
||||||
|
-- 44936 Quest - Fel Siphon Dummy
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=44936 AND `ScriptName`='spell_q11515_fel_siphon_dummy';
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (44936,'spell_q11515_fel_siphon_dummy');
|
||||||
@@ -842,46 +842,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
|
|||||||
}
|
}
|
||||||
return;
|
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
|
case 17251: // Spirit Healer Res
|
||||||
{
|
{
|
||||||
if (!unitTarget || !m_originalCaster)
|
if (!unitTarget || !m_originalCaster)
|
||||||
@@ -895,18 +855,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
|
|||||||
}
|
}
|
||||||
return;
|
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
|
case 20577: // Cannibalize
|
||||||
if (unitTarget)
|
if (unitTarget)
|
||||||
m_caster->CastSpell(m_caster, 20578, false, NULL);
|
m_caster->CastSpell(m_caster, 20578, false, NULL);
|
||||||
@@ -925,22 +873,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
|
|||||||
|
|
||||||
return;
|
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
|
case 23448: // Transporter Arrival - Ultrasafe Transporter: Gadgetzan - backfires
|
||||||
{
|
{
|
||||||
int32 r = irand(0, 119);
|
int32 r = irand(0, 119);
|
||||||
@@ -1031,20 +963,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
|
|||||||
else // Poultryized! - backfire 20%
|
else // Poultryized! - backfire 20%
|
||||||
m_caster->CastSpell(unitTarget, 30504, true, m_CastItem);
|
m_caster->CastSpell(unitTarget, 30504, true, m_CastItem);
|
||||||
return;
|
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
|
case 35745: // Socrethar's Stone
|
||||||
{
|
{
|
||||||
uint32 spell_id;
|
uint32 spell_id;
|
||||||
@@ -1067,39 +985,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
|
|||||||
m_caster->CastCustomSpell(unitTarget, 37675, &basepoints0, NULL, NULL, true);
|
m_caster->CastCustomSpell(unitTarget, 37675, &basepoints0, NULL, NULL, true);
|
||||||
return;
|
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
|
// Wrath of the Astromancer
|
||||||
case 42784:
|
case 42784:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,6 +23,50 @@
|
|||||||
|
|
||||||
#include "ScriptPCH.h"
|
#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
|
enum eDeviateFishSpells
|
||||||
{
|
{
|
||||||
SPELL_SLEEPY = 8064,
|
SPELL_SLEEPY = 8064,
|
||||||
@@ -32,7 +76,6 @@ enum eDeviateFishSpells
|
|||||||
SPELL_HEALTHY_SPIRIT = 8068,
|
SPELL_HEALTHY_SPIRIT = 8068,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 8063 Deviate Fish
|
|
||||||
class spell_item_deviate_fish : public SpellScriptLoader
|
class spell_item_deviate_fish : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -71,6 +114,8 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// http://www.wowhead.com/item=47499 Flask of the North
|
||||||
|
// 67019 Flask of the North
|
||||||
enum eFlaskOfTheNorthSpells
|
enum eFlaskOfTheNorthSpells
|
||||||
{
|
{
|
||||||
SPELL_FLASK_OF_THE_NORTH_TRIGGERED1 = 67016,
|
SPELL_FLASK_OF_THE_NORTH_TRIGGERED1 = 67016,
|
||||||
@@ -78,7 +123,6 @@ enum eFlaskOfTheNorthSpells
|
|||||||
SPELL_FLASK_OF_THE_NORTH_TRIGGERED3 = 67018,
|
SPELL_FLASK_OF_THE_NORTH_TRIGGERED3 = 67018,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 67019 Flask of the North
|
|
||||||
class spell_item_flask_of_the_north : public SpellScriptLoader
|
class spell_item_flask_of_the_north : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -120,13 +164,14 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// http://www.wowhead.com/item=10645 Gnomish Death Ray
|
||||||
|
// 13280 Gnomish Death Ray
|
||||||
enum eGnomishDeathRay
|
enum eGnomishDeathRay
|
||||||
{
|
{
|
||||||
SPELL_GNOMISH_DEATH_RAY_SELF = 13493,
|
SPELL_GNOMISH_DEATH_RAY_SELF = 13493,
|
||||||
SPELL_GNOMISH_DEATH_RAY_TARGET = 13279,
|
SPELL_GNOMISH_DEATH_RAY_TARGET = 13279,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 13280 Gnomish Death Ray
|
|
||||||
class spell_item_gnomish_death_ray : public SpellScriptLoader
|
class spell_item_gnomish_death_ray : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -168,6 +213,8 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// http://www.wowhead.com/item=27388 Mr. Pinchy
|
||||||
|
// 33060 Make a Wish
|
||||||
enum eMakeAWish
|
enum eMakeAWish
|
||||||
{
|
{
|
||||||
SPELL_MR_PINCHYS_BLESSING = 33053,
|
SPELL_MR_PINCHYS_BLESSING = 33053,
|
||||||
@@ -177,7 +224,6 @@ enum eMakeAWish
|
|||||||
SPELL_MR_PINCHYS_GIFT = 33064,
|
SPELL_MR_PINCHYS_GIFT = 33064,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 33060 Make a Wish
|
|
||||||
class spell_item_make_a_wish : public SpellScriptLoader
|
class spell_item_make_a_wish : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
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
|
enum eNetOMaticSpells
|
||||||
{
|
{
|
||||||
SPELL_NET_O_MATIC_TRIGGERED1 = 16566,
|
SPELL_NET_O_MATIC_TRIGGERED1 = 16566,
|
||||||
@@ -237,7 +339,6 @@ enum eNetOMaticSpells
|
|||||||
SPELL_NET_O_MATIC_TRIGGERED3 = 13099,
|
SPELL_NET_O_MATIC_TRIGGERED3 = 13099,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 13120 Net-o-Matic
|
|
||||||
class spell_item_net_o_matic : public SpellScriptLoader
|
class spell_item_net_o_matic : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -284,6 +385,8 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// http://www.wowhead.com/item=8529 Noggenfogger Elixir
|
||||||
|
// 16589 Noggenfogger Elixir
|
||||||
enum eNoggenfoggerElixirSpells
|
enum eNoggenfoggerElixirSpells
|
||||||
{
|
{
|
||||||
SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1 = 16595,
|
SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1 = 16595,
|
||||||
@@ -291,7 +394,6 @@ enum eNoggenfoggerElixirSpells
|
|||||||
SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3 = 16591,
|
SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3 = 16591,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 16589 Noggenfogger Elixir
|
|
||||||
class spell_item_noggenfogger_elixir : public SpellScriptLoader
|
class spell_item_noggenfogger_elixir : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -339,6 +441,8 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// http://www.wowhead.com/item=6657 Savory Deviate Delight
|
||||||
|
// 8213 Savory Deviate Delight
|
||||||
enum eSavoryDeviateDelight
|
enum eSavoryDeviateDelight
|
||||||
{
|
{
|
||||||
SPELL_FLIP_OUT_MALE = 8219,
|
SPELL_FLIP_OUT_MALE = 8219,
|
||||||
@@ -347,7 +451,6 @@ enum eSavoryDeviateDelight
|
|||||||
SPELL_YAAARRRR_FEMALE = 8222,
|
SPELL_YAAARRRR_FEMALE = 8222,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 8213 Savory Deviate Delight
|
|
||||||
class spell_item_savory_deviate_delight : public SpellScriptLoader
|
class spell_item_savory_deviate_delight : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
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
|
enum eUnderbellyElixirSpells
|
||||||
{
|
{
|
||||||
SPELL_UNDERBELLY_ELIXIR_TRIGGERED1 = 59645,
|
SPELL_UNDERBELLY_ELIXIR_TRIGGERED1 = 59645,
|
||||||
@@ -400,7 +586,6 @@ enum eUnderbellyElixirSpells
|
|||||||
SPELL_UNDERBELLY_ELIXIR_TRIGGERED3 = 59843,
|
SPELL_UNDERBELLY_ELIXIR_TRIGGERED3 = 59843,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 59640 Underbelly Elixir
|
|
||||||
class spell_item_underbelly_elixir : public SpellScriptLoader
|
class spell_item_underbelly_elixir : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
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()
|
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_deviate_fish();
|
||||||
new spell_item_flask_of_the_north();
|
new spell_item_flask_of_the_north();
|
||||||
new spell_item_gnomish_death_ray();
|
new spell_item_gnomish_death_ray();
|
||||||
new spell_item_make_a_wish();
|
new spell_item_make_a_wish();
|
||||||
|
new spell_item_mingos_fortune_generator();
|
||||||
new spell_item_net_o_matic();
|
new spell_item_net_o_matic();
|
||||||
new spell_item_noggenfogger_elixir();
|
new spell_item_noggenfogger_elixir();
|
||||||
new spell_item_savory_deviate_delight();
|
new spell_item_savory_deviate_delight();
|
||||||
|
new spell_item_six_demon_bag();
|
||||||
new spell_item_underbelly_elixir();
|
new spell_item_underbelly_elixir();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,15 +23,153 @@
|
|||||||
|
|
||||||
#include "ScriptPCH.h"
|
#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
|
private:
|
||||||
QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female
|
uint32 _spellEffect;
|
||||||
QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT = 45456 // Arcane Prisoner Kill Credit
|
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
|
// http://www.wowhead.com/quest=11587 Prison Break
|
||||||
// 45449 Arcane Prisoner Rescue
|
// 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
|
class spell_q11587_arcane_prisoner_rescue : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -41,11 +179,11 @@ public:
|
|||||||
{
|
{
|
||||||
bool Validate(SpellEntry const * /*spellEntry*/)
|
bool Validate(SpellEntry const * /*spellEntry*/)
|
||||||
{
|
{
|
||||||
if (!sSpellStore.LookupEntry(QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_ARCANE_PRISONER_MALE))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_ARCANE_PRISONER_FEMALE))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT))
|
if (!sSpellStore.LookupEntry(SPELL_ARCANE_PRISONER_KILL_CREDIT))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -55,11 +193,11 @@ public:
|
|||||||
Unit* caster = GetCaster();
|
Unit* caster = GetCaster();
|
||||||
if (Unit* unitTarget = GetHitUnit())
|
if (Unit* unitTarget = GetHitUnit())
|
||||||
{
|
{
|
||||||
uint32 spellId = QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE;
|
uint32 spellId = SPELL_SUMMON_ARCANE_PRISONER_MALE;
|
||||||
if (rand() % 2)
|
if (rand() % 2)
|
||||||
spellId = QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE;
|
spellId = SPELL_SUMMON_ARCANE_PRISONER_FEMALE;
|
||||||
caster->CastSpell(caster, spellId, true);
|
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,14 +213,16 @@ 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_SUMMON_SCAVENGEBOT_004A8 = 46063,
|
||||||
SPELL_QUEST_SUMMON_SENTRYBOT_57K = 46068,
|
SPELL_SUMMON_SENTRYBOT_57K = 46068,
|
||||||
SPELL_QUEST_SUMMON_DEFENDOTANK_66D = 46058,
|
SPELL_SUMMON_DEFENDOTANK_66D = 46058,
|
||||||
SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6 = 46066,
|
SPELL_SUMMON_SCAVENGEBOT_005B6 = 46066,
|
||||||
SPELL_QUEST_SUMMON_55D_COLLECTATRON = 46034,
|
SPELL_SUMMON_55D_COLLECTATRON = 46034,
|
||||||
SPELL_QUEST_ROBOT_KILL_CREDIT = 46027,
|
SPELL_ROBOT_KILL_CREDIT = 46027,
|
||||||
NPC_SCAVENGEBOT_004A8 = 25752,
|
NPC_SCAVENGEBOT_004A8 = 25752,
|
||||||
NPC_SENTRYBOT_57K = 25753,
|
NPC_SENTRYBOT_57K = 25753,
|
||||||
NPC_DEFENDOTANK_66D = 25758,
|
NPC_DEFENDOTANK_66D = 25758,
|
||||||
@@ -90,8 +230,6 @@ enum Quest11730Spells
|
|||||||
NPC_55D_COLLECTATRON = 25793
|
NPC_55D_COLLECTATRON = 25793
|
||||||
};
|
};
|
||||||
|
|
||||||
// http://www.wowhead.com/quest=11730 Master and Servant
|
|
||||||
// 46023 The Ultrasonic Screwdriver
|
|
||||||
class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader
|
class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -101,17 +239,17 @@ public:
|
|||||||
{
|
{
|
||||||
bool Validate(SpellEntry const * /*spellEntry*/)
|
bool Validate(SpellEntry const * /*spellEntry*/)
|
||||||
{
|
{
|
||||||
if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_SCAVENGEBOT_004A8))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SENTRYBOT_57K))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_SENTRYBOT_57K))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_DEFENDOTANK_66D))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_DEFENDOTANK_66D))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_SCAVENGEBOT_005B6))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_55D_COLLECTATRON))
|
if (!sSpellStore.LookupEntry(SPELL_SUMMON_55D_COLLECTATRON))
|
||||||
return false;
|
return false;
|
||||||
if (!sSpellStore.LookupEntry(SPELL_QUEST_ROBOT_KILL_CREDIT))
|
if (!sSpellStore.LookupEntry(SPELL_ROBOT_KILL_CREDIT))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -133,16 +271,16 @@ public:
|
|||||||
uint32 spellId = 0;
|
uint32 spellId = 0;
|
||||||
switch (pTarget->GetEntry())
|
switch (pTarget->GetEntry())
|
||||||
{
|
{
|
||||||
case NPC_SCAVENGEBOT_004A8: spellId = SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8; break;
|
case NPC_SCAVENGEBOT_004A8: spellId = SPELL_SUMMON_SCAVENGEBOT_004A8; break;
|
||||||
case NPC_SENTRYBOT_57K: spellId = SPELL_QUEST_SUMMON_SENTRYBOT_57K; break;
|
case NPC_SENTRYBOT_57K: spellId = SPELL_SUMMON_SENTRYBOT_57K; break;
|
||||||
case NPC_DEFENDOTANK_66D: spellId = SPELL_QUEST_SUMMON_DEFENDOTANK_66D; break;
|
case NPC_DEFENDOTANK_66D: spellId = SPELL_SUMMON_DEFENDOTANK_66D; break;
|
||||||
case NPC_SCAVENGEBOT_005B6: spellId = SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6; break;
|
case NPC_SCAVENGEBOT_005B6: spellId = SPELL_SUMMON_SCAVENGEBOT_005B6; break;
|
||||||
case NPC_55D_COLLECTATRON: spellId = SPELL_QUEST_SUMMON_55D_COLLECTATRON; break;
|
case NPC_55D_COLLECTATRON: spellId = SPELL_SUMMON_55D_COLLECTATRON; break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pCaster->CastSpell(pCaster, spellId, true, castItem);
|
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();
|
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,
|
SPELL_TRIGGER_AID_OF_THE_EARTHEN = 55809,
|
||||||
NPC_FALLEN_EARTHEN_DEFENDER = 30035,
|
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
|
class spell_q12937_relief_for_the_fallen : public SpellScriptLoader
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -243,6 +381,10 @@ public:
|
|||||||
|
|
||||||
void AddSC_quest_spell_scripts()
|
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_q11587_arcane_prisoner_rescue();
|
||||||
new spell_q11730_ultrasonic_screwdriver();
|
new spell_q11730_ultrasonic_screwdriver();
|
||||||
new spell_q12683_take_sputum_sample();
|
new spell_q12683_take_sputum_sample();
|
||||||
|
|||||||
Reference in New Issue
Block a user