aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKudlaty <none@none>2009-08-14 21:58:29 +0200
committerKudlaty <none@none>2009-08-14 21:58:29 +0200
commitf37885c086be2c937afa62dfde868ebbcd97d79c (patch)
tree85eeaf0c10a2233d3eb1e0f44299a9268f41e815 /src
parent372655d86263396738cc30a06026a3e16579dc3b (diff)
Merge [SD2]
r1281 Added support for quest 12247. Patch by Azuritus r1282 Added support for quest 11708. Patch by Azuritus. Additional cleanup and code style applied. r1283 Add support for quest 12807. Patch by Azuritus --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/CMakeLists.txt2
-rw-r--r--src/bindings/scripts/ScriptMgr.cpp14
-rw-r--r--src/bindings/scripts/VC80/80ScriptDev2.vcproj7
-rw-r--r--src/bindings/scripts/VC90/90ScriptDev2.vcproj7
-rw-r--r--src/bindings/scripts/scripts/zone/borean_tundra/borean_tundra.cpp135
-rw-r--r--src/bindings/scripts/scripts/zone/grizzly_hills/grizzly_hills.cpp126
-rw-r--r--src/bindings/scripts/scripts/zone/icecrown/icecrown.cpp117
7 files changed, 389 insertions, 19 deletions
diff --git a/src/bindings/scripts/CMakeLists.txt b/src/bindings/scripts/CMakeLists.txt
index abb674d0650..1099628a7d9 100644
--- a/src/bindings/scripts/CMakeLists.txt
+++ b/src/bindings/scripts/CMakeLists.txt
@@ -162,6 +162,7 @@ SET(trinityscript_LIB_SRCS
scripts/zone/felwood/felwood.cpp
scripts/zone/feralas/feralas.cpp
scripts/zone/ghostlands/ghostlands.cpp
+ scripts/zone/grizzly_hills/grizzly_hills.cpp
scripts/zone/gruuls_lair/boss_gruul.cpp
scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
scripts/zone/gruuls_lair/def_gruuls_lair.h
@@ -187,6 +188,7 @@ SET(trinityscript_LIB_SRCS
scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp
scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
scripts/zone/hinterlands/hinterlands.cpp
+ scripts/zone/icecrown/icecrown.cpp
scripts/zone/ironforge/ironforge.cpp
scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
scripts/zone/karazhan/boss_curator.cpp
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp
index 9c6ca874357..67c31cd496d 100644
--- a/src/bindings/scripts/ScriptMgr.cpp
+++ b/src/bindings/scripts/ScriptMgr.cpp
@@ -292,6 +292,10 @@ extern void AddSC_feralas();
extern void AddSC_ghostlands();
//Gnomeregan
+
+//Grizzly Hills
+extern void AddSC_grizzly_hills();
+
//Gruul's Lair
extern void AddSC_boss_gruul();
extern void AddSC_boss_high_king_maulgar();
@@ -328,6 +332,9 @@ extern void AddSC_hellfire_peninsula();
//Hinterlands
extern void AddSC_hinterlands();
+//Icecrown
+extern void AddSC_icecrown();
+
//Ironforge
extern void AddSC_ironforge();
@@ -1220,6 +1227,10 @@ void ScriptsInit(char const* cfg_file = "trinitycore.conf")
AddSC_ghostlands();
//Gnomeregan
+
+ //Grizzly Hills
+ AddSC_grizzly_hills();
+
//Gruul's Lair
AddSC_boss_gruul();
AddSC_boss_high_king_maulgar();
@@ -1256,6 +1267,9 @@ void ScriptsInit(char const* cfg_file = "trinitycore.conf")
//Hinterlands
AddSC_hinterlands();
+ //Icecrown
+ AddSC_icecrown();
+
//Ironforge
AddSC_ironforge();
diff --git a/src/bindings/scripts/VC80/80ScriptDev2.vcproj b/src/bindings/scripts/VC80/80ScriptDev2.vcproj
index 55241f0486d..150a0854108 100644
--- a/src/bindings/scripts/VC80/80ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC80/80ScriptDev2.vcproj
@@ -2426,6 +2426,9 @@
<Filter
Name="Grizzly Hills"
>
+ <File
+ RelativePath="..\scripts\zone\grizzly_hills\grizzly_hills.cpp"
+ >
</Filter>
<Filter
Name="Zul&apos;Drak"
@@ -2466,6 +2469,10 @@
<Filter
Name="Icecrown"
>
+ <File
+ RelativePath="..\scripts\zone\icecrown\icecrown.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Sholazar Basin"
diff --git a/src/bindings/scripts/VC90/90ScriptDev2.vcproj b/src/bindings/scripts/VC90/90ScriptDev2.vcproj
index ba9ec93bb3f..4333b4a54b2 100644
--- a/src/bindings/scripts/VC90/90ScriptDev2.vcproj
+++ b/src/bindings/scripts/VC90/90ScriptDev2.vcproj
@@ -2426,6 +2426,9 @@
<Filter
Name="Grizzly Hills"
>
+ <File
+ RelativePath="..\scripts\zone\grizzly_hills\grizzly_hills.cpp"
+ >
</Filter>
<Filter
Name="Zul&apos;Drak"
@@ -2466,6 +2469,10 @@
<Filter
Name="Icecrown"
>
+ <File
+ RelativePath="..\scripts\zone\icecrown\icecrown.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Sholazar Basin"
diff --git a/src/bindings/scripts/scripts/zone/borean_tundra/borean_tundra.cpp b/src/bindings/scripts/scripts/zone/borean_tundra/borean_tundra.cpp
index 91b862eaa29..42b8a01009a 100644
--- a/src/bindings/scripts/scripts/zone/borean_tundra/borean_tundra.cpp
+++ b/src/bindings/scripts/scripts/zone/borean_tundra/borean_tundra.cpp
@@ -17,36 +17,92 @@
/* ScriptData
SDName: Borean_Tundra
SD%Complete: 100
-SDComment:
+SDComment: Quest support: 11708. Taxi vendors.
SDCategory: Borean Tundra
EndScriptData */
/* ContentData
-npc_tiare
+npc_fizzcrank_fullthrottle
npc_surristrasz
+npc_tiare
EndContentData */
#include "precompiled.h"
/*######
-## npc_tiare
+## npc_fizzcrank_fullthrottle
######*/
-#define GOSSIP_ITEM_TELEPORT "Teleport me to Amber Ledge, please."
+#define GOSSIP_ITEM_GO_ON "Go on."
+#define GOSSIP_ITEM_TELL_ME "Tell me what's going on out here, Fizzcrank."
-bool GossipHello_npc_tiare(Player* pPlayer, Creature* pCreature)
+enum
{
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELEPORT, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_GOSSIP);
+ GOSSIP_TEXTID_FIZZCRANK1 = 12456,
+ GOSSIP_TEXTID_FIZZCRANK2 = 12457,
+ GOSSIP_TEXTID_FIZZCRANK3 = 12458,
+ GOSSIP_TEXTID_FIZZCRANK4 = 12459,
+ GOSSIP_TEXTID_FIZZCRANK5 = 12460,
+ GOSSIP_TEXTID_FIZZCRANK6 = 12461,
+ GOSSIP_TEXTID_FIZZCRANK7 = 12462,
+ GOSSIP_TEXTID_FIZZCRANK8 = 12463,
+ GOSSIP_TEXTID_FIZZCRANK9 = 12464,
+
+ QUEST_THE_MECHAGNOMES = 11708
+};
+
+bool GossipHello_npc_fizzcrank_fullthrottle(Player* pPlayer, Creature* pCreature)
+{
+ if (pCreature->isQuestGiver())
+ pPlayer->PrepareQuestMenu(pCreature->GetGUID());
+
+ if (pPlayer->GetQuestStatus(QUEST_THE_MECHAGNOMES) == QUEST_STATUS_INCOMPLETE)
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELL_ME, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+
pPlayer->SEND_GOSSIP_MENU(pCreature->GetNpcTextId(), pCreature->GetGUID());
return true;
}
-bool GossipSelect_npc_tiare(Player* pPlayer, Creature* pCreature, uint32 sender, uint32 action)
+bool GossipSelect_npc_fizzcrank_fullthrottle(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
{
- if (action == GOSSIP_OPTION_GOSSIP)
+ switch(uiAction)
{
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,50135,true);
+ case GOSSIP_ACTION_INFO_DEF+1:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK1, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+2:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK2, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+3:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK3, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+4:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK4, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+5:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK5, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+6:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK6, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+7:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK7, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+8:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK8, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+9:
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK9, pCreature->GetGUID());
+ pPlayer->AreaExploredOrEventHappens(QUEST_THE_MECHAGNOMES);
+ break;
}
return true;
}
@@ -58,6 +114,11 @@ bool GossipSelect_npc_tiare(Player* pPlayer, Creature* pCreature, uint32 sender,
#define GOSSIP_ITEM_FREE_FLIGHT "I'd like passage to the Transitus Shield."
#define GOSSIP_ITEM_FLIGHT "May I use a drake to fly elsewhere?"
+enum
+{
+ SPELL_ABMER_TO_COLDARRA = 46064
+};
+
bool GossipHello_npc_surristrasz(Player* pPlayer, Creature* pCreature)
{
if (pCreature->isQuestGiver())
@@ -73,16 +134,46 @@ bool GossipHello_npc_surristrasz(Player* pPlayer, Creature* pCreature)
return true;
}
-bool GossipSelect_npc_surristrasz(Player* pPlayer, Creature* pCreature, uint32 sender, uint32 action)
+bool GossipSelect_npc_surristrasz(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
{
- if (action == GOSSIP_OPTION_GOSSIP)
+ if (uiAction == GOSSIP_OPTION_GOSSIP)
{
pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,46064,true); //TaxiPath 795 (amber to coldarra)
+
+ //TaxiPath 795 (amber to coldarra)
+ pPlayer->CastSpell(pPlayer, SPELL_ABMER_TO_COLDARRA, true);
}
- if (action == GOSSIP_OPTION_TAXIVENDOR)
- {
+
+ if (uiAction == GOSSIP_OPTION_TAXIVENDOR)
pPlayer->GetSession()->SendTaxiMenu(pCreature);
+
+ return true;
+}
+
+/*######
+## npc_tiare
+######*/
+
+#define GOSSIP_ITEM_TELEPORT "Teleport me to Amber Ledge, please."
+
+enum
+{
+ SPELL_TELEPORT_COLDARRA = 50135
+};
+
+bool GossipHello_npc_tiare(Player* pPlayer, Creature* pCreature)
+{
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELEPORT, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_GOSSIP);
+ pPlayer->SEND_GOSSIP_MENU(pCreature->GetNpcTextId(), pCreature->GetGUID());
+ return true;
+}
+
+bool GossipSelect_npc_tiare(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
+{
+ if (uiAction == GOSSIP_OPTION_GOSSIP)
+ {
+ pPlayer->CLOSE_GOSSIP_MENU();
+ pPlayer->CastSpell(pPlayer, SPELL_TELEPORT_COLDARRA, true);
}
return true;
}
@@ -236,18 +327,24 @@ void AddSC_borean_tundra()
Script *newscript;
newscript = new Script;
- newscript->Name = "npc_tiare";
- newscript->pGossipHello = &GossipHello_npc_tiare;
- newscript->pGossipSelect = &GossipSelect_npc_tiare;
+ newscript->Name = "npc_fizzcrank_fullthrottle";
+ newscript->pGossipHello = &GossipHello_npc_fizzcrank_fullthrottle;
+ newscript->pGossipSelect = &GossipSelect_npc_fizzcrank_fullthrottle;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_surristrasz";
- newscript->pGossipHello = &GossipHello_npc_surristrasz;
+ newscript->pGossipHello = &GossipHello_npc_surristrasz;
newscript->pGossipSelect = &GossipSelect_npc_surristrasz;
newscript->RegisterSelf();
newscript = new Script;
+ newscript->Name = "npc_tiare";
+ newscript->pGossipHello = &GossipHello_npc_tiare;
+ newscript->pGossipSelect = &GossipSelect_npc_tiare;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
newscript->Name="npc_sinkhole_kill_credit";
newscript->GetAI = &GetAI_npc_sinkhole_kill_credit;
newscript->RegisterSelf();
diff --git a/src/bindings/scripts/scripts/zone/grizzly_hills/grizzly_hills.cpp b/src/bindings/scripts/scripts/zone/grizzly_hills/grizzly_hills.cpp
new file mode 100644
index 00000000000..976122cd296
--- /dev/null
+++ b/src/bindings/scripts/scripts/zone/grizzly_hills/grizzly_hills.cpp
@@ -0,0 +1,126 @@
+/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ScriptData
+SDName: Grizzly_Hills
+SD%Complete: 80
+SDComment: Quest support: 12247
+SDCategory: Grizzly Hills
+EndScriptData */
+
+/* ContentData
+npc_orsonn_and_kodian
+EndContentData */
+
+#include "precompiled.h"
+
+#define GOSSIP_ITEM1 "You're free to go Orsonn, but first tell me what's wrong with the furbolg."
+#define GOSSIP_ITEM2 "What happened then?"
+#define GOSSIP_ITEM3 "Thank you, Son of Ursoc. I'll see what can be done."
+#define GOSSIP_ITEM4 "Who was this stranger?"
+#define GOSSIP_ITEM5 "Thank you, Kodian. I'll do what I can."
+
+enum
+{
+ GOSSIP_TEXTID_ORSONN1 = 12793,
+ GOSSIP_TEXTID_ORSONN2 = 12794,
+ GOSSIP_TEXTID_ORSONN3 = 12796,
+
+ GOSSIP_TEXTID_KODIAN1 = 12797,
+ GOSSIP_TEXTID_KODIAN2 = 12798,
+
+ NPC_ORSONN = 27274,
+ NPC_KODIAN = 27275,
+
+ //trigger creatures
+ NPC_ORSONN_CREDIT = 27322,
+ NPC_KODIAN_CREDIT = 27321,
+
+ QUEST_CHILDREN_OF_URSOC = 12247
+};
+
+bool GossipHello_npc_orsonn_and_kodian(Player* pPlayer, Creature* pCreature)
+{
+ if (pCreature->isQuestGiver())
+ pPlayer->PrepareQuestMenu(pCreature->GetGUID());
+
+ if (pPlayer->GetQuestStatus(QUEST_CHILDREN_OF_URSOC) == QUEST_STATUS_INCOMPLETE)
+ {
+ switch(pCreature->GetEntry())
+ {
+ case NPC_ORSONN:
+ if (!pPlayer->GetReqKillOrCastCurrentCount(QUEST_CHILDREN_OF_URSOC, NPC_ORSONN_CREDIT))
+ {
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ORSONN1, pCreature->GetGUID());
+ return true;
+ }
+ break;
+ case NPC_KODIAN:
+ if (!pPlayer->GetReqKillOrCastCurrentCount(QUEST_CHILDREN_OF_URSOC, NPC_KODIAN_CREDIT))
+ {
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_KODIAN1, pCreature->GetGUID());
+ return true;
+ }
+ break;
+ }
+ }
+
+ pPlayer->SEND_GOSSIP_MENU(pCreature->GetNpcTextId(), pCreature->GetGUID());
+ return true;
+}
+
+bool GossipSelect_npc_orsonn_and_kodian(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
+{
+ switch(uiAction)
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ORSONN2, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+2:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ORSONN3, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+3:
+ pPlayer->CLOSE_GOSSIP_MENU();
+ pPlayer->TalkedToCreature(NPC_ORSONN_CREDIT, pCreature->GetGUID());
+ break;
+
+ case GOSSIP_ACTION_INFO_DEF+4:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_KODIAN2, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+5:
+ pPlayer->CLOSE_GOSSIP_MENU();
+ pPlayer->TalkedToCreature(NPC_KODIAN_CREDIT, pCreature->GetGUID());
+ break;
+ }
+
+ return true;
+}
+
+void AddSC_grizzly_hills()
+{
+ Script* newscript;
+
+ newscript = new Script;
+ newscript->Name = "npc_orsonn_and_kodian";
+ newscript->pGossipHello = &GossipHello_npc_orsonn_and_kodian;
+ newscript->pGossipSelect = &GossipSelect_npc_orsonn_and_kodian;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/zone/icecrown/icecrown.cpp b/src/bindings/scripts/scripts/zone/icecrown/icecrown.cpp
new file mode 100644
index 00000000000..971cb454085
--- /dev/null
+++ b/src/bindings/scripts/scripts/zone/icecrown/icecrown.cpp
@@ -0,0 +1,117 @@
+/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ScriptData
+SDName: Icecrown
+SD%Complete: 100
+SDComment: Quest support: 12807
+SDCategory: Icecrown
+EndScriptData */
+
+/* ContentData
+npc_arete
+EndContentData */
+
+#include "precompiled.h"
+
+/*######
+## npc_arete
+######*/
+
+#define GOSSIP_ARETE_ITEM1 "Lord-Commander, I would hear your tale."
+#define GOSSIP_ARETE_ITEM2 "<You nod slightly but do not complete the motion as the Lord-Commander narrows his eyes before he continues.>"
+#define GOSSIP_ARETE_ITEM3 "I thought that they now called themselves the Scarlet Onslaught?"
+#define GOSSIP_ARETE_ITEM4 "Where did the grand admiral go?"
+#define GOSSIP_ARETE_ITEM5 "That's fine. When do I start?"
+#define GOSSIP_ARETE_ITEM6 "Let's finish this!"
+#define GOSSIP_ARETE_ITEM7 "That's quite a tale, Lord-Commander."
+
+enum
+{
+ GOSSIP_TEXTID_ARETE1 = 13525,
+ GOSSIP_TEXTID_ARETE2 = 13526,
+ GOSSIP_TEXTID_ARETE3 = 13527,
+ GOSSIP_TEXTID_ARETE4 = 13528,
+ GOSSIP_TEXTID_ARETE5 = 13529,
+ GOSSIP_TEXTID_ARETE6 = 13530,
+ GOSSIP_TEXTID_ARETE7 = 13531,
+
+ QUEST_THE_STORY_THUS_FAR = 12807
+};
+
+bool GossipHello_npc_arete(Player* pPlayer, Creature* pCreature)
+{
+ if (pCreature->isQuestGiver())
+ pPlayer->PrepareQuestMenu(pCreature->GetGUID());
+
+ if (pPlayer->GetQuestStatus(QUEST_THE_STORY_THUS_FAR) == QUEST_STATUS_INCOMPLETE)
+ {
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE1, pCreature->GetGUID());
+ return true;
+ }
+
+ pPlayer->SEND_GOSSIP_MENU(pCreature->GetNpcTextId(), pCreature->GetGUID());
+ return true;
+}
+
+bool GossipSelect_npc_arete(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
+{
+ switch(uiAction)
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE2, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+2:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE3, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+3:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE4, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+4:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE5, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+5:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE6, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+6:
+ pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ARETE_ITEM7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
+ pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_ARETE7, pCreature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+7:
+ pPlayer->CLOSE_GOSSIP_MENU();
+ pPlayer->AreaExploredOrEventHappens(QUEST_THE_STORY_THUS_FAR);
+ break;
+ }
+
+ return true;
+}
+
+void AddSC_icecrown()
+{
+ Script *newscript;
+
+ newscript = new Script;
+ newscript->Name = "npc_arete";
+ newscript->pGossipHello = &GossipHello_npc_arete;
+ newscript->pGossipSelect = &GossipSelect_npc_arete;
+ newscript->RegisterSelf();
+}