diff options
author | Aokromes <Aokromes@users.noreply.github.com> | 2016-11-23 02:31:48 +0100 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2018-02-11 14:49:18 +0100 |
commit | 258a06b278f917ca1ba5ac1e45b70159eb6fe38b (patch) | |
tree | 3773350041be9d0bf7f57a210ae1733555fd17b0 | |
parent | b3e2684675c34729f35915d6c1b3b6ecb7abde00 (diff) |
Merge pull request #18094 from Staleness89/3.3.5
Script/Quest: Rivenwood Captives
(cherry picked from commit 8a864fc0853f2a70ee666466d44ab4fab6ddfc4a)
-rw-r--r-- | sql/updates/world/master/2018_02_11_03_world_2016_11_23_00_world.sql | 49 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_howling_fjord.cpp | 69 |
2 files changed, 118 insertions, 0 deletions
diff --git a/sql/updates/world/master/2018_02_11_03_world_2016_11_23_00_world.sql b/sql/updates/world/master/2018_02_11_03_world_2016_11_23_00_world.sql new file mode 100644 index 00000000000..ccbb4b3a6cf --- /dev/null +++ b/sql/updates/world/master/2018_02_11_03_world_2016_11_23_00_world.sql @@ -0,0 +1,49 @@ +-- Remove incomplete SAI and set core scriptname +DELETE FROM `smart_scripts` WHERE `entryorguid`=24210; +UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_riven_widow_cocoon' WHERE `entry`= 24210; + +-- add UNIT_FLAG_PACIFIED to Riven Widow Cocoon and disable experience +UPDATE `creature_template` SET `unit_flags`=`unit_flags`|131072 AND `flags_extra`=`flags_extra`|64 WHERE `entry`=24210; + +-- set creatures that spawn to SmartAI (the ones that aren't already) +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (24026,24073,24219); + +-- Add an attack summoner on just summoned to each creature. Some of these creatures already have SmartAI, did all this to avoid errors. +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23661,23662,23666,23669,23959,23989,23990,23991,24026,24073,24219,24211); +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 +(24219,0, 0,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Baby Riven Widow - On Just Summoned - Attack Summoner'), +(24073,0, 0,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Fearsome Horror - On Just Summoned - Attack Summoner'), +(23661,0, 0,1, 8,0,100, 0, 43036, 0, 0, 0, 11, 43059, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,"Winterskorn Tribesman - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Vrykul On Dismember'"), +(23661,0, 3,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Winterskorn Tribesman - On Just Summoned - Attack Summoner'), +(23661,0, 1,0, 61,0,100, 0, 0, 0, 0, 0, 11, 43037, 0,0,0,0,0, 7, 0, 0,0,0,0,0,0,"Winterskorn Tribesman - On Aggro - Cast 'Gruesome, But Necessary: Kill Credit'"), +(23661,0, 2,0, 0,0,100, 0, 1000, 15000, 7200, 35000, 1, 0, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Winterskorn Tribesman - In Combat - Say Line 0'), +(23666,0, 4,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Winterskorn Berserker - On Just Summoned - Attack Summoner'), +(23666,0, 0,1, 8,0,100, 0, 43036, 0, 0, 0, 11, 43059, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,"Winterskorn Berserker - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Vrykul On Dismember'"), +(23666,0, 1,0, 61,0,100, 0, 0, 0, 0, 0, 11, 43037, 0,0,0,0,0, 7, 0, 0,0,0,0,0,0,"Winterskorn Berserker - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Kill Credit'"), +(23666,0, 2,0, 0,0,100, 0, 1000, 15000, 7200, 35000, 1, 0, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Winterskorn Berserker - In Combat - Say Line 0'), +(23666,0, 3,0, 1,0,100, 0, 0, 60000, 15000, 70000, 1, 1, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Winterskorn Berserker - Out of Combat - Say Line 1'), +(23991,0, 0,0, 4,0, 50, 1, 0, 0, 0, 0, 1, 0, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Gjalerbron Warrior - On Aggro - Say (No Repeat)'), +(23991,0, 1,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Gjalerbron Warrior - On Just Summoned - Attack Summoner'), +(23990,0, 0,0, 4,0, 50, 1, 0, 0, 0, 0, 1, 0, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Gjalerbron Rune-Caster - On Aggro - Say (No Repeat)'), +(23990,0, 1,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Gjalerbron Runecaster - On Just Summoned - Attack Summoner'), +(23989,0, 0,0, 4,0, 50, 1, 0, 0, 0, 0, 1, 0, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Gjalerbron Sleep-Watcher - On Aggro - Say (No Repeat)'), +(23989,0, 1,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Gjalerbron SleepWatcher - On Just Summoned - Attack Summoner'), +(23669,0, 0,0, 0,0,100, 0, 1000, 3500, 3000, 9000, 11, 43083, 0,0,0,0,0, 2, 0, 0,0,0,0,0,0,"Winterskorn Oracle - In Combat - Cast 'Frostbolt'"), +(23669,0, 1,2, 8,0,100, 0, 43036, 0, 0, 0, 11, 43059, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,"Winterskorn Oracle - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Vrykul On Dismember'"), +(23669,0, 1,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Winterskorn Oracle - On Just Summoned - Attack Summoner'), +(23669,0, 2,0, 61,0,100, 0, 0, 0, 0, 0, 11, 43037, 0,0,0,0,0, 7, 0, 0,0,0,0,0,0,"Winterskorn Oracle - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Kill Credit'"), +(23669,0, 3,0, 0,0,100, 0, 1000, 15000, 7200, 35000, 5, 1, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Winterskorn Oracle - In Combat - Say Line 0'), +(23959,0, 0,0, 38,0,100, 0, 0, 1, 0, 0, 69, 1, 0,0,0,0,0, 19, 24230,50,0,0,0,0,0,"Darkclaw Bat - On Data Set 0 1 - Move To Closest Creature 'Feknut's Firecrackers Bunny'"), +(23959,0, 1,0, 34,0,100, 512, 0, 1, 0, 0, 45, 0, 1,0,0,0,0, 19, 24230, 5,0,0,0,0,0,'Darkclaw Bat - On Reached Point 1 - Set Data 0 1'), +(23959,0, 2,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Darkclaw Bat - On Just Summoned - Attack Summoner'), +(23662,0, 0,0, 0,0,100, 0, 100, 1000, 5000, 14500, 11, 38557, 0,0,0,0,0, 2, 0, 0,0,0,0,0,0,"Winterskorn Woodsman - In Combat - Cast 'Throw'"), +(23662,0, 1,0, 0,0,100, 0, 1000, 4500, 4900, 8100, 11, 43410, 0,0,0,0,0, 2, 0, 0,0,0,0,0,0,"Winterskorn Woodsman - In Combat - Cast 'Chop'"), +(23662,0, 2,3, 8,0,100, 0, 43036, 0, 0, 0, 11, 43059, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,"Winterskorn Woodsman - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Vrykul On Dismember'"), +(23662,0, 2,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Winterskorn Woodsman - On Just Summoned - Attack Summoner'), +(23662,0, 3,0, 61,0,100, 0, 0, 0, 0, 0, 11, 43037, 0,0,0,0,0, 7, 0, 0,0,0,0,0,0,"Winterskorn Woodsman - On Spellhit 'Dismembering Corpse' - Cast 'Gruesome, But Necessary: Kill Credit'"), +(23662,0, 4,0, 0,0,100, 0, 1000, 15000, 7200, 35000, 1, 0, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Winterskorn Woodsman - In Combat - Say Line 0'), +(24026,0, 0,0, 54,0,100, 512, 0, 0, 0, 0, 49, 0, 0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Fanggore Worg - On Just Summoned - Attack Summoner'), +(24211,0, 1,2, 61,0,100, 512, 0, 0, 0, 0, 29, 0,0,0,0,0,0, 23, 0, 0,0,0,0,0,0,'Freed Winterhoof Longrunner - On Just Summoned - Follow Summoner'), +(24211,0, 2,0, 61,0,100, 512, 0, 0, 0, 0, 41, 6000, 0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Freed Winterhoof Longrunner - On Just Summoned - Despawn In 6000 ms'), +(24211,0, 0,1, 54,0,100, 512, 0, 0, 0, 0, 1, 0,0,0,0,0,0, 1, 0, 0,0,0,0,0,0,'Freed Winterhoof Longrunner - On Just Summoned - Say Line 0'); + diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp index 4de402bd4f2..c1b499f2984 100644 --- a/src/server/scripts/Northrend/zone_howling_fjord.cpp +++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp @@ -586,6 +586,74 @@ class spell_mindless_abomination_explosion_fx_master : public SpellScriptLoader } }; +enum SummonSpells +{ + SPELL_SUMMON_BABY_RIVEN_WIDOWS = 43275, + SPELL_SUMMON_DARKCLAW_BAT = 43276, + SPELL_SUMMON_FANGGORE_WORG = 43277, + SPELL_SUMMON_GJALERBRON_RUNECASTER = 43278, + SPELL_SUMMON_GJALERBRON_SLEEPWATCHER = 43279, + SPELL_SUMMON_GJALERBRON_WARRIOR = 43280, + SPELL_SUMMON_PUTRID_HORROR = 43281, + SPELL_SUMMON_WINTERSKORN_BERSERKER = 43282, + SPELL_SUMMON_WINTERSKORN_WOODSMAN = 43283, + SPELL_SUMMON_WINTERSKORN_TRIBESMAN = 43284, + SPELL_SUMMON_WINTERSKORN_ORACLE = 43285, + SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT = 43289, + NPC_MIST_WHISPER_SCOUT = 24211 +}; + +const uint32 rivenWidowCocoonVictims[11] = +{ + SPELL_SUMMON_BABY_RIVEN_WIDOWS, + SPELL_SUMMON_DARKCLAW_BAT, + SPELL_SUMMON_FANGGORE_WORG, + SPELL_SUMMON_GJALERBRON_RUNECASTER, + SPELL_SUMMON_GJALERBRON_SLEEPWATCHER, + SPELL_SUMMON_GJALERBRON_WARRIOR, + SPELL_SUMMON_PUTRID_HORROR, + SPELL_SUMMON_WINTERSKORN_BERSERKER, + SPELL_SUMMON_WINTERSKORN_WOODSMAN, + SPELL_SUMMON_WINTERSKORN_TRIBESMAN, + SPELL_SUMMON_WINTERSKORN_ORACLE +}; + +class npc_riven_widow_cocoon : public CreatureScript +{ +public: + npc_riven_widow_cocoon() : CreatureScript("npc_riven_widow_cocoon") { } + + struct npc_riven_widow_cocoonAI : public ScriptedAI + { + npc_riven_widow_cocoonAI(Creature* creature) : ScriptedAI(creature) { } + + void Reset() override { } + void EnterCombat(Unit* /*who*/) override { } + void MoveInLineOfSight(Unit* /*who*/) override { } + + void JustDied(Unit* killer) override + { + Player* player = killer->ToPlayer(); + + if (!player) + return; + + if (roll_chance_i(20)) + { + player->CastSpell(me, SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT, true); + player->KilledMonsterCredit(NPC_MIST_WHISPER_SCOUT); + } + else + player->CastSpell(me, rivenWidowCocoonVictims[urand(0, 10)], true); + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_riven_widow_cocoonAI(creature); + } +}; + void AddSC_howling_fjord() { new npc_apothecary_hanes(); @@ -594,4 +662,5 @@ void AddSC_howling_fjord() new npc_daegarn(); new npc_mindless_abomination(); new spell_mindless_abomination_explosion_fx_master(); + new npc_riven_widow_cocoon(); } |