From 65a40a5437eeb43897923ed44122d480d98da2af Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 2 Jul 2011 12:36:48 +0200 Subject: [PATCH] Scripts/Icecrown Citadel: Teleporting to the Frozen Throne should now happen as on retail (with an areatrigger, not gossip), also added missing spawns to Frozen Throne and Tirion's gossip NOTE: This does NOT mean The Lich King script is coming soon --- sql/scripts/world_scripts_full.sql | 9 +++++---- ...2011_07_02_00_world_areatrigger_scripts.sql | 3 +++ .../2011_07_02_00_world_instance_misc.sql | 18 ++++++++++++++++++ .../icecrown_citadel_teleport.cpp | 18 ++++++++++++++++-- .../instance_icecrown_citadel.cpp | 7 ++++--- 5 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 sql/updates/world/2011_07_02_00_world_areatrigger_scripts.sql create mode 100644 sql/updates/world/2011_07_02_00_world_instance_misc.sql diff --git a/sql/scripts/world_scripts_full.sql b/sql/scripts/world_scripts_full.sql index 140105371ee65..02b5956683008 100644 --- a/sql/scripts/world_scripts_full.sql +++ b/sql/scripts/world_scripts_full.sql @@ -9,7 +9,7 @@ UPDATE `gameobject_template` SET `ScriptName`=''; UPDATE `outdoorpvp_template` SET `ScriptName`=''; /* AREA TRIGGERS */ -DELETE FROM `areatrigger_scripts` WHERE `entry` IN (822,5284,5285,5286,5287,4871,4872,4873,5108,5332,5338,5334,5340,5369,5423,5633,5604,5698,5649,5729,5616,5617,5618); +DELETE FROM `areatrigger_scripts` WHERE `entry` IN (822,5284,5285,5286,5287,4871,4872,4873,5108,5332,5338,5334,5340,5369,5423,5633,5604,5698,5649,5729,5616,5617,5618,5718); DELETE FROM `areatrigger_scripts` WHERE `entry` BETWEEN 1726 AND 1740; INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES (822, 'at_map_chamber'), @@ -47,9 +47,10 @@ INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES (5698, 'at_icc_saurfang_portal'), (5649, 'at_icc_shutdown_traps'), (5729, 'at_icc_start_blood_quickening'), -(5616,'at_icc_start_frostwing_gauntlet'), -(5617,'at_icc_start_frostwing_gauntlet'), -(5618,'at_icc_start_frostwing_gauntlet'); +(5616, 'at_icc_start_frostwing_gauntlet'), +(5617, 'at_icc_start_frostwing_gauntlet'), +(5618, 'at_icc_start_frostwing_gauntlet'), +(5718, 'at_frozen_throne_teleport'); /* WORLD BOSS */ UPDATE `creature_template` SET `ScriptName`='boss_ysondre' WHERE `entry`=14887; diff --git a/sql/updates/world/2011_07_02_00_world_areatrigger_scripts.sql b/sql/updates/world/2011_07_02_00_world_areatrigger_scripts.sql new file mode 100644 index 0000000000000..6a9a93e59c6f5 --- /dev/null +++ b/sql/updates/world/2011_07_02_00_world_areatrigger_scripts.sql @@ -0,0 +1,3 @@ +DELETE FROM `areatrigger_scripts` WHERE `entry`=5718; +INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES +(5718,'at_frozen_throne_teleport'); diff --git a/sql/updates/world/2011_07_02_00_world_instance_misc.sql b/sql/updates/world/2011_07_02_00_world_instance_misc.sql new file mode 100644 index 0000000000000..f8d37d99385c4 --- /dev/null +++ b/sql/updates/world/2011_07_02_00_world_instance_misc.sql @@ -0,0 +1,18 @@ +UPDATE `gameobject_template` SET `flags`=48 WHERE `entry`=202223; -- Scourge Transporter to the Frozen Throne +UPDATE `gameobject_template` SET `flags`=32 WHERE `entry` IN (202242,202243,202244,202245,202235,202246); -- Scourge Transporters + +DELETE FROM `gameobject` WHERE `id` IN (202189,202188); +INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES +(151,202189,631,15,1,503.62,-2124.66,836.607,3.14159,0,0,0,1,6000,255,1), +(153,202188,631,15,1,503.62,-2124.66,836.607,3.14159,0,0,0,1,6000,255,0); + +-- Highlord Tirion Fordring gossip +UPDATE `creature_template` SET `gossip_menu_id`=10993 WHERE `entry`=38995; + +DELETE FROM `gossip_menu` WHERE `entry`=10993; +INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES +(10993,15290); + +DELETE FROM `gossip_menu_option` WHERE `menu_id`=10993; +INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`) VALUES +(10993,0,0,'We are prepared, Highlord. Let us battle for the fate of Azeroth! For the light of dawn!',1,1,0,0,0,0,''); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp index 8298444f4b135..9132031b89dbc 100755 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp @@ -43,8 +43,6 @@ class icecrown_citadel_teleport : public GameObjectScript player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to the Upper Spire.", GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT); if (instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT); - if (instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE && instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE && instance->GetBossState(DATA_SINDRAGOSA) == DONE) - player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to The Frozen Throne", GOSSIP_SENDER_ICC_PORT, FROZEN_THRONE_TELEPORT); } player->SEND_GOSSIP_MENU(player->GetGossipTextId(go->GetGOInfo()->GetGossipMenuId()), go->GetGUID()); @@ -72,7 +70,23 @@ class icecrown_citadel_teleport : public GameObjectScript } }; +class at_frozen_throne_teleport : public AreaTriggerScript +{ + public: + at_frozen_throne_teleport() : AreaTriggerScript("at_frozen_throne_teleport") { } + + bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) + { + if (InstanceScript* instance = player->GetInstanceScript()) + if (instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE && instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE && instance->GetBossState(DATA_SINDRAGOSA) == DONE) + player->CastSpell(player, FROZEN_THRONE_TELEPORT, true); + + return true; + } +}; + void AddSC_icecrown_citadel_teleport() { new icecrown_citadel_teleport(); + new at_frozen_throne_teleport(); } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index ece75fc0b9ff1..7890f2fd8fa71 100755 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -96,14 +96,14 @@ class instance_icecrown_citadel : public InstanceMapScript PlagueSigilGUID = 0; BloodwingSigilGUID = 0; FrostwingSigilGUID = 0; - memset(PutricidePipeGUIDs, 0, 2*sizeof(uint64)); - memset(PutricideGateGUIDs, 0, 2*sizeof(uint64)); + memset(PutricidePipeGUIDs, 0, 2 * sizeof(uint64)); + memset(PutricideGateGUIDs, 0, 2 * sizeof(uint64)); PutricideCollisionGUID = 0; FestergutGUID = 0; RotfaceGUID = 0; ProfessorPutricideGUID = 0; PutricideTableGUID = 0; - memset(BloodCouncilGUIDs, 0, 3*sizeof(uint64)); + memset(BloodCouncilGUIDs, 0, 3 * sizeof(uint64)); BloodCouncilControllerGUID = 0; BloodQueenLanaThelGUID = 0; CrokScourgebaneGUID = 0; @@ -198,6 +198,7 @@ class instance_icecrown_citadel : public InstanceMapScript case NPC_SE_HIGH_OVERLORD_SAURFANG: if (TeamInInstance == ALLIANCE) creature->UpdateEntry(NPC_SE_MURADIN_BRONZEBEARD, ALLIANCE, creature->GetCreatureData()); + // no break; case NPC_SE_MURADIN_BRONZEBEARD: DeathbringerSaurfangEventGUID = creature->GetGUID(); creature->LastUsedScriptID = creature->GetScriptId();