aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/FULL/world_scripts_full.sql9
-rw-r--r--sql/updates/5023_world_scripts.sql5
-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
9 files changed, 402 insertions, 20 deletions
diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql
index b85b4b8cbb1..d53e4fed703 100644
--- a/sql/FULL/world_scripts_full.sql
+++ b/sql/FULL/world_scripts_full.sql
@@ -298,10 +298,11 @@ UPDATE `creature_template` SET `ScriptName`='mob_webbed_creature' WHERE `entry`=
UPDATE `creature_template` SET `ScriptName`='npc_captured_sunhawk_agent' WHERE `entry`=17824;
/* BOREAN TUNDRA */
+UPDATE `creature_template` SET `ScriptName`='npc_fizzcrank_fullthrottle' WHERE `entry`=25590;
UPDATE `creature_template` SET `ScriptName`='npc_surristrasz' WHERE `entry`=24795;
UPDATE `creature_template` SET `ScriptName`='npc_tiare' WHERE `entry`=30051;
UPDATE `creature_template` SET `ScriptName`='npc_sinkhole_kill_credit' WHERE `entry` IN (26248,26249);
-UPDATE `creature_template` SET `ScriptName`='npc_khunok_the_behemoth' WHERE (`entry`='25862');
+UPDATE `creature_template` SET `ScriptName`='npc_khunok_the_behemoth' WHERE `entry`=25862;
/* BURNING STEPPES */
UPDATE `creature_template` SET `ScriptName`='npc_ragged_john' WHERE `entry`=9563;
@@ -474,6 +475,9 @@ UPDATE `gameobject_template` SET `ScriptName`='go_gilded_brazier' WHERE `entry`=
/* GNOMEREGAN */
+/* GRIZZLY HILLS */
+UPDATE `creature_template` SET `ScriptName`='npc_orsonn_and_kodian' WHERE `entry` IN (27274, 27275);
+
/* GRUUL'S LAIR */
UPDATE `instance_template` SET `script`='instance_gruuls_lair' WHERE `map`=565;
UPDATE `creature_template` SET `ScriptName`='boss_gruul' WHERE `entry`=19044;
@@ -548,6 +552,9 @@ UPDATE `gameobject_template` SET `ScriptName`='go_haaleshi_altar' WHERE `entry`=
/* HINTERLANDS */
UPDATE `creature_template` SET `ScriptName`='npc_rinji' WHERE `entry`=7780;
+/* ICECROWN */
+UPDATE creature_template SET ScriptName='npc_arete' WHERE entry=29344;
+
/* IRONFORGE */
UPDATE `creature_template` SET `ScriptName`='npc_royal_historian_archesonus' WHERE `entry`=8879;
diff --git a/sql/updates/5023_world_scripts.sql b/sql/updates/5023_world_scripts.sql
new file mode 100644
index 00000000000..e753174d850
--- /dev/null
+++ b/sql/updates/5023_world_scripts.sql
@@ -0,0 +1,5 @@
+UPDATE creature_template SET ScriptName='npc_orsonn_and_kodian' WHERE entry IN (27274, 27275);
+
+UPDATE creature_template SET ScriptName='npc_fizzcrank_fullthrottle' WHERE entry=25590;
+
+UPDATE creature_template SET ScriptName='npc_arete' WHERE entry=29344;
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();
+}