aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAokromes <Aokromes@users.noreply.github.com>2016-11-23 02:31:48 +0100
committerjoschiwald <joschiwald.trinity@gmail.com>2018-02-11 14:49:18 +0100
commit258a06b278f917ca1ba5ac1e45b70159eb6fe38b (patch)
tree3773350041be9d0bf7f57a210ae1733555fd17b0
parentb3e2684675c34729f35915d6c1b3b6ecb7abde00 (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.sql49
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp69
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();
}