*Ahn'Khalet: GO handling & Prince Taldaram scripting by Tartalo & tlexii

*Cleanup, remove all DB-specific data that needs review from 5700_world.sql -- TDB topic here: http://bit.ly/POdro

--HG--
branch : trunk
This commit is contained in:
maximius
2009-09-20 16:42:35 -07:00
parent 43e61c2e27
commit 6c90f1f89a
8 changed files with 395 additions and 320 deletions
+11 -1
View File
@@ -1904,6 +1904,16 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1`
(28860,-1615041,'A Vesperon Disciple appears in the Twilight!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,5,0,0,'shadron WHISPER_VESPERON_DICIPLE'),
(28860,-1615042,'%s begins to open a Twilight Portal!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,5,0,0,'sartharion drake WHISPER_OPEN_PORTAL'),
-- -1 619 000 AHN'KAHET: THE OLD KINGDOM
(29308,-1619021,'I will feast on your remains.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_AGGRO'),
(29308,-1619022,'I will drink no blood before it''s time.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_SLAY_1'),
(29308,-1618023,'One final embrace.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_SLAY_2'),
(29308,-1618024,'Still I hunger, still I thirst.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_DEATH'),
(29308,-1618025,'So appetizing.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_FEED1'),
(29308,-1618026,'Fresh, warm blood. It has been too long.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_FEED2'),
(29308,-1618027,'Your heartbeat is music to my ears.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_VANISH1'),
(29308,-1618028,'I am nowhere. I am everywhere. I am the watcher, unseen.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'prince taldaram SAY_VANISH2'),
-- -1 999 900+ - RANDOM
(0,-1999900,'Let the games begin.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8280,1,0,0,'example_creature SAY_AGGRO'),
(0,-1999901,'I see endless suffering. I see torment. I see rage. I see everything.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8831,1,0,0,'example_creature SAY_RANDOM_0'),
@@ -2202,7 +2212,7 @@ INSERT INTO `game_event_npc_gossip` (`guid`,`event_id`,`textid`) VALUES
DELETE FROM `npc_text` WHERE `ID` IN (16000,16001);
INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`prob0`,`lang0`) VALUES
(16000,'The current situation in the front lines look like this:$B$B Iron $2000w % $B Thorium $2001w % $B Stranglekeep $2002w % $B Arthas Tears $2003w % $B Light Leather $2004w % $B Medium Leather $2005w % $B Linen Bandages $2006w % $B Silk Bandages $2007w % $B Rainbow Fin Albacore $2008w % $B Roast Raptor $2009w % $B$B Allongside with the Horde, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.','The current situation in the front lines look like this:$B$B Iron $2000w % $B Thorium $2001w % $B Stranglekeep $2002w % $B Arthas Tears $2003w % $B Light Leather $2004w % $B Medium Leather $2005w % $B Linen Bandages $2006w % $B Silk Bandages $2007w % $B Rainbow Fin Albacore $2008w % $B Roast Raptor $2009w % $B$B Allongside with the Horde, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.',100,0),
(16001,'The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B PeaceBloom $2012w % $B FireBloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.','The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B PeaceBloom $2012w % $B FireBloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.',100,0);
(16001,'The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B Peacebloom $2012w % $B Firebloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.','The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B Peacebloom $2012w % $B Firebloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.',100,0);
DELETE FROM `npc_gossip` WHERE `npc_guid` IN (135161,135162);
INSERT INTO `npc_gossip` (`npc_guid`,`textid`) VALUES
(135161,16000),
+4 -2
View File
@@ -173,9 +173,12 @@ UPDATE `creature_template` SET `ScriptName`='mob_voidtraveler' WHERE `entry`=192
/* AZJOL-NERUB */
/* AHN'KAHET: THE OLD KINGDOM */
UPDATE `instance_template` SET `script`='instance_ahnkahet' WHERE `map`=619;
UPDATE `creature_template` SET `ScriptName`='boss_elder_nadox' WHERE `entry`=29309;
UPDATE `creature_template` SET `ScriptName`='mob_ahnkahar_nerubian' WHERE `entry` IN (30176,30178);
UPDATE `instance_template` SET `script`='instance_ahnkahet' WHERE `map`=619;
UPDATE `creature_template` SET `ScriptName`='boss_taldaram' WHERE `entry`=29308;
UPDATE `creature_template` SET `ScriptName`='mob_taldaram_flamesphere' WHERE `entry` IN (30106,31686,31687);
UPDATE `gameobject_template` SET `ScriptName`='prince_taldaram_sphere' WHERE `entry` IN (193093,193094);
/* AZSHARA */
UPDATE `creature_template` SET `ScriptName`='mobs_spitelashes' WHERE `entry` IN (6190,6193,6194,6195,6196,7885,7886,12204,12205);
@@ -1100,7 +1103,6 @@ UPDATE `creature_template` SET `ScriptName`='mob_lightning_elemental' WHERE `ent
UPDATE `creature_template` SET `ScriptName`='mob_rune_of_summoning' WHERE `entry`=33051;
UPDATE `creature_template` SET `ScriptName`='boss_kologarn' WHERE `entry`=32930;
/* UN'GORO CRATER */
UPDATE `creature_template` SET `ScriptName`='npc_ame' WHERE `entry`=9623;
UPDATE `creature_template` SET `ScriptName`='npc_ringo' WHERE `entry`=9999;
+2 -275
View File
@@ -1,6 +1,4 @@
-- A LOT of this file needs to be included in TDB!!
-- Sunken temple (already in world_scripts_full.sql)
UPDATE `instance_template` SET `script`='instance_sunken_temple' WHERE `map`=109;
UPDATE `gameobject_template` SET `ScriptName`='go_atalai_statue' WHERE `entry` IN (148830,148831,148832,148833,148834,148835);
@@ -13,7 +11,7 @@ INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES (4017,'at_twilig
UPDATE `creature_template` SET `ScriptName`='boss_twilight_corrupter' WHERE `entry`=15625;
-- quest data: Long Forgotten Memories
UPDATE `quest_template` SET `method`=0 WHERE `entry`=8305;
-- TDB(???): UPDATE `quest_template` SET `method`=0 WHERE `entry`=8305;
-- quest data: A pawn on the eternal board
-- Already in world_scripts_full.sql
UPDATE `gameobject_template` SET `ScriptName`='go_crystalline_tear' WHERE `entry`=180633;
@@ -55,284 +53,13 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`type`,`emote`
(15378,-1350029,'Succumb to the endless dream, little ones. Let it consume you!',1,53,'MERITHRA_YELL_1'),
(15378,-1350030,'glances at her compatriots.',2,2,'MERITHRA_EMOTE_1');
-- AQ Gates data
UPDATE `game_event` SET `end_time`='2020-12-30 22:00:00',`world_event`=1 WHERE `entry`=22;
UPDATE `game_event` SET `length`=0 WHERE `entry`=22;
INSERT INTO `game_event_creature` (`guid`, `event`) VALUES
(135121,22),(135122,22),(135123,22),(135124,22),(135125,22),
(135126,22),(135127,22),(135128,22),(135129,22),(135130,22),
(135131,22),(135132,22),(135133,22),(135134,22),(135135,22),
(135136,22),(135137,22),(135138,22),(135139,22),(135140,22),
(135141,22),(135142,22),(135143,22),(135144,22),(135145,22),
(135146,22),(135147,22),(135148,22),(135149,22),(135150,22),
(135151,22),(135152,22),(135153,22),(135154,22),(135155,22),
(135156,22),(135157,22),(135158,22),(135159,22),(135160,22),
(135161,22),(135162,22);
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
-- Ironforge NPCs
(135121,15383,0,1,1,0,0,-4929.00,-1226.00,501.66,4.00,180,5,0,844,0,0,1),
(135122,15431,0,1,1,0,0,-4919.80,-1226.16,501.66,4.00,180,0,0,844,0,0,0),
(135123,15432,0,1,1,0,0,-4913.99,-1233.25,501.66,4.00,180,10,0,881,0,0,1),
(135124,15434,0,1,1,0,0,-4949.20,-1272.96,501.66,1.50,180,0,0,6100,0,0,0),
(135125,15437,0,1,1,0,0,-4943.54,-1278.49,501.66,1.50,180,0,0,2000,0,0,0),
(135126,15445,0,1,1,0,0,-4947.45,-1270.83,501.66,1.50,180,0,0,3900,0,0,0),
(135127,15446,0,1,1,0,0,-4979.34,-1171.01,501.66,4.50,180,0,0,6800,0,0,0),
(135128,15448,0,1,1,0,0,-4969.70,-1181.49,501.66,0.00,180,10,0,3400,0,0,1),
(135129,15450,0,1,1,0,0,-4976.90,-1183.89,501.66,0.00,180,10,0,881,0,0,1),
(135130,15451,0,1,1,0,0,-4990.51,-1157.65,501.66,5.00,180,0,0,844,0,0,0),
(135131,15452,0,1,1,0,0,-4980.24,-1152.63,501.66,5.00,180,10,0,2700,0,0,1),
(135132,15453,0,1,1,0,0,-4999.72,-1143.44,501.66,5.00,180,10,0,881,0,0,1),
(135133,15455,0,1,1,0,0,-4940.09,-1274.89,501.66,1.50,180,0,0,844,0,0,0),
(135134,15456,0,1,1,0,0,-4934.47,-1279.39,501.66,2.00,180,0,0,844,0,0,0),
(135135,15457,0,1,1,0,0,-4934.56,-1273.68,501.66,1.80,180,0,0,881,0,0,0),
-- Orgrimmar NPCs
(135136,15459,1,1,1,0,0,1647.23,-4123.34,31.234,1.70,180,0,0,807,0,0,0),
(135137,15460,1,1,1,0,0,1663.15,-4113.42,34.156,1.70,180,0,0,844,0,0,0),
(135138,15469,1,1,1,0,0,1656.99,-4116.07,33.160,1.70,180,0,0,881,0,0,0),
(135139,15477,1,1,1,0,0,1616.93,-4143.40,34.560,1.50,180,0,0,5960,0,0,0),
(135140,15508,1,1,1,0,0,1623.98,-4148.34,35.990,1.70,180,0,0,6430,0,0,0),
(135141,15512,1,1,1,0,0,1630.03,-4152.75,38.420,1.90,180,0,0,5000,0,0,0),
(135142,15515,1,1,1,0,0,1586.35,-4181.89,40.310,3.14,180,0,0,5960,0,0,0),
(135143,15522,1,1,1,0,0,1590.62,-4159.70,36.920,3.14,180,0,0,5000,0,0,0),
(135144,15525,1,1,1,0,0,1594.49,-4172.66,39.220,3.00,180,0,0,5000,0,0,0),
(135145,15528,1,1,1,0,0,1580.69,-4119.78,34.440,4.61,180,0,0,5960,0,0,0),
(135146,15529,1,1,1,0,0,1572.15,-4122.62,36.280,4.85,180,0,0,5000,0,0,0),
(135147,15532,1,1,1,0,0,1567.91,-4127.32,37.000,5.02,180,0,0,5000,0,0,0),
(135148,15533,1,1,1,0,0,1641.95,-4086.75,36.700,4.72,180,0,0,807,0,0,0),
(135149,15534,1,1,1,0,0,1632.56,-4095.93,34.210,4.87,180,0,0,844,0,0,0),
(135150,15535,1,1,1,0,0,1630.00,-4108.75,29.400,5.12,180,7,0,15260,0,0,1),
-- War Effort Commanders
(135151,15701,0,1,1,0,0,-4956.31,-1198.15,501.66,0.00,180,0,0,2900,0,0,2),
(135152,15700,1,1,1,0,0,1582.41,-4209.28,42.508,0.00,180,0,0,3400,0,0,2),
-- War Effort Recruiters
(135153,15702,1,1,1,0,0,-1204.90,107.38,134.42,1.6,180,0,0,4120,0,0,0),
(135154,15703,0,1,1,0,0,1573.93,273.84,-43.1,5.3,180,0,0,1700,0,0,0),
(135155,15704,1,1,1,0,0,1648.18,-4405.40,17.43,0,180,15,0,6900,0,0,1),
(135156,15707,0,1,1,0,0,-4972.66,-945.77,501.66,5,180,0,0,1100,0,0,0),
(135157,15708,0,1,1,0,0,-8813.4,654.195,96.0776,4.5185,180,0,0,6900,0,0,0),
(135158,15709,1,1,1,0,0,9951.02,2482.53,1316.20,0,180,10,0,881,0,0,1),
(135159,21155,530,1,1,0,0,9526.54,-7189.49,16.14,1.57,180,0,0,6900,2434,0,0),
(135160,21156,530,1,1,0,0,-3934.23,-11606.23,-138.58,4.5,180,0,0,6900,0,0,0),
-- War Effort Ambassadors
(135161,15539,0,1,1,0,0,-4984.12,-1205.16,501.66,3.14,180,0,0,1800,0,0,0),
(135162,15458,1,1,1,0,0,1632.00,-4116.88,31.24,1.7,180,0,0,910,0,0,0);
-- War Effort Commanders paths
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`) VALUES
(1351510,1,-4992.88,-1148.14,501.66),
(1351510,2,-5018.99,-1182.52,501.66),
(1351510,3,-4981.63,-1217.63,501.66),
(1351510,4,-4941.99,-1263.46,501.66),
(1351510,5,-4920.39,-1242.94,501.66),
(1351510,6,-4896.23,-1254.96,501.87),
(1351510,7,-4920.39,-1242.94,501.66),
(1351510,8,-4945.89,-1206.33,501.66),
(1351510,9,-4933.98,-1176.06,501.68),
(1351510,10,-4956.31,-1198.15,501.66),
(1351520,1,1582.41,-4209.28,42.51),
(1351520,2,1577.13,-4173.25,43.28),
(1351520,3,1604.33,-4124.16,29.67),
(1351520,4,1659.62,-4097.64,33.62),
(1351520,5,1697.91,-4085.99,39.23),
(1351520,6,1660.63,-4095.52,34.52),
(1351520,7,1602.48,-4123.29,29.58),
(1351520,8,1576.30,-4176.98,37.99);
-- War Effort Commanders Mounts
INSERT INTO `creature_template_addon` (`entry`,`mount`) VALUES
(15701,14347),
(15700,14573),
(15458,14346),
(15539,14575);
UPDATE `creature_template` SET `MovementType`=2 WHERE `entry` IN(15700,15701);
UPDATE `creature` SET `spawnMask`=0 WHERE `guid`=86424;
UPDATE `creature_template` SET `faction_A`=64,`faction_H`=64 WHERE `entry`=15707;
DELETE `creature_questrelation` FROM `creature_questrelation` WHERE `id`=15452;
DELETE `creature_involvedrelation` FROM `creature_involvedrelation` WHERE `id`=15452;
INSERT INTO `creature_questrelation` (`id`,`quest`) VALUES
(15452,8520),(15452,8521);
INSERT INTO `creature_involvedrelation` (`id`,`quest`) VALUES
(15452,8520),(15452,8521);
UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `entry`=8520;
INSERT INTO `game_event_quest_condition` (`quest`,`event_id`,`condition_id`,`num`) VALUES
-- Alliance only quests
(8495,22,1,20),(8494,22,1,20),
(8500,22,2,20),(8499,22,2,20),
(8504,22,3,20),(8503,22,3,20),
(8510,22,4,20),(8509,22,4,20),
(8512,22,5,10),(8511,22,5,10),
(8514,22,6,10),(8513,22,6,10),
(8518,22,7,20),(8517,22,7,20),
(8521,22,8,20),(8520,22,8,20),
(8525,22,9,20),(8524,22,9,20),
(8527,22,10,20),(8526,22,10,20),
-- Horde only Quests
(8543,22,11,20),(8542,22,11,20),
(8546,22,12,20),(8545,22,12,20),
(8550,22,13,20),(8549,22,13,20),
(8583,22,14,20),(8582,22,14,20),
(8589,22,15,10),(8588,22,15,10),
(8601,22,16,10),(8600,22,16,10),
(8605,22,17,20),(8604,22,17,20),
(8608,22,18,20),(8607,22,18,20),
(8612,22,19,20),(8611,22,19,20),
(8616,22,20,20),(8615,22,20,20),
-- Shared quests
(8493,22,21,20),(8492,22,21,20),(8533,22,21,20),(8532,22,21,20),
(8506,22,22,20),(8505,22,22,20),(8581,22,22,20),(8580,22,22,20),
(8516,22,23,10),(8515,22,23,10),(8591,22,23,10),(8590,22,23,10),
(8523,22,24,20),(8522,22,24,20),(8610,22,24,20),(8609,22,24,20),
(8529,22,25,20),(8528,22,25,20),(8614,22,25,20),(8613,22,25,20);
INSERT INTO `game_event_condition` (`event_id`,`condition_id`,`req_num`,`max_world_state_field`,`done_world_state_field`,`description`) VALUES
-- Alliance reqs
(22,1,28000,0,2000,'Iron'),
(22,2,24000,0,2001,'Thorium'),
(22,3,33000,0,2002,'Stranglekeep'),
(22,4,20000,0,2003,'Arthas Tears'),
(22,5,180000,0,2004,'Light Leather'),
(22,6,110000,0,2005,'Medium Leather'),
(22,7,800000,0,2006,'Linen Bandages'),
(22,8,600000,0,2007,'Silk Bandages'),
(22,9,14000,0,2008,' Rainbow Fin Albacore'),
(22,10,20000,0,2009,'Roast Raptor'),
-- Horde reqs
(22,11,22000,0,2010,'Tin Bars'),
(22,12,18000,0,2011,'Mithril Bars'),
(22,13,96000,0,2012,'PeaceBloom'),
(22,14,19000,0,2013,'FireBloom'),
(22,15,60000,0,2014,'Heavy Leather'),
(22,16,60000,0,2015,'Rugged Leather'),
(22,17,250000,0,2016,'Wool Bandages'),
(22,18,250000,0,2017,'Mageweave Bandages'),
(22,19,10000,0,2018,'Lean Wolf Steaks'),
(22,20,10000,0,2019,'Baked Salmon'),
-- World Reqs
(22,21,90000,0,2020,'Copper'),
(22,22,26000,0,2021,'Purple Lotus'),
(22,23,80000,0,2022,'Thick Leather'),
(22,24,400000,0,2023,'Runecloth Bandages'),
(22,25,17000,0,2024,'Spotted Yellowtail');
-- Already in world_script_texts.sql
INSERT INTO `game_event_npc_gossip` (`guid`,`event_id`,`textid`) VALUES
(135161,22,16000),
(135162,22,16001);
INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`prob0`,`lang0`) VALUES
(16000,'The current situation in the front lines look like this:$B$B Iron $2000w % $B Thorium $2001w % $B Stranglekeep $2002w % $B Arthas Tears $2003w % $B Light Leather $2004w % $B Medium Leather $2005w % $B Linen Bandages $2006w % $B Silk Bandages $2007w % $B Rainbow Fin Albacore $2008w % $B Roast Raptor $2009w % $B$B Allongside with the Horde, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.','The current situation in the front lines look like this:$B$B Iron $2000w % $B Thorium $2001w % $B Stranglekeep $2002w % $B Arthas Tears $2003w % $B Light Leather $2004w % $B Medium Leather $2005w % $B Linen Bandages $2006w % $B Silk Bandages $2007w % $B Rainbow Fin Albacore $2008w % $B Roast Raptor $2009w % $B$B Allongside with the Horde, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.',100,0),
(16001,'The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B PeaceBloom $2012w % $B FireBloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.','The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B PeaceBloom $2012w % $B FireBloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.',100,0);
(16001,'The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B Peacebloom $2012w % $B Firebloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.','The current situation in the front lines look like this:$B$B Tin $2010w % $B Mithril $2011w % $B Peacebloom $2012w % $B Firebloom $2013w % $B Heavy Leather $2014w % $B Rugged Leather $2015w % $B Wool Bandages $2016w % $B Mageweave Bandages $2017w % $B Lean Wolf Steaks $2018w % $B Baked Salmon $2019w % $B$B Allongside with the Alliance, we managed to gather: $B Copper $2020w % $B Purple Lotus $2021w % $B Thick Leather $2022w % $B Runecloth Bandage $2023w % $B Spotted Yellowtail $2024w. $B that is the current state of the effort, Aid us $N.',100,0);
INSERT INTO `npc_gossip` (`npc_guid`,`textid`) VALUES
(135161,16000),
(135162,16001);
UPDATE `creature_template` SET `npcflag`=1 WHERE `entry`=15458;
INSERT INTO `creature_questrelation` (`id`,`quest`) VALUES
(15535,8616);
INSERT INTO `creature_involvedrelation` (`id`,`quest`) VALUES
(15535,8616);
UPDATE `quest_template` SET `SpecialFlags`=1 WHERE `entry` IN
(8495,8500,8504,8510,8512,8514,8518,8521,8525,8527,8543,8546,8550,8583,8589,8601,8605,8608,8612,8616,8493,8533,8506,8581,8516,8591,5824,8610,8529,8614);
INSERT INTO `game_event` (`entry`,`start_time`,`end_time`,`occurence`,`length`,`description`,`world_event`) VALUES
(75,'0000-00-00 00:00:00','2020-12-30 22:00:00',5184000,14400,'AQ War Effort - The Transfer',1);
INSERT INTO `game_event_prerequisite` (`event_id`,`prerequisite_event`) VALUES
(75,22),(76,75),(77,76);
INSERT INTO `game_event_creature` (`guid`, `event`) VALUES
(135163,75);
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
(135163,1,0,1,1,0,0,-8813.4,654.195,96.0776,4.5185,180,0,0,7000000,0,0,0);
INSERT INTO `game_event` (`entry`,`start_time`,`end_time`,`occurence`,`length`,`description`,`world_event`) VALUES
(76,'0000-00-00 00:00:00','2020-12-30 22:00:00',5184000,0,'AQ War Effort - Armies Gathered',1),
(77,'0000-00-00 00:00:00','2020-12-30 22:00:00',5184000,720,'AQ War Effort - Gong Time',1);
INSERT INTO `game_event_quest_condition` (`quest`,`event_id`,`condition_id`,`num`) VALUES
(8743,76,1,1);
INSERT INTO `game_event_condition` (`event_id`,`condition_id`,`req_num`,`max_world_state_field`,`done_world_state_field`,`description`) VALUES
(76,1,1,0,0,'First Banger!');
INSERT INTO `game_event_gameobject_quest` (`id`,`quest`,`event`) VALUES
(180717,8743,76),(180717,8743,77);
INSERT INTO `gameobject_involvedrelation` (`id`,`quest`) VALUES
(180717,8743);
INSERT INTO `gameobject_questrelation` (`id`,`quest`) VALUES
(180717,8743);
INSERT INTO `game_event_gameobject` (`guid`,`event`) VALUES
(100000,76),(100001,77),(49451,-77);
INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(100000,180717,1,1,1,-8069.05,1641.72,27.03,-1.53589,0,0,0.694658,-0.71934,900,100,1),
(100001,180717,1,1,1,-8069.05,1641.72,27.03,-1.53589,0,0,0.694658,-0.71934,900,100,1);
-- quest data: Bang a gong!
UPDATE `quest_template` SET `CharTitleId`=46 WHERE `entry`=8743;
UPDATE `quest_template` SET `Method`=0 WHERE `entry`=8743;
UPDATE `quest_template` SET `Type`=82 WHERE `entry`=8743;
UPDATE `quest_template` SET `QuestFlags`=2 WHERE `entry`=8743;
UPDATE `gameobject_template` SET `type`=10 WHERE `entry`=180718;
UPDATE `gameobject_template` SET `type`=2 WHERE `entry`=180717;
UPDATE `gameobject_template` SET `flags`=0 WHERE `entry`=180717;
-- AQ Doors
INSERT INTO `game_event_gameobject` (`guid`,`event`) VALUES
(100002,22),(100003,22),(100004,22),
(100005,75),(100006,75),(100007,75),
(100008,76),(100009,76),(100010,76);
INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
(100002,176148,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100003,176147,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100004,176146,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100005,176148,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100006,176147,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100007,176146,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100008,176148,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100009,176147,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1),
(100010,176146,1,1,1,-8130,1525,17.5,0,0,0,0,0,10,100,1);
INSERT INTO `game_event_creature` (`guid`,`event`) VALUES
(135164,77),(135165,77),(135166,77),(135167,77),(135168,77),
(135169,77),(135170,77),(135171,77),(135172,77),(135173,77),
(135174,77),(135175,77),(135176,77),(135177,77),(135178,77),
(135179,77),(135180,77),(135181,77),(135182,77),(135183,77),
(135184,77),(135185,77),(135186,77),(135187,77),(135188,77),
(135189,77),(135190,77),(135191,77),(135192,77),(135193,77),
(135194,77),(135195,77),(135196,77),(135197,77),(135198,77),
(135199,77),(135200,77);
INSERT INTO `creature` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`modelid`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`spawndist`,`currentwaypoint`,`curhealth`,`curmana`,`DeathState`,`MovementType`) VALUES
-- General Rajaxx
(135164,15341,1,1,1,0,0,-8130.05,1525.05,37.90,0,180,0,0,416375,0,0,0),
-- Hive Collossus
(135165,15740,1,1,1,0,0,-7298.00,1665.00,-35.6,-1.53589,180,200,0,3331000,0,0,1),
(135166,15741,1,1,1,0,0,-7782.50,516.72,-39.85,-1.53589,180,200,0,3331000,0,0,1),
(135167,15742,1,1,1,0,0,-6530.05,977.13,0.43,-1.53589,180,200,0,3331000,0,0,1),
-- Anubisah Colossus
(135168,15743,1,1,1,0,0,-8055.51,1478.02,2.60,-1.53589,180,20,0,356070,0,0,1),
(135169,15743,1,1,1,0,0,-8062.05,1527.77,2.61,0,180,15,0,356070,0,0,1),
(135170,15743,1,1,1,0,0,-8006.14,1556.79,2.63,0,180,15,0,356070,0,0,1),
(135171,15743,1,1,1,0,0,-7971.34,1436.62,27.03,-0.15,180,35,0,356070,0,0,1),
(135172,15743,1,1,1,0,0,-8192.27,1628.45,2.59,-1.53589,180,5,0,356070,0,0,1),
(135173,15743,1,1,1,0,0,-8256.22,1528.53,-4.49,0,180,25,0,356070,0,0,1),
(135174,15743,1,1,1,0,0,-8272.40,1436.73,9.99,1,180,10,0,356070,0,0,1),
-- Qiraji Champions
(135175,15252,1,1,1,0,0,-8117.14,1512.34,3.88,0,180,0,0,266480,0,0,0),
(135176,15252,1,1,1,0,0,-8116.27,1536.37,3.48,0,180,0,0,266480,0,0,0),
-- Anubisath Sentinels
(135177,15264,1,1,1,0,0,-8090.60,1576.85,14.33,0,180,0,0,110040,0,0,0),
(135178,15264,1,1,1,0,0,-8041.13,1579.14,13.88,3.1415,180,0,0,110040,0,0,0),
(135179,15264,1,1,1,0,0,-8271.16,1681.18,25.95,-0.79,180,0,0,110040,0,0,0),
(135180,15264,1,1,1,0,0,-8288.46,1661.79,24.99,-0.79,180,0,0,110040,0,0,0),
(135181,15264,1,1,1,0,0,-8289.26,1715.53,25.29,0.79,180,0,0,110040,0,0,0),
(135182,15264,1,1,1,0,0,-8324.89,1677.27,25.84,-2.20,180,0,0,110040,0,0,0),
-- Anubisath Defender
(135183,15277,1,1,1,0,0,-8149.52,1525.93,4.41,0,180,0,0,485550,0,0,0),
-- Qiraji Warriors
(135184,15537,1,1,1,0,0,-8167.79,1504.59,7.49,0.42,180,15,0,38844,0,0,1),
(135185,15537,1,1,1,0,0,-8175.52,1521.04,4.19,0,180,15,0,38844,0,0,1),
(135186,15537,1,1,1,0,0,-8158.94,1543.86,4.28,-0.2,180,15,0,38844,0,0,1),
(135187,15537,1,1,1,0,0,-8180.07,1562.58,2.36,-0.4,180,15,0,38844,0,0,1),
(135188,15537,1,1,1,0,0,-8226.91,1592.79,4.37,-0.3,180,15,0,38844,0,0,1),
(135189,15537,1,1,1,0,0,-8262.60,1639.70,17.45,-1.53589,180,15,0,38844,0,0,1),
(135190,15537,1,1,1,0,0,-8270.04,1592.54,9.25,-0.2,180,15,0,38844,0,0,1),
(135191,15537,1,1,1,0,0,-8204.95,1558.74,4.02,-0.15,180,15,0,38844,0,0,1),
(135192,15537,1,1,1,0,0,-8193.70,1513.13,5.02,0.2,180,15,0,38844,0,0,1),
(135193,15537,1,1,1,0,0,-8196.39,1536.41,4.25,0,180,15,0,38844,0,0,1),
(135194,15537,1,1,1,0,0,-8216.25,1533.89,1.44,0,180,15,0,38844,0,0,1),
(135195,15537,1,1,1,0,0,-8258.04,1565.02,-5.00,0,180,15,0,38844,0,0,1),
(135196,15537,1,1,1,0,0,-8295.32,1518.27,0.16,0,180,15,0,38844,0,0,1),
(135197,15537,1,1,1,0,0,-8193.51,1438.81,2.33,0.7,180,15,0,38844,0,0,1),
(135198,15537,1,1,1,0,0,-8245.27,1453.14,6.33,0.3,180,15,0,38844,0,0,1),
(135199,15537,1,1,1,0,0,-8269.06,1480.93,5.85,0,180,15,0,38844,0,0,1),
(135200,15537,1,1,1,0,0,-8319.30,1474.29,6.55,0,180,15,0,38844,0,0,1);
@@ -0,0 +1,13 @@
UPDATE `creature_template` SET `ScriptName`='boss_taldaram' WHERE `entry`=29308;
UPDATE `creature_template` SET `ScriptName`='mob_taldaram_flamesphere' WHERE `entry` IN (30106,31686,31687);
UPDATE `gameobject_template` SET `ScriptName`='prince_taldaram_sphere' WHERE `entry` IN (193093,193094);
INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
(29308,-1619021,'I will feast on your remains.',0,0,0,0,'prince taldaram SAY_AGGRO'),
(29308,-1619022,'I will drink no blood before it''s time.',0,0,0,0,'prince taldaram SAY_SLAY_1'),
(29308,-1618023,'One final embrace.',0,0,0,0,'prince taldaram SAY_SLAY_2'),
(29308,-1618024,'Still I hunger, still I thirst.',0,0,0,0,'prince taldaram SAY_DEATH'),
(29308,-1618025,'So appetizing.',0,0,0,0,'prince taldaram SAY_FEED1'),
(29308,-1618026,'Fresh, warm blood. It has been too long.',0,0,0,0,'prince taldaram SAY_FEED2'),
(29308,-1618027,'Your heartbeat is music to my ears.',0,0,0,0,'prince taldaram SAY_VANISH1'),
(29308,-1618028,'I am nowhere. I am everywhere. I am the watcher, unseen.',0,0,0,0,'prince taldaram SAY_VANISH2');
@@ -18,7 +18,7 @@
/* ScriptData
SDName: boss_prince_taldaram
SDAuthor: LordVanMartin
SDAuthor: Tartalo & tlexii
SD%Complete: 0
SDComment:
SDCategory: Ahn'kahet
@@ -33,64 +33,293 @@ EndScriptData */
#define SPELL_FLAME_SPHERE_SUMMON_1 55895// 1x 30106
#define H_SPELL_FLAME_SPHERE_SUMMON_1 59511// 1x 31686
#define H_SPELL_FLAME_SPHERE_SUMMON_2 59512// 1x 31687
#define SPELL_FLAME_SPHERE_SPAWN_EFFEKT 55891
#define SPELL_FLAME_SPHERE_SPAWN_EFFECT 55891
#define SPELL_FLAME_SPHERE_VISUAL 55928
#define SPELL_FLAME_SPHERE_PERIODIC 55926
#define H_SPELL_FLAME_SPHERE_PERIODIC 59508
#define SPELL_FLAME_SPHERE_DEATH_EFFEKT 55947
#define SPELL_FLAME_SPHERE_DEATH_EFFECT 55947
#define SPELL_BEAM_VISUAL 60342
#define SPELL_EMBRACE_OF_THE_VAMPYR 55959
#define H_SPELL_EMBRACE_OF_THE_VAMPYR 59513
#define SPELL_VANISH 55964
#define CREATURE_FLAME_SPHERE 30106
#define H_CREATURE_FLAME_SPHERE_1 31686
#define H_CREATURE_FLAME_SPHERE_2 31687
#define DATA_EMBRACE_DMG 20000
#define H_DATA_EMBRACE_DMG 40000
#define DATA_GROUND_POSITION_Z 11.4
#define DATA_SPHERE_DISTANCE 100.0
//not in db
//Yell
#define SAY_AGGRO -1619021
#define SAY_SLAY_1 -1619022
#define SAY_SLAY_2 -1619023
#define SAY_SLAY_3 -1619024
#define SAY_DEATH -1619025
#define SAY_FEED_1 -1619026
#define SAY_FEED_2 -1619027
#define SAY_VANISH_1 -1619028
#define SAY_VANISH_2 -1619029
#define SAY_DEATH -1619024
#define SAY_FEED_1 -1619025
#define SAY_FEED_2 -1619026
#define SAY_VANISH_1 -1619027
#define SAY_VANISH_2 -1619028
enum CombatPhase
{
NORMAL,
CASTING_FLAME_SPHERES,
JUST_VANISHED,
VANISHED,
FEEDING
};
struct TRINITY_DLL_DECL boss_taldaramAI : public ScriptedAI
{
boss_taldaramAI(Creature *c) : ScriptedAI(c) {}
boss_taldaramAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
}
uint32 uiBloodthirstTimer;
uint32 uiVanishTimer;
uint32 uiWaitTimer;
uint32 uiEmbraceTimer;
uint32 uiEmbraceTakenDamage;
uint32 uiFlamesphereTimer;
uint32 uiPhaseTimer;
void Reset() {}
uint64 uiSphereGuids[2];
Unit *pEmbraceTarget;
CombatPhase Phase;
ScriptedInstance* pInstance;
void Reset()
{
uiBloodthirstTimer = 10000;
uiVanishTimer = (25 + rand()%10)*1000;
uiEmbraceTimer = 20000;
uiFlamesphereTimer = 5000;
uiEmbraceTakenDamage = 0;
Phase = NORMAL;
uiPhaseTimer = 0;
pEmbraceTarget = NULL;
if (pInstance)
pInstance->SetData(DATA_PRINCE_TALDARAM_EVENT, NOT_STARTED);
}
void EnterCombat(Unit* who)
{
DoScriptText(SAY_AGGRO, m_creature);
if (pInstance)
pInstance->SetData(DATA_PRINCE_TALDARAM_EVENT, IN_PROGRESS);
DoScriptText(SAY_AGGRO, m_creature);
}
void AttackStart(Unit* who) {}
void MoveInLineOfSight(Unit* who) {}
void UpdateAI(const uint32 diff)
{
//Return since we have no target
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
if (uiPhaseTimer < diff)
{
switch (Phase)
{
case CASTING_FLAME_SPHERES:
//DoCast(m_creature, SPELL_FLAME_SPHERE_SUMMON_1);
DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
if (HeroicMode)
{
//DoCast(m_creature, H_SPELL_FLAME_SPHERE_SUMMON_1);
DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
//DoCast(m_creature, H_SPELL_FLAME_SPHERE_SUMMON_2);
DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000);
}
Phase = NORMAL;
uiPhaseTimer = 0;
break;
case JUST_VANISHED:
DoModifyThreatPercent(pEmbraceTarget, 100);
DoTeleportTo(pEmbraceTarget->GetPositionX(),pEmbraceTarget->GetPositionY(),pEmbraceTarget->GetPositionZ());
Phase = VANISHED;
uiPhaseTimer = 1400;
break;
case VANISHED:
DoCast(pEmbraceTarget,HeroicMode ? H_SPELL_EMBRACE_OF_THE_VAMPYR : SPELL_EMBRACE_OF_THE_VAMPYR );
Phase = FEEDING;
uiPhaseTimer = 20000;
break;
case FEEDING:
Phase = NORMAL;
uiPhaseTimer = 0;
pEmbraceTarget = NULL;
break;
case NORMAL:
if (uiBloodthirstTimer < diff)
{
DoCast(m_creature->getVictim(),SPELL_BLOODTHIRST);
uiBloodthirstTimer = 10000;
} else uiBloodthirstTimer -= diff;
if (uiFlamesphereTimer < diff)
{
DoCast(m_creature, SPELL_CONJURE_FLAME_SPHERE);
Phase = CASTING_FLAME_SPHERES;
uiPhaseTimer = 3000 + diff;
uiFlamesphereTimer = 15000;
} else uiFlamesphereTimer -= diff;
if (uiVanishTimer < diff )
{
//Count alive players
Unit *target = NULL;
std::list<HostilReference *> t_list = m_creature->getThreatManager().getThreatList();
std::vector<Unit *> target_list;
for(std::list<HostilReference *>::iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)
{
target = Unit::GetUnit(*m_creature, (*itr)->getUnitGuid());
// exclude pets & totems
if (target && target->GetTypeId() == TYPEID_PLAYER && target->isAlive())
target_list.push_back(target);
target = NULL;
}
//He only vanishes if there are 3 or more alive players
if (target_list.size() > 2)
{
DoScriptText(RAND(SAY_VANISH_1,SAY_VANISH_2), m_creature);
DoCast(m_creature,SPELL_VANISH);
Phase = JUST_VANISHED;
uiPhaseTimer = 1000;
pEmbraceTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
while (pEmbraceTarget && pEmbraceTarget->GetTypeId() != TYPEID_PLAYER)
pEmbraceTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
}
uiVanishTimer = (25 + rand()%10)*1000;
} else uiVanishTimer -= diff;
DoMeleeAttackIfReady();
break;
}
} else uiPhaseTimer -= diff;
}
void DamageTaken(Unit* done_by, uint32 &damage)
{
if (Phase == FEEDING && pEmbraceTarget && pEmbraceTarget->isAlive())
{
uiEmbraceTakenDamage += damage;
if (uiEmbraceTakenDamage > (HeroicMode ? H_DATA_EMBRACE_DMG : DATA_EMBRACE_DMG))
{
Phase = NORMAL;
uiPhaseTimer = 0;
pEmbraceTarget = NULL;
m_creature->CastStop();
}
}
}
void JustDied(Unit* killer)
{
DoScriptText(SAY_DEATH, m_creature);
if (pInstance)
pInstance->SetData(DATA_PRINCE_TALDARAM_EVENT, DONE);
}
void KilledUnit(Unit *victim)
{
if (victim == m_creature)
return;
switch(rand()%3)
if (Phase == FEEDING && pEmbraceTarget && victim == pEmbraceTarget)
{
case 0: DoScriptText(SAY_SLAY_1, m_creature);break;
case 1: DoScriptText(SAY_SLAY_2, m_creature);break;
case 2: DoScriptText(SAY_SLAY_3, m_creature);break;
Phase = NORMAL;
uiPhaseTimer = 0;
pEmbraceTarget = NULL;
}
DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2), m_creature);
}
bool CheckSpheres()
{
if(!pInstance)
return false;
uiSphereGuids[0] = pInstance->GetData64(DATA_SPHERE1);
uiSphereGuids[1] = pInstance->GetData64(DATA_SPHERE2);
GameObject *pSpheres[2];
for (uint8 i=0; i < 2; ++i)
{
pSpheres[i] = pInstance->instance->GetGameObject(uiSphereGuids[i]);
if (!pSpheres[i])
return false;
if (pSpheres[i]->GetGoState() != GO_STATE_ACTIVE)
return false;
}
RemovePrison();
return true;
}
void RemovePrison()
{
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_creature->RemoveAurasDueToSpell(SPELL_BEAM_VISUAL);
m_creature->SetHomePosition(m_creature->GetPositionX(), m_creature->GetPositionY(), DATA_GROUND_POSITION_Z, m_creature->GetOrientation());
uint64 prison_GUID = pInstance->GetData64(DATA_PRINCE_TALDARAM_PLATFORM);
pInstance->HandleGameObject(prison_GUID,true);
}
};
struct TRINITY_DLL_DECL mob_taldaram_flamesphereAI : public ScriptedAI
{
mob_taldaram_flamesphereAI(Creature *c) : ScriptedAI(c)
{
pInstance = c->GetInstanceData();
}
uint32 uiDespawnTimer;
ScriptedInstance* pInstance;
void Reset()
{
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
m_creature->AddUnitMovementFlag(MOVEMENTFLAG_FLYING + MOVEMENTFLAG_HOVER);
m_creature->setFaction(16);
DoCast(m_creature, SPELL_FLAME_SPHERE_VISUAL);
DoCast(m_creature, SPELL_FLAME_SPHERE_SPAWN_EFFECT);
DoCast(m_creature, HeroicMode ? H_SPELL_FLAME_SPHERE_PERIODIC : SPELL_FLAME_SPHERE_PERIODIC);
uiDespawnTimer = 10000;
Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0);
if (pTarget)
{
float angle,x,y;
angle = m_creature->GetAngle(pTarget);
x = m_creature->GetPositionX() + DATA_SPHERE_DISTANCE * cos(angle);
y = m_creature->GetPositionY() + DATA_SPHERE_DISTANCE * sin(angle);
m_creature->GetMotionMaster()->MovePoint(0, x, y, m_creature->GetPositionZ());
}
}
void EnterCombat(Unit *who) {}
void MoveInLineOfSight(Unit *who) {}
void JustDied(Unit* slayer)
{
DoCast(m_creature, SPELL_FLAME_SPHERE_DEATH_EFFECT);
}
void UpdateAI(const uint32 diff)
{
if (uiDespawnTimer < diff)
{
m_creature->DealDamage(m_creature, m_creature->GetMaxHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
m_creature->RemoveCorpse();
}
else uiDespawnTimer -= diff;
}
};
@@ -99,6 +328,33 @@ CreatureAI* GetAI_boss_taldaram(Creature* pCreature)
return new boss_taldaramAI (pCreature);
}
CreatureAI* GetAI_mob_taldaram_flamesphere(Creature* pCreature)
{
return new mob_taldaram_flamesphereAI (pCreature);
}
bool GOHello_prince_taldaram_sphere(Player *pPlayer, GameObject *pGO)
{
ScriptedInstance *pInstance = pGO->GetInstanceData();
Creature *pPrinceTaldaram = Unit::GetCreature(*pGO, pInstance ? pInstance->GetData64(DATA_PRINCE_TALDARAM) : 0);
if (pPrinceTaldaram && pPrinceTaldaram->isAlive())
{
// maybe these are hacks :(
pGO->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
pGO->SetGoState(GO_STATE_ACTIVE);
switch(pGO->GetEntry())
{
case 193093: pInstance->SetData(DATA_SPHERE1_EVENT,IN_PROGRESS); break;
case 193094: pInstance->SetData(DATA_SPHERE2_EVENT,IN_PROGRESS); break;
}
CAST_AI(boss_taldaramAI, pPrinceTaldaram->AI())->CheckSpheres();
}
return true;
}
void AddSC_boss_taldaram()
{
Script *newscript;
@@ -107,4 +363,14 @@ void AddSC_boss_taldaram()
newscript->Name="boss_taldaram";
newscript->GetAI = &GetAI_boss_taldaram;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_taldaram_flamesphere";
newscript->GetAI = &GetAI_mob_taldaram_flamesphere;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "prince_taldaram_sphere";
newscript->pGOHello = &GOHello_prince_taldaram_sphere;
newscript->RegisterSelf();
}
@@ -30,4 +30,11 @@
#define DATA_JEDOGA_SHADOWSEEKER_EVENT 8
#define DATA_HERALD_VOLAZJ_EVENT 9
#define DATA_AMANITAR_EVENT 10
#define DATA_SPHERE1 11
#define DATA_SPHERE2 12
#define DATA_SPHERE1_EVENT 13
#define DATA_SPHERE2_EVENT 14
#define DATA_PRINCE_TALDARAM_PLATFORM 15
#endif
@@ -45,19 +45,26 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
uint64 Jedoga_Shadowseeker;
uint64 Herald_Volazj;
uint64 Amanitar;
uint64 Prince_TaldaramSpheres[2];
uint64 Prince_TaldaramPlatform;
uint64 Prince_TaldaramGate;
uint32 m_auiEncounter[MAX_ENCOUNTER];
uint32 spheres[2];
void Initialize()
{
Elder_Nadox =0;
Prince_Taldaram =0;
Jedoga_Shadowseeker =0;
Herald_Volazj =0;
Amanitar =0;
for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
m_auiEncounter[i] = NOT_STARTED;
void Initialize()
{
Elder_Nadox =0;
Prince_Taldaram =0;
Jedoga_Shadowseeker =0;
Herald_Volazj =0;
Amanitar =0;
for(uint8 i = 0; i < MAX_ENCOUNTER; ++i)
m_auiEncounter[i] = NOT_STARTED;
spheres[0] = NOT_STARTED;
spheres[1] = NOT_STARTED;
}
bool IsEncounterInProgress() const
@@ -75,21 +82,48 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
{
case 29309: Elder_Nadox = pCreature->GetGUID(); break;
case 29308: Prince_Taldaram = pCreature->GetGUID(); break;
case 29310: Jedoga_Shadowseeker = pCreature->GetGUID(); break;
case 29310: Jedoga_Shadowseeker = pCreature->GetGUID(); break;
case 29311: Herald_Volazj = pCreature->GetGUID(); break;
case 30258: Amanitar = pCreature->GetGUID(); break;
}
}
void OnGameObjectCreate(GameObject* pGo, bool add)
{
switch(pGo->GetEntry())
{
case 193564: Prince_TaldaramPlatform = pGo->GetGUID();break;
case 193093: Prince_TaldaramSpheres[0] = pGo->GetGUID();
if (spheres[0] == IN_PROGRESS)
{
pGo->SetGoState(GO_STATE_ACTIVE);
pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
}
break;
case 193094: Prince_TaldaramSpheres[1] = pGo->GetGUID();
if (spheres[1] == IN_PROGRESS)
{
pGo->SetGoState(GO_STATE_ACTIVE);
pGo->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1);
}
break;
case 192236: Prince_TaldaramGate = pGo->GetGUID(); // Web gate past Prince Taldaram
if (m_auiEncounter[1] == DONE)HandleGameObject(NULL,true,pGo);break;
}
}
uint64 GetData64(uint32 identifier)
{
switch(identifier)
{
case DATA_ELDER_NADOX: return Elder_Nadox;
case DATA_PRINCE_TALDARAM: return Prince_Taldaram;
case DATA_JEDOGA_SHADOWSEEKER: return Jedoga_Shadowseeker;
case DATA_HERALD_VOLAZJ: return Herald_Volazj;
case DATA_AMANITAR: return Amanitar;
case DATA_ELDER_NADOX: return Elder_Nadox;
case DATA_PRINCE_TALDARAM: return Prince_Taldaram;
case DATA_JEDOGA_SHADOWSEEKER: return Jedoga_Shadowseeker;
case DATA_HERALD_VOLAZJ: return Herald_Volazj;
case DATA_AMANITAR: return Amanitar;
case DATA_SPHERE1: return Prince_TaldaramSpheres[0];
case DATA_SPHERE2: return Prince_TaldaramSpheres[1];
case DATA_PRINCE_TALDARAM_PLATFORM: return Prince_TaldaramPlatform;
}
return 0;
}
@@ -101,6 +135,10 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
case DATA_ELDER_NADOX_EVENT:
m_auiEncounter[0] = data;break;
case DATA_PRINCE_TALDARAM_EVENT:
if (data == DONE)
{
HandleGameObject(Prince_TaldaramGate,true);
}
m_auiEncounter[1] = data; break;
case DATA_JEDOGA_SHADOWSEEKER_EVENT:
m_auiEncounter[2] = data; break;
@@ -108,7 +146,11 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
m_auiEncounter[3] = data; break;
case DATA_AMANITAR:
m_auiEncounter[4] = data; break;
}
case DATA_SPHERE1_EVENT:
spheres[0] = data; break;
case DATA_SPHERE2_EVENT:
spheres[1] = data; break;
}
if (data == DONE)
{
@@ -125,6 +167,8 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
case DATA_JEDOGA_SHADOWSEEKER_EVENT: return m_auiEncounter[2];
case DATA_HERALD_VOLAZJ: return m_auiEncounter[3];
case DATA_AMANITAR: return m_auiEncounter[4];
case DATA_SPHERE1_EVENT: return spheres[0];
case DATA_SPHERE2_EVENT: return spheres[1];
}
return 0;
}
@@ -137,7 +181,8 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
std::ostringstream saveStream;
saveStream << "A K " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " "
<< m_auiEncounter[2] << m_auiEncounter[3] << m_auiEncounter[4];
<< m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_auiEncounter[4] << " "
<< spheres[0] << " " << spheres[1];
str_data = saveStream.str();
@@ -156,10 +201,10 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
OUT_LOAD_INST_DATA(in);
char dataHead1, dataHead2;
uint16 data0,data1,data2,data3,data4;
uint16 data0,data1,data2,data3,data4, data5, data6;
std::istringstream loadStream(in);
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4;
loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4 >> data5 >> data6;
if (dataHead1 == 'A' && dataHead2 == 'K')
{
@@ -173,6 +218,9 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance
if (m_auiEncounter[i] == IN_PROGRESS)
m_auiEncounter[i] = NOT_STARTED;
spheres[0] = data5;
spheres[1] = data6;
}else OUT_LOAD_INST_DATA_FAIL;
OUT_LOAD_INST_DATA_COMPLETE;
@@ -262,6 +262,7 @@ extern void AddSC_winterspring();
//northrend
extern void AddSC_instance_ahnkahet(); //Azjol-Nerub Ahn'kahet
extern void AddSC_boss_taldaram();
extern void AddSC_boss_elder_nadox();
extern void AddSC_boss_anubrekhan(); //Naxxramas
extern void AddSC_boss_maexxna();
@@ -662,6 +663,7 @@ void AddScripts()
//northrend
AddSC_instance_ahnkahet(); //Azjol-Nerub Ahn'kahet
AddSC_boss_taldaram();
AddSC_boss_elder_nadox();
AddSC_boss_anubrekhan(); //Naxxramas
AddSC_boss_maexxna();