diff options
author | Nay <dnpd.dd@gmail.com> | 2011-07-07 18:56:44 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2011-07-07 18:56:44 +0100 |
commit | 0c23e1597a6bf2fd5265ae65d30b5a2cab5ee42e (patch) | |
tree | 91ff2f5721c2b06a802fe382db7ef9668fb02fc2 | |
parent | 6bf75970438e3f5fcd1f92538f0741549ac09b34 (diff) |
DB/Misc: Add scripts & gossip to npc 10578; Template update and auras for corpses in Grizzly Hills; Remove a console error (Closes #2247)
-rw-r--r-- | sql/scripts/world_scripts_full.sql | 2 | ||||
-rw-r--r-- | sql/updates/world/2011_07_07_00_world_creature.sql | 13 | ||||
-rw-r--r-- | sql/updates/world/2011_07_07_01_world_misc.sql | 32 | ||||
-rw-r--r-- | sql/updates/world/2011_07_07_01_world_spell_script_names.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Kalimdor/durotar.cpp | 55 |
5 files changed, 105 insertions, 0 deletions
diff --git a/sql/scripts/world_scripts_full.sql b/sql/scripts/world_scripts_full.sql index e045235d83f..4304dee41bf 100644 --- a/sql/scripts/world_scripts_full.sql +++ b/sql/scripts/world_scripts_full.sql @@ -2276,6 +2276,8 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES -- Zalazane's Fall ( 75420, 'spell_mount_check'), ( 75102, 'spell_voljin_war_drums'), +-- Durotar +( 17009, 'spell_voodoo'), -- Dustwallow Marsh ( 42489, 'spell_ooze_zap'), ( 42485, 'spell_ooze_zap_channel_end'), diff --git a/sql/updates/world/2011_07_07_00_world_creature.sql b/sql/updates/world/2011_07_07_00_world_creature.sql new file mode 100644 index 00000000000..009a9fb8083 --- /dev/null +++ b/sql/updates/world/2011_07_07_00_world_creature.sql @@ -0,0 +1,13 @@ +UPDATE `creature_template` SET `dynamicflags`=32 WHERE `entry` IN (27457,27481,26513,26516); -- Skirmisher Corpse, Westfall Infantry Corpse, Drakkari Shaman Corpse, Drakkari Warrior Corpse + +DELETE FROM `creature_template_addon` WHERE `entry` IN (27457,27481); +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(27457,0,0,1,0, '29266'), -- Skirmisher Corpse (Permanent Feign Death) +(27481,0,0,1,0, '29266'); -- Westfall Infantry Corpse (Permanent Feign Death) + +UPDATE `creature_template_addon` SET `bytes1`=0,`bytes2`=1,`mount`=0,`emote`=0,`auras`='29266' WHERE `entry` IN (26513,26516); -- Drakkari Shaman Corpse (Permanent Feign Death) + +UPDATE `creature` SET `MovementType`=0, `spawndist`=0 WHERE `id` IN (27457,27481,26513,26516); +DELETE FROM `creature_addon` WHERE `guid` IN (102034,102035,102036,102037,102038,102041,102042,102043,102044,102045,102046,102047,103956,103957,103958,103959,103960,103972,103973,103974,103975,103976,103977,103978,103984,103985,103986,103987); + +DELETE FROM `creature_ai_scripts` WHERE `creature_id`=27570; diff --git a/sql/updates/world/2011_07_07_01_world_misc.sql b/sql/updates/world/2011_07_07_01_world_misc.sql new file mode 100644 index 00000000000..066656343c7 --- /dev/null +++ b/sql/updates/world/2011_07_07_01_world_misc.sql @@ -0,0 +1,32 @@ +DELETE FROM `gossip_menu_option` WHERE `menu_id`=3062 AND `id` BETWEEN 0 AND 6; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`) VALUES +(3062,0,0, 'Low spirits', 1,1), +(3062,1,0, 'Bad hang nail', 1,1), +(3062,2,0, 'Feeling underpowered', 1,1), +(3062,3,0, 'Jungle Fever', 1,1), +(3062,4,0, 'Uni-brow', 1,1), +(3062,5,0, 'Whiplash', 1,1), +(3062,6,0, 'I don''t want to go back to work', 1,1); + +DELETE FROM `creature_template_addon` WHERE `entry`=10578; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(10578,0,0,257,0, NULL); -- Bom'bay + +UPDATE `creature` SET `MovementType`=1,`spawndist`=5 WHERE `id`=10578; -- rand movement +UPDATE `creature_template` SET `AIName`='SmartAI',`MovementType`=1 WHERE `entry`=10578; + +DELETE FROM `smart_scripts` WHERE (`entryorguid`=10578 AND `source_type`=0); +DELETE FROM `smart_scripts` WHERE (`entryorguid`=1057800 AND `source_type`=9); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(10578, 0, 0, 0, 62, 0, 100, 0, 3062, 0, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 0 run timed action list'), +(10578, 0, 1, 0, 62, 0, 100, 0, 3062, 1, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 1 run timed action list'), +(10578, 0, 2, 0, 62, 0, 100, 0, 3062, 2, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 2 run timed action list'), +(10578, 0, 3, 0, 62, 0, 100, 0, 3062, 3, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 3 run timed action list'), +(10578, 0, 4, 0, 62, 0, 100, 0, 3062, 4, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 4 run timed action list'), +(10578, 0, 5, 0, 62, 0, 100, 0, 3062, 5, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 5 run timed action list'), +(10578, 0, 6, 0, 62, 0, 100, 0, 3062, 6, 0, 0, 80, 10578*100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - On gossip select 6 run timed action list'), +(10578, 0, 7, 0, 1, 0, 100, 0, 1000, 1000, 20000, 40000, 10, 153, 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - Every 20-40 seconds do random emote'), +(1057800, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - Close gossip'), +-- could use a stop movement here +(1057800, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 4, 6482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - Play a sound'), +(1057800, 9, 2, 0, 0, 0, 100, 0, 100, 100, 0, 0, 11, 17009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Bom''bay - Cast Voodoo'); diff --git a/sql/updates/world/2011_07_07_01_world_spell_script_names.sql b/sql/updates/world/2011_07_07_01_world_spell_script_names.sql new file mode 100644 index 00000000000..50483434dc0 --- /dev/null +++ b/sql/updates/world/2011_07_07_01_world_spell_script_names.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_voodoo'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(17009, 'spell_voodoo'); diff --git a/src/server/scripts/Kalimdor/durotar.cpp b/src/server/scripts/Kalimdor/durotar.cpp index e08010d46e5..113afdc2e77 100644 --- a/src/server/scripts/Kalimdor/durotar.cpp +++ b/src/server/scripts/Kalimdor/durotar.cpp @@ -508,6 +508,60 @@ class spell_voljin_war_drums : public SpellScriptLoader } }; +enum VoodooSpells +{ + SPELL_BREW = 16712, // Special Brew + SPELL_GHOSTLY = 16713, // Ghostly + SPELL_HEX1 = 16707, // Hex + SPELL_HEX2 = 16708, // Hex + SPELL_HEX3 = 16709, // Hex + SPELL_GROW = 16711, // Grow + SPELL_LAUNCH = 16716, // Launch (Whee!) +}; + +// 17009 +class spell_voodoo : public SpellScriptLoader +{ + public: + spell_voodoo() : SpellScriptLoader("spell_voodoo") {} + + class spell_voodoo_SpellScript : public SpellScript + { + PrepareSpellScript(spell_voodoo_SpellScript) + + bool Validate(SpellEntry const* /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_BREW) || !sSpellStore.LookupEntry(SPELL_GHOSTLY) || + !sSpellStore.LookupEntry(SPELL_HEX1) || !sSpellStore.LookupEntry(SPELL_HEX2) || + !sSpellStore.LookupEntry(SPELL_HEX3) || !sSpellStore.LookupEntry(SPELL_GROW) || + !sSpellStore.LookupEntry(SPELL_LAUNCH)) + return false; + return true; + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + if (Unit* target = GetHitUnit()) + { + caster->CastSpell(target, RAND(SPELL_BREW, SPELL_GHOSTLY, + RAND(SPELL_HEX1, SPELL_HEX2, SPELL_HEX3), + SPELL_GROW, SPELL_LAUNCH), false); + } + } + + void Register() + { + OnEffect += SpellEffectFn(spell_voodoo_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_voodoo_SpellScript(); + } +}; + void AddSC_durotar() { new npc_lazy_peon(); @@ -516,4 +570,5 @@ void AddSC_durotar() new npc_troll_volunteer(); new spell_mount_check(); new spell_voljin_war_drums(); + new spell_voodoo(); }
\ No newline at end of file |