diff options
-rw-r--r-- | sql/FULL/world_script_texts.sql | 7 | ||||
-rw-r--r-- | sql/FULL/world_scripts_full.sql | 1 | ||||
-rw-r--r-- | sql/updates/6398_world.sql | 11 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/northrend/borean_tundra.cpp | 143 |
4 files changed, 160 insertions, 2 deletions
diff --git a/sql/FULL/world_script_texts.sql b/sql/FULL/world_script_texts.sql index 140e3cab53d..481525fe0b4 100644 --- a/sql/FULL/world_script_texts.sql +++ b/sql/FULL/world_script_texts.sql @@ -1628,6 +1628,13 @@ INSERT INTO `script_texts` (`npc_entry`,`entry`,`content_default`,`content_loc1` (26170,-1571021,'You might be right, sister. My obligations to my land and King have been fulfilled. But there is still something that I owe to myself.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), (26170,-1571022,'I know that look in your eye... I''m not going to be able to talk you out of this. If you die on me again...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), (26170,-1571023,'Do not worry, Leryssa. I will come back to you when I''m done. Nothing in the world will stop me from coming home to the only family that I have left.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571024,'Pathetic fool! A servant of malygos would sooner die than aid an emeny...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571025,'Aargh! Do your worst, $C ! I''ll tell you NOTHING!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571026,'Aahhhh! Release me! I am of no use to you. I swear it!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571027,'Stop! I beg you, please stop. Please...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571028,'Alright! I am beaten. Your previous archmage is held in a prison, elevated and sealed. Even if you manage to reach her, Salrand herself holds the key. Your mission is folly!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571029,'I''ve given you the information, $C ! You''re wasting your time....',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571030,'Noooo! This tortue is inhumane! You have what you want... why don''t you just kill me?',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), -- -1 574 000 UTGARDE KEEP (23953,-1574000,'Your blood is mine!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13221,1,0,0,'keleseth SAY_AGGRO'), diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql index 5ea349b9dcd..9892eb021a9 100644 --- a/sql/FULL/world_scripts_full.sql +++ b/sql/FULL/world_scripts_full.sql @@ -383,6 +383,7 @@ UPDATE `creature_template` SET `ScriptName`='npc_thassarian' WHERE `entry`=26170 UPDATE `creature_template` SET `ScriptName`='npc_image_lich_king' WHERE `entry`=26203; UPDATE `creature_template` SET `ScriptName`='npc_counselor_talbot' WHERE `entry`=25301; UPDATE `creature_template` SET `ScriptName`='npc_beryl_sorcerer' WHERE `entry`=25316; +UPDATE `creature_template` SET `ScriptName` ='npc_imprisoned_beryl_sorcerer' WHERE `entry` = 25478; /* BURNING STEPPES */ diff --git a/sql/updates/6398_world.sql b/sql/updates/6398_world.sql new file mode 100644 index 00000000000..78debc46dfe --- /dev/null +++ b/sql/updates/6398_world.sql @@ -0,0 +1,11 @@ +DELETE FROM `script_texts` WHERE `entry` IN (-1571024, -1571025, -1571026, -1571027, -1571028, -1571029, -1571030); +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 + (25478,-1571024,'Pathetic fool! A servant of malygos would sooner die than aid an emeny...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571025,'Aargh! Do your worst, $C ! I''ll tell you NOTHING!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571026,'Aahhhh! Release me! I am of no use to you. I swear it!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571027,'Stop! I beg you, please stop. Please...',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571028,'Alright! I am beaten. Your previous archmage is held in a prison, elevated and sealed. Even if you manage to reach her, Salrand herself holds the key. Your mission is folly!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571029,'I''ve given you the information, $C ! You''re wasting your time....',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''), + (25478,-1571030,'Noooo! This tortue is inhumane! You have what you want... why don''t you just kill me?',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,''); + +UPDATE `creature_template` SET `ScriptName` ='npc_imprisoned_beryl_sorcerer' WHERE `entry` = 25478; diff --git a/src/bindings/scripts/scripts/northrend/borean_tundra.cpp b/src/bindings/scripts/scripts/northrend/borean_tundra.cpp index 7785fb465ef..e208b0304ef 100644 --- a/src/bindings/scripts/scripts/northrend/borean_tundra.cpp +++ b/src/bindings/scripts/scripts/northrend/borean_tundra.cpp @@ -741,10 +741,10 @@ enum eLurgglbr FACTION_ESCORTEE_H = 775, }; -#define SAY_WP_1_LUR_START -1571004 +/*#define SAY_WP_1_LUR_START -1571004 #define SAY_WP_1_LUR_END -1571005 #define SAY_WP_41_LUR_START -1571006 -#define SAY_WP_41_LUR_END -1571007 +#define SAY_WP_41_LUR_END -1571007*/ struct TRINITY_DLL_DECL npc_lurgglbrAI : public npc_escortAI { @@ -1633,6 +1633,140 @@ CreatureAI* GetAI_npc_beryl_sorcerer(Creature* pCreature) return new npc_beryl_sorcererAI(pCreature); } +/*###### +## npc_imprisoned_beryl_sorcerer +######*/ + +enum eImprisionedBerylSorcerer +{ + SPELL_NEURAL_NEEDLE = 45634, + + NPC_IMPRISONED_BERYL_SORCERER = 25478, + + SAY_IMPRISIONED_BERYL_1 = -1571024, + SAY_IMPRISIONED_BERYL_2 = -1571025, + SAY_IMPRISIONED_BERYL_3 = -1571026, + SAY_IMPRISIONED_BERYL_4 = -1571027, + SAY_IMPRISIONED_BERYL_5 = -1571028, + SAY_IMPRISIONED_BERYL_6 = -1571029, + SAY_IMPRISIONED_BERYL_7 = -1571030, +}; + +struct TRINITY_DLL_DECL npc_imprisoned_beryl_sorcererAI : public ScriptedAI +{ + npc_imprisoned_beryl_sorcererAI(Creature* pCreature) : ScriptedAI(pCreature) + { + pCaster = NULL; + } + + Player *pCaster; + + uint32 uiStep; + uint32 uiPhase; + + void Reset() + { + uiStep = 1; + uiPhase = 0; + } + + void EnterCombat(Unit* pWho) + { + return; + } + + void SpellHit(Unit* pCaster, const SpellEntry* pSpell) + { + if (pSpell->Id == SPELL_NEURAL_NEEDLE && pCaster->GetTypeId() == TYPEID_PLAYER) + { + ++uiPhase; + pCaster = CAST_PLR(pCaster); + } + } + + void UpdateAI(const uint32 uiDiff) + { + ScriptedAI::UpdateAI(uiDiff); + + if (!m_creature->HasAura(SPELL_COSMETIC_ENSLAVE_CHAINS_SELF)) + DoCast(m_creature, SPELL_COSMETIC_ENSLAVE_CHAINS_SELF); + + if (m_creature->GetReactState() != REACT_PASSIVE) + m_creature->SetReactState(REACT_PASSIVE); + + switch (uiPhase) + { + case 1: + if (uiStep == 1) + { + DoScriptText(SAY_IMPRISIONED_BERYL_1, m_creature); + uiStep = 2; + } + break; + + case 2: + if (uiStep == 2) + { + DoScriptText(SAY_IMPRISIONED_BERYL_2, m_creature); + uiStep = 3; + } + break; + + case 3: + if (uiStep == 3) + { + DoScriptText(SAY_IMPRISIONED_BERYL_3, m_creature); + uiStep = 4; + } + break; + + case 4: + if (uiStep == 4) + { + DoScriptText(SAY_IMPRISIONED_BERYL_4, m_creature); + uiStep = 5; + } + break; + + case 5: + if (uiStep == 5) + { + if (pCaster) + { + DoScriptText(SAY_IMPRISIONED_BERYL_5, m_creature); + pCaster->KilledMonsterCredit(25478,0); + uiStep = 6; + } + } + break; + + case 6: + if (uiStep == 6) + { + DoScriptText(SAY_IMPRISIONED_BERYL_6, m_creature); + uiStep = 7; + } + break; + + case 7: + if (uiStep == 7) + { + DoScriptText(SAY_IMPRISIONED_BERYL_7, m_creature); + uiStep = 1; + uiPhase = 0; + } + break; + + if (!UpdateVictim()) + return; + } + } +}; + +CreatureAI* GetAI_npc_imprisoned_beryl_sorcerer(Creature* pCreature) +{ + return new npc_imprisoned_beryl_sorcererAI(pCreature); +} void AddSC_borean_tundra() { @@ -1747,4 +1881,9 @@ void AddSC_borean_tundra() newscript->Name = "npc_beryl_sorcerer"; newscript->GetAI = &GetAI_npc_beryl_sorcerer; newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "npc_imprisoned_beryl_sorcerer"; + newscript->GetAI = &GetAI_npc_imprisoned_beryl_sorcerer; + newscript->RegisterSelf(); } |