diff options
| -rw-r--r-- | sql/updates/world/2011_10_22_16_world_core_script_support.sql | 10 | ||||
| -rw-r--r-- | src/server/scripts/Outland/nagrand.cpp | 40 |
2 files changed, 50 insertions, 0 deletions
diff --git a/sql/updates/world/2011_10_22_16_world_core_script_support.sql b/sql/updates/world/2011_10_22_16_world_core_script_support.sql new file mode 100644 index 00000000000..c6049d49e19 --- /dev/null +++ b/sql/updates/world/2011_10_22_16_world_core_script_support.sql @@ -0,0 +1,10 @@ +SET @ENTRY := 18428; +UPDATE `gameobject_template` SET `ScriptName`='go_warmaul_prison' WHERE `entry` IN (182484,182486,182487,182488,182489,182490,182491,182492,182493,182494,182495,182496,182497,182498,182499,182501,182502,182503,182504); +UPDATE `quest_template` SET `ReqSpellCast1`=0 WHERE `entry`=9948; +DELETE FROM `creature_text` WHERE `entry`=@ENTRY; +INSERT INTO `creature_text` (`entry`,`groupid`,`id`,`text`,`type`,`language`,`probability`,`emote`,`duration`,`sound`,`comment`) VALUES +(@ENTRY,0,0,"Death to the ogres!",12,0,100,0,0,0,"Mag'har Prisoner"), +(@ENTRY,1,1,"Many thanks, hero!",12,0,100,0,0,0,"Mag'har Prisoner"), +(@ENTRY,2,2,"One day, a hero will rise and lift the orcs up to their former glory.",12,0,100,0,0,0,"Mag'har Prisoner"), +(@ENTRY,3,3,"Spirits watch over you, $R!",12,0,100,0,0,0,"Mag'har Prisoner"), +(@ENTRY,4,4,"Thank you, $R! Your service to the Mag'har will not be forgotten.",12,0,100,0,0,0,"Mag'har Prisoner"); diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp index 3431fbe70dc..aa8e8918493 100644 --- a/src/server/scripts/Outland/nagrand.cpp +++ b/src/server/scripts/Outland/nagrand.cpp @@ -1156,6 +1156,45 @@ public: }; }; +/*###### +## go_warmaul_prison +######*/ + +enum FindingTheSurvivorsData +{ + QUEST_FINDING_THE_SURVIVORS = 9948, + NPC_MAGHAR_PRISONER = 18428, + + SAY_FREE_0 = 0, + SAY_FREE_1 = 1, + SAY_FREE_2 = 2, + SAY_FREE_3 = 3, + SAY_FREE_4 = 4, +}; + +class go_warmaul_prison : public GameObjectScript +{ +public: + go_warmaul_prison() : GameObjectScript("go_warmaul_prison") { } + + bool OnGossipHello(Player* player, GameObject* go) + { + if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 1.0f)) + { + if (prisoner) + { + go->UseDoorOrButton(); + if (player) + player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0); + + prisoner->AI()->Talk(RAND(SAY_FREE_0, SAY_FREE_1, SAY_FREE_2, SAY_FREE_3, SAY_FREE_4), player->GetGUID()); + prisoner->ForcedDespawn(6000); + } + } + return true; + } +}; + void AddSC_nagrand() { new mob_shattered_rumbler(); @@ -1169,4 +1208,5 @@ void AddSC_nagrand() new npc_corki(); new go_corkis_prison(); new npc_kurenai_captive(); + new go_warmaul_prison(); } |
