diff options
9 files changed, 99 insertions, 6 deletions
diff --git a/sql/FULL/world_script_texts.sql b/sql/FULL/world_script_texts.sql index 5bfab83de77..896357606b6 100644 --- a/sql/FULL/world_script_texts.sql +++ b/sql/FULL/world_script_texts.sql @@ -469,9 +469,10 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` (4508,-1047010,'Many thanks for your help.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'Willix'), -- -1 048 000 BLACKFATHOM DEEPS - (4832,-1048000,'Just...Dust...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5803,1,0,0,''), - (4832,-1048001,'Sleep...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5804,1,0,0,''), - (4832,-1048002,'Who dares disturb my meditation!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5805,1,0,0,''), + (4832,-1048000,'Just...Dust...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5803,1,0,0,''), (4832,-1048001,'Sleep...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5804,1,0,0,''), +(4832,-1048002,'Who dares disturb my meditation!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5805,1,0,0,''), +(6729,-1048003,'Aku''mai is dead! At last, I can leave this wretched place.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,''), +(6729,-1048004,'Speak with me to hear my tale',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), -- -1 060 000 863_world_scripts.sql (0,-1060005,'REUSE',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,'REUSE'), diff --git a/sql/FULL/world_script_waypoints.sql b/sql/FULL/world_script_waypoints.sql index 749b9d0a3d5..9899047e9bf 100644 --- a/sql/FULL/world_script_waypoints.sql +++ b/sql/FULL/world_script_waypoints.sql @@ -1963,3 +1963,11 @@ INSERT INTO `script_waypoint` VALUES (349,113,-9264.73,-2292.92,70.0089,0,''), (349,114,-9272.24,-2293.79,68.6096,0,''), (349,115,-9277.03,-2295.98,68.1135,10000,''); + +DELETE FROM `script_waypoint` WHERE `entry`=6729; +INSERT INTO `script_waypoint` VALUES +(6729,1,-861.803,-460.36,-33.8918,0,''), +(6729,2,-856.168,-464.425,-33.9223,0,''), +(6729,3,-849.964,-469.231,-34.0381,0,''), +(6729,4,-839.838,-473.654,-34.0535,0,''), +(6729,5,-837.417,-473.105,-34.0288,0,''); diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql index 4351a250591..bc6278a3cdc 100644 --- a/sql/FULL/world_scripts_full.sql +++ b/sql/FULL/world_scripts_full.sql @@ -290,7 +290,7 @@ UPDATE `creature_template` SET `ScriptName`='boss_gelihast' WHERE `entry`=6243; UPDATE `creature_template` SET `ScriptName`='boss_kelris' WHERE `entry`=4832; UPDATE `creature_template` SET `ScriptName`='boss_aku_mai' WHERE `entry`=4829; UPDATE `creature_template` SET `ScriptName`='npc_blackfathom_deeps_event' WHERE `entry` IN (4823,4825,4977,4978); - +UPDATE `creature_template` SET `ScriptName`='npc_morridune' WHERE `entry`=6729; /* BLACKROCK DEPTHS */ UPDATE `instance_template` SET `script`='instance_blackrock_depths' WHERE `map`=230; diff --git a/sql/updates/6889_world_script_texts.sql b/sql/updates/6889_world_script_texts.sql new file mode 100644 index 00000000000..4186a4f0591 --- /dev/null +++ b/sql/updates/6889_world_script_texts.sql @@ -0,0 +1,4 @@ +DELETE FROM `script_texts` WHERE `entry` IN (-1048003,-1048004); +INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1`,`content_loc2`,`content_loc3`,`content_loc4`,`content_loc5`,`content_loc6`,`content_loc7`,`content_loc8`,`sound`,`type`,`language`,`emote`,`comment`) VALUES +(6729,-1048003,'Aku''mai is dead! At last, I can leave this wretched place.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,1,0,0,''), +(6729,-1048004,'Speak with me to hear my tale',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''); diff --git a/sql/updates/6889_world_script_waypoints.sql b/sql/updates/6889_world_script_waypoints.sql new file mode 100644 index 00000000000..c3eb3d37e97 --- /dev/null +++ b/sql/updates/6889_world_script_waypoints.sql @@ -0,0 +1,7 @@ +DELETE FROM `script_waypoint` WHERE `entry`=6729; +INSERT INTO `script_waypoint` VALUES +(6729,1,-861.803,-460.36,-33.8918,0,''), +(6729,2,-856.168,-464.425,-33.9223,0,''), +(6729,3,-849.964,-469.231,-34.0381,0,''), +(6729,4,-839.838,-473.654,-34.0535,0,''), +(6729,5,-837.417,-473.105,-34.0288,0,''); diff --git a/sql/updates/6889_world_scriptnames.sql b/sql/updates/6889_world_scriptnames.sql new file mode 100644 index 00000000000..71957535bac --- /dev/null +++ b/sql/updates/6889_world_scriptnames.sql @@ -0,0 +1 @@ +UPDATE `creature_template` SET `ScriptName`='npc_morridune' WHERE `entry`=6729; diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp index 6a2f9126afe..20a59a0bc21 100644 --- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp +++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.cpp @@ -18,15 +18,19 @@ #include "precompiled.h" #include "blackfathom_deeps.h" +#include "escort_ai.h" enum eSpells { SPELL_BLESSING_OF_BLACKFATHOM = 8733, SPELL_RAVAGE = 8391, SPELL_FROST_NOVA = 865, - SPELL_FROST_BOLT_VOLLEY = 8398 + SPELL_FROST_BOLT_VOLLEY = 8398, + SPELL_TELEPORT_DARNASSUS = 9268 }; +#define GOSSIP_ITEM_MORRIDUNE "Please port me to Darnassus" + const Position HomePosition = {-815.817,-145.299,-25.870, 0}; bool GoHello_blackfathom_altar(Player *pPlayer, GameObject* pGo) @@ -166,6 +170,61 @@ CreatureAI* GetAI_npc_blackfathom_deeps_event(Creature* pCreature) return new npc_blackfathom_deeps_eventAI (pCreature); } +enum eMorridune +{ + SAY_MORRIDUNE_1 = -1048003, + SAY_MORRIDUNE_2 = -1048004 +}; + +struct TRINITY_DLL_DECL npc_morriduneAI : public npc_escortAI +{ + npc_morriduneAI(Creature* pCreature) : npc_escortAI(pCreature) + { + DoScriptText(SAY_MORRIDUNE_1,pCreature); + m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + Start(false,false,NULL); + } + + void WaypointReached(uint32 uiPoint) + { + switch(uiPoint) + { + case 4: + SetEscortPaused(true); + m_creature->SetOrientation(1.775791); + m_creature->SendMovementFlagUpdate(); + m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + DoScriptText(SAY_MORRIDUNE_2,m_creature); + break; + } + } +}; + +CreatureAI* GetAI_npc_morridune(Creature* pCreature) +{ + return new npc_morriduneAI (pCreature); +} + +bool GossipHello_npc_morridune(Player* pPlayer, Creature* pCreature) +{ + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_MORRIDUNE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); + + pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID()); + return true; +} + +bool GossipSelect_npc_morridune(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction) +{ + switch(uiAction) + { + case GOSSIP_ACTION_INFO_DEF+1: + pPlayer->TeleportTo(1,9952.239,2284.277,1341.394,1.595); + pPlayer->CLOSE_GOSSIP_MENU(); + break; + } + return true; +} + void AddSC_blackfathom_deeps() { Script *newscript; @@ -183,4 +242,11 @@ void AddSC_blackfathom_deeps() newscript->Name = "npc_blackfathom_deeps_event"; newscript->GetAI = &GetAI_npc_blackfathom_deeps_event; newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "npc_morridune"; + newscript->GetAI = &GetAI_npc_morridune; + newscript->pGossipHello = &GossipHello_npc_morridune; + newscript->pGossipSelect = &GossipSelect_npc_morridune; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h index 317aa67fa1c..e8bbab9f105 100644 --- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h +++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/blackfathom_deeps.h @@ -35,7 +35,9 @@ enum Creatures NPC_AKU_MAI_SNAPJAW = 4825, NPC_MURKSHALLOW_SOFTSHELL = 4977, NPC_AKU_MAI_SERVANT = 4978, - NPC_BARBED_CRUSTACEAN = 4823 + NPC_BARBED_CRUSTACEAN = 4823, + + NPC_MORRIDUNE = 6729 }; enum GameObjects diff --git a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp index a1ba1c63934..c925616d32d 100644 --- a/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp +++ b/src/bindings/scripts/scripts/kalimdor/blackfathom_depths/instance_blackfathom_deeps.cpp @@ -46,6 +46,7 @@ const Position SpawnsLocation[] = {-775.404, -174.132, -25.871, 3.185}, {-862.430, -154.937, -25.871, 0.060}, {-862.193, -174.251, -25.871, 6.182}, + {-863.895, -458.899, -33.891, 5.637} }; struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance @@ -142,7 +143,10 @@ struct TRINITY_DLL_DECL instance_blackfathom_deeps : public ScriptedInstance m_auiEncounter[3] = uiData; if (uiData == DONE) if (GameObject *pGo = instance->GetGameObject(m_uiAltarOfTheDeepsGUID)) + { pGo->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK1); + pGo->SummonCreature(NPC_MORRIDUNE,SpawnsLocation[4], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000); + } break; case DATA_FIRE: m_uiCountFires = uiData; |