aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-06-16 17:52:54 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-01-29 21:51:03 +0100
commit5baf6ea4d95d5690272a83175c5a47ceefbc0c06 (patch)
treef1150958170a247363af5198d9b08bd10f8d0fab
parent5d8172f2d751f10cda035cfed48ec5495b1cabe9 (diff)
Merge branch '3.3.5-frogger' into 3.3.5 (PR #17261)
(cherry picked from commit 90ff3ce8c8256796cb637fba52e8ae38a0751176)
-rw-r--r--sql/updates/world/master/2017_01_29_17_world_2016_06_16_00_world.sql16
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp15
-rw-r--r--src/server/scripts/Northrend/Naxxramas/naxxramas.h6
3 files changed, 36 insertions, 1 deletions
diff --git a/sql/updates/world/master/2017_01_29_17_world_2016_06_16_00_world.sql b/sql/updates/world/master/2017_01_29_17_world_2016_06_16_00_world.sql
new file mode 100644
index 00000000000..f6958ad4dc7
--- /dev/null
+++ b/sql/updates/world/master/2017_01_29_17_world_2016_06_16_00_world.sql
@@ -0,0 +1,16 @@
+-- delete frogger spawn locations from `creature`, move them to `creature_summon_groups`
+SET @FROGGER = 16027;
+DELETE FROM `creature` WHERE `id` = @FROGGER;
+DELETE FROM `creature_summon_groups` WHERE `summonerId`=533 AND `summonerType`=2;
+INSERT INTO `creature_summon_groups` (`summonerType`,`summonerId`,`groupId`,`entry`,`position_x`,`position_y`,`position_z`,`orientation`,`summonType`,`summonTime`) VALUES
+(2,533,0,@FROGGER,3175.281,-3134.764,293.4368,4.244924,3,7500),
+(2,533,1,@FROGGER,3154.581,-3126.18 ,293.5911,4.430199,3,7500),
+(2,533,2,@FROGGER,3128.622,-3119.604,293.4113,4.738929,3,7500);
+DELETE FROM `waypoint_data` WHERE `id` BETWEEN @FROGGER*10+0 AND @FROGGER*10+2;
+INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`) VALUES
+(@FROGGER*10+0,1,3158.253,-3163.889,293.3027),
+(@FROGGER*10+1,1,3145.881,-3158.563,293.3215),
+(@FROGGER*10+2,1,3130.79 ,-3156.624,293.3239);
+DELETE FROM `smart_scripts` WHERE `entryorguid` BETWEEN -76313 AND -76311 AND `source_type`=0;
+DELETE FROM `smart_scripts` WHERE `entryorguid`=@FROGGER AND `source_type`=0 AND `id` BETWEEN 2 AND 5;
+UPDATE `creature_template` SET `unit_flags`=(`unit_flags`|256) WHERE `entry`=@FROGGER;
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index b56927664ca..ff8708a1a05 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -123,6 +123,9 @@ class instance_naxxramas : public InstanceMapScript
CurrentWingTaunt = SAY_KELTHUZAD_FIRST_WING_TAUNT;
playerDied = 0;
+
+ nextFroggerWave = 0;
+ events.ScheduleEvent(EVENT_SUMMON_FROGGER_WAVE, Seconds(1));
}
void OnCreatureCreate(Creature* creature) override
@@ -477,6 +480,16 @@ class instance_naxxramas : public InstanceMapScript
kelthuzad->AI()->Talk(CurrentWingTaunt);
++CurrentWingTaunt;
break;
+ case EVENT_SUMMON_FROGGER_WAVE:
+ {
+ std::list<TempSummon*> spawns;
+ instance->SummonCreatureGroup(nextFroggerWave, &spawns);
+ if (!spawns.empty())
+ (*spawns.begin())->GetMotionMaster()->MovePath(10 * NPC_FROGGER + nextFroggerWave, false);
+ events.Repeat(Seconds(1) + Milliseconds(666));
+ nextFroggerWave = (nextFroggerWave+1) % 3;
+ break;
+ }
case EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD:
if (Creature* kelthuzad = instance->GetCreature(KelthuzadGUID))
kelthuzad->AI()->Talk(SAY_DIALOGUE_SAPPHIRON_KELTHUZAD);
@@ -611,6 +624,8 @@ class instance_naxxramas : public InstanceMapScript
/* The Immortal / The Undying */
uint32 playerDied;
+ int8 nextFroggerWave;
+
EventMap events;
};
diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h
index 17e38b0995a..c5521175d54 100644
--- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h
+++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h
@@ -107,7 +107,8 @@ enum NAXCreaturesIds
NPC_DK_UNDERSTUDY = 16803,
NPC_BIGGLESWORTH = 16998,
NPC_LICH_KING = 16980,
- NPC_OLD_WORLD_TRIGGER = 15384
+ NPC_OLD_WORLD_TRIGGER = 15384,
+ NPC_FROGGER = 16027
};
enum NAXGameObjectsIds
@@ -175,6 +176,9 @@ enum NAXInstanceEvents
// Dialogue that happens after each wing.
EVENT_KELTHUZAD_WING_TAUNT,
+ // Periodic Frogger summon
+ EVENT_SUMMON_FROGGER_WAVE,
+
// Dialogue that happens after Sapphiron's death.
EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD,
EVENT_DIALOGUE_SAPPHIRON_LICHKING,