Added support for quest 12741. Patch by virusav.
authordeverend <deverend@5f9c896b-1e26-0410-94da-f77f675e2462>
Thu, 1 Apr 2010 14:11:37 +0000 (1 14:11 +0000)
committerdeverend <deverend@5f9c896b-1e26-0410-94da-f77f675e2462>
Thu, 1 Apr 2010 14:11:37 +0000 (1 14:11 +0000)
git-svn-id: https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2@1661 5f9c896b-1e26-0410-94da-f77f675e2462

scripts/world/areatrigger_scripts.cpp
sql/Updates/r1661_mangos.sql [new file with mode: 0644]
sql/mangos_scriptname_full.sql

index c22fe24..14948f0 100644 (file)
@@ -17,7 +17,7 @@
 /* ScriptData
 SDName: Areatrigger_Scripts
 SD%Complete: 100
-SDComment: Quest support: 6681, 11686, 10589/10604, 13315/13351
+SDComment: Quest support: 6681, 11686, 10589/10604, 12741, 13315/13351
 SDCategory: Areatrigger
 EndScriptData */
 
@@ -26,9 +26,8 @@ at_aldurthar_gate               5284,5285,5286,5287
 at_coilfang_waterfall           4591
 at_legion_teleporter            4560 Teleporter TO Invasion Point: Cataclysm
 at_ravenholdt
-at_warsong_slaughterhouse
-at_warsong_grainery
-at_torp_farm
+at_warsong_farms
+at_stormwright_shelf            5108
 EndContentData */
 
 #include "precompiled.h"
@@ -50,16 +49,15 @@ enum
     NPC_NORTHWEST_GATE          = 32199
 };
 
-bool AreaTrigger_at_aldurthar_gate(Player* pPlayer, AreaTriggerEntry *pAt)
+bool AreaTrigger_at_aldurthar_gate(Player* pPlayer, AreaTriggerEntrypAt)
 {
     switch(pAt->id)
     {
-        case TRIGGER_SOUTH: pPlayer->KilledMonsterCredit(NPC_SOUTH_GATE, 0); break;
-        case TRIGGER_CENTRAL: pPlayer->KilledMonsterCredit(NPC_CENTRAL_GATE, 0); break;
-        case TRIGGER_NORTH: pPlayer->KilledMonsterCredit(NPC_NORTH_GATE, 0); break;
+        case TRIGGER_SOUTH:     pPlayer->KilledMonsterCredit(NPC_SOUTH_GATE, 0);     break;
+        case TRIGGER_CENTRAL:   pPlayer->KilledMonsterCredit(NPC_CENTRAL_GATE, 0);   break;
+        case TRIGGER_NORTH:     pPlayer->KilledMonsterCredit(NPC_NORTH_GATE, 0);     break;
         case TRIGGER_NORTHWEST: pPlayer->KilledMonsterCredit(NPC_NORTHWEST_GATE, 0); break;
     }
-
     return true;
 }
 
@@ -79,7 +77,6 @@ bool AreaTrigger_at_coilfang_waterfall(Player* pPlayer, AreaTriggerEntry* pAt)
         if (pGo->getLootState() == GO_READY)
             pGo->UseDoorOrButton();
     }
-
     return false;
 }
 
@@ -100,18 +97,17 @@ bool AreaTrigger_at_legion_teleporter(Player* pPlayer, AreaTriggerEntry* pAt)
 {
     if (pPlayer->isAlive() && !pPlayer->isInCombat())
     {
-        if (pPlayer->GetTeam()== ALLIANCE && pPlayer->GetQuestRewardStatus(QUEST_GAINING_ACCESS_A))
+        if (pPlayer->GetTeam() == ALLIANCE && pPlayer->GetQuestRewardStatus(QUEST_GAINING_ACCESS_A))
         {
-            pPlayer->CastSpell(pPlayer,SPELL_TELE_A_TO,false);
+            pPlayer->CastSpell(pPlayer, SPELL_TELE_A_TO, false);
             return true;
         }
 
-        if (pPlayer->GetTeam()== HORDE && pPlayer->GetQuestRewardStatus(QUEST_GAINING_ACCESS_H))
+        if (pPlayer->GetTeam() == HORDE && pPlayer->GetQuestRewardStatus(QUEST_GAINING_ACCESS_H))
         {
-            pPlayer->CastSpell(pPlayer,SPELL_TELE_H_TO,false);
+            pPlayer->CastSpell(pPlayer, SPELL_TELE_H_TO, false);
             return true;
         }
-
         return false;
     }
     return false;
@@ -136,7 +132,7 @@ bool AreaTrigger_at_ravenholdt(Player* pPlayer, AreaTriggerEntry* pAt)
 }
 
 /*######
-## Quest 11686
+## at_warsong_farms
 ######*/
 
 enum
@@ -144,29 +140,41 @@ enum
     QUEST_THE_WARSONG_FARMS     = 11686,
     NPC_CREDIT_SLAUGHTERHOUSE   = 25672,
     NPC_CREDIT_GRAINERY         = 25669,
-    NPC_CREDIT_TORP_FARM        = 25671
+    NPC_CREDIT_TORP_FARM        = 25671,
+
+    AT_SLAUGHTERHOUSE           = 4873,
+    AT_GRAINERY                 = 4871,
+    AT_TORP_FARM                = 4872
 };
-bool AreaTrigger_at_warsong_slaughterhouse(Player* pPlayer, AreaTriggerEntry *pAt)
+
+bool AreaTrigger_at_warsong_farms(Player* pPlayer, AreaTriggerEntry* pAt)
 {
     if (!pPlayer->isDead() && pPlayer->GetQuestStatus(QUEST_THE_WARSONG_FARMS) == QUEST_STATUS_INCOMPLETE)
-        pPlayer->KilledMonsterCredit(NPC_CREDIT_SLAUGHTERHOUSE, 0);
-
+    {
+        switch(pAt->id)
+        {
+            case AT_SLAUGHTERHOUSE: pPlayer->KilledMonsterCredit(NPC_CREDIT_SLAUGHTERHOUSE, 0); break;
+            case AT_GRAINERY:       pPlayer->KilledMonsterCredit(NPC_CREDIT_GRAINERY, 0);       break;
+            case AT_TORP_FARM:      pPlayer->KilledMonsterCredit(NPC_CREDIT_TORP_FARM, 0);      break;
+        }
+    }
     return true;
-}
+ }
 
-bool AreaTrigger_at_warsong_grainery(Player* pPlayer, AreaTriggerEntry *pAt)
-{
-    if (!pPlayer->isDead() && pPlayer->GetQuestStatus(QUEST_THE_WARSONG_FARMS) == QUEST_STATUS_INCOMPLETE)
-        pPlayer->KilledMonsterCredit(NPC_CREDIT_GRAINERY, 0);
+/*######
+## Quest 12741
+######*/
 
-    return true;
-}
+enum
+{
+    QUEST_STRENGTH_OF_THE_TEMPEST            = 12741,
+    SPELL_CREATE_TRUE_POWER_OF_THE_TEMPEST   = 53067
+};
 
-bool AreaTrigger_at_torp_farm(Player* pPlayer, AreaTriggerEntry *pAt)
+bool AreaTrigger_at_stormwright_shelf(Player* pPlayer, AreaTriggerEntry* pAt)
 {
-    if (!pPlayer->isDead() && pPlayer->GetQuestStatus(QUEST_THE_WARSONG_FARMS) == QUEST_STATUS_INCOMPLETE)
-        pPlayer->KilledMonsterCredit(NPC_CREDIT_TORP_FARM, 0);
+    if (!pPlayer->isDead() && pPlayer->GetQuestStatus(QUEST_STRENGTH_OF_THE_TEMPEST) == QUEST_STATUS_INCOMPLETE)
+        pPlayer->CastSpell(pPlayer, SPELL_CREATE_TRUE_POWER_OF_THE_TEMPEST, false);
 
     return true;
 }
@@ -196,17 +204,12 @@ void AddSC_areatrigger_scripts()
     newscript->RegisterSelf();
 
     newscript = new Script;
-    newscript->Name = "at_warsong_slaughterhouse";
-    newscript->pAreaTrigger = &AreaTrigger_at_warsong_slaughterhouse;
-    newscript->RegisterSelf();
-
-    newscript = new Script;
-    newscript->Name = "at_warsong_grainery";
-    newscript->pAreaTrigger = &AreaTrigger_at_warsong_grainery;
+    newscript->Name = "at_warsong_farms";
+    newscript->pAreaTrigger = &AreaTrigger_at_warsong_farms;
     newscript->RegisterSelf();
 
     newscript = new Script;
-    newscript->Name = "at_torp_farm";
-    newscript->pAreaTrigger = &AreaTrigger_at_torp_farm;
+    newscript->Name = "at_stormwright_shelf";
+    newscript->pAreaTrigger = &AreaTrigger_at_stormwright_shelf;
     newscript->RegisterSelf();
 }
diff --git a/sql/Updates/r1661_mangos.sql b/sql/Updates/r1661_mangos.sql
new file mode 100644 (file)
index 0000000..65d315c
--- /dev/null
@@ -0,0 +1,9 @@
+DELETE FROM areatrigger_scripts WHERE entry=5108;
+INSERT INTO areatrigger_scripts VALUES (5108,'at_stormwright_shelf');
+
+DELETE FROM areatrigger_scripts WHERE entry IN (4871, 4872, 4873);
+INSERT INTO areatrigger_scripts VALUES
+(4871,'at_warsong_farms'),
+(4872,'at_warsong_farms'),
+(4873,'at_warsong_farms');
+
index 5702c5b..4fc4257 100644 (file)
@@ -9,9 +9,9 @@ DELETE FROM areatrigger_scripts WHERE entry=3066;
 INSERT INTO areatrigger_scripts VALUES (3066,'at_ravenholdt');
 DELETE FROM areatrigger_scripts WHERE entry IN (4871, 4872, 4873);
 INSERT INTO areatrigger_scripts VALUES
-(4871,'at_warsong_grainery'),
-(4872,'at_torp_farm'),
-(4873,'at_warsong_slaughterhouse');
+(4871,'at_warsong_farms'),
+(4872,'at_warsong_farms'),
+(4873,'at_warsong_farms');
 DELETE FROM areatrigger_scripts WHERE entry BETWEEN 5284 AND 5287;
 INSERT INTO areatrigger_scripts VALUES
 (5284,'at_aldurthar_gate'),
@@ -20,6 +20,8 @@ INSERT INTO areatrigger_scripts VALUES
 (5287,'at_aldurthar_gate');
 DELETE FROM areatrigger_scripts WHERE entry=4112;
 INSERT INTO areatrigger_scripts VALUES (4112,'at_naxxramas');
+DELETE FROM areatrigger_scripts WHERE entry=5108;
+INSERT INTO areatrigger_scripts VALUES (5108,'at_stormwright_shelf');
 
 /* BATTLEGROUNDS */
 UPDATE creature_template SET ScriptName='npc_spirit_guide' WHERE entry IN (13116, 13117);