/* Copyright (C) 2006,2007 ScriptDev2 * 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 */ #include "../sc_defines.h" #include "../../../../game/GossipDef.h" #include "../../../../game/Player.h" long long int money_int; int costo_int; // **** This script is designed as an example for others to build on **** // **** Please modify whatever you'd like to as this script is only for developement **** // **** Script Info **** // This script is written in a way that it can be used for both friendly and hostile monsters // Its primary purpose is to show just how much you can really do with scripts // I recommend trying it out on both an agressive NPC and on friendly npc // **** Quick Info **** // Functions with Handled Function marked above them are functions that are called automatically by the core // Functions that are marked Custom Function are functions I've created to simplify code //This function is called when the player clicks an option on the gossip menu struct MANGOS_DLL_DECL instance : public ScriptedAI { }; void SendDefaultMenu_instance(Player *player, Creature *_Creature, uint32 action) { if (action == GOSSIP_ACTION_INFO_DEF + 1)//Ragefire Chasm { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 8) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Ragefire Chasm with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(389, 3.81, -14.82, -17.84, 4.31931); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 8 to enter Ragefire Chasm.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 2)//Wailing Caverns { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 10) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Wailing Caverns with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, -861.901, -2044.22, 82.1198, 0.375409); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 10 to enter Wailing Caverns.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 3)//The Deadmines { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 8) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to The Deadmines with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, -11081.8, 1527.01, 43.321, 4.66134); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 8 to enter The Deadmines.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 4)//Shadowfang Keep { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 10) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Shadowfang Keep with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, -247.625, 1524.89, 77.0431, 1.26284); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 10 to enter Shadowfang Keep.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 5)//Blackfathom Deeps { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 10) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Blackfathom Deeps with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, 4116.12, 869.897, 9.84358, 5.99259); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 10 to enter Blackfathom Deeps.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 6)//The Stockade { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 10) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to The Stockade with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(34, 54.23, 0.28, -18.3424, 6.21668); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 10 to enter The Stockade.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 7)//Gnomeregan { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 15) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Gnomeregan with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, -5181.16, 631.054, 398.547, 1.51189); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 15 to enter Gnomeregan.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 8)//Razorfen Kraul { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 15) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Razorfen Kraul with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, -4477.34, -1814.47, 86.5479, 1.61632); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 15 to enter Razorfen Kraul.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 9)//The Scarlet Monestary { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 20) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to The Scarlet Monestary with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, 2659.85, -673.719, 112.127, 6.00437); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 20 to enter The Scarlet Monestary.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 10)//Razorfen Downs { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 20) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Razorfen Downs with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, -4422.24, -1961.41, 86.4465, 4.12959); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 20 to enter Razorfen Downs.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 11)//Uldaman { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 30) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Uldaman with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, -6110.62, -3304.7, 256.591, 1.27628); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 30 to enter Uldaman.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 12)//Zul'Farrak { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 30) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Zul'Farrak with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, -6887.52, -2901.55, 9.44237, 6.14574); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 30 to enter Zul'Farrak.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 13)//Maraudon { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 30) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Maraudon with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, -1424.25, 2832.14, 115.948, 1.51421); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 30 to enter Maraudon.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 14)//Temple of Atal'Hakkar { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 35) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Atal'Hakkar with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, -10183.9, -3993.01, -109.195, 6.04364); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 35 to enter Temple of Atal'Hakkar.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 15)//More { player->ADD_GOSSIP_ITEM( 0, "Blackrock Depths (52-60) - 1 Gold" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 1); player->ADD_GOSSIP_ITEM( 0, "Blackrock Spire (55-60) - 1 Gold" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 2); player->ADD_GOSSIP_ITEM( 0, "Dire Maul (55-60) - 1 Gold" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 3); player->ADD_GOSSIP_ITEM( 0, "Stratholme (58-60) - 1 Gold" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 4); player->ADD_GOSSIP_ITEM( 0, "Scholomance (58-60) - 1 Gold" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 5); player->ADD_GOSSIP_ITEM( 0, "<- [Previous]" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 6); if (player->GetQuestStatus(6565652) == QUEST_STATUS_COMPLETE) { player->ADD_GOSSIP_ITEM( 0, "Zul Aman" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 7); player->ADD_GOSSIP_ITEM( 0, "Black Temple" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 8); player->ADD_GOSSIP_ITEM( 0, "Coilfang Resevoir" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 9); player->ADD_GOSSIP_ITEM( 0, "Auchindoun" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 10); player->ADD_GOSSIP_ITEM( 0, "Tempest Keep" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 11); } else { player->ADD_GOSSIP_ITEM( 0, "Outland Instances" , GOSSIP_SENDER_SEC_PROFTRAIN, GOSSIP_ACTION_INFO_DEF + 12); } player->PlayerTalkClass->SendGossipMenu(907,_Creature->GetGUID()); } } void SendSecMenu_instance(Player *player, Creature *_Creature, uint32 action) { if (action == GOSSIP_ACTION_INFO_DEF + 1)//Blackrock Depths { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return;} if (player->getLevel() >= 45) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Blackrock Depths with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, -7305.1, -913.556, 165.419, 0.058899); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 45 to enter Blackrock Depths.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 2)//Blackrock Spire { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 45) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Blackrock Spire with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(229, 79.1274, -237.883, 54.561, 1.63168); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 45 to enter Blackrock Spire.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 3)//Dire Maul { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 40) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Dire Maul with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(1, -3519.64, 1121.92, 161.025, 4.73595); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 40 to enter Dire Maul.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 4)//Stratholme { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 45) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Stratholme with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, 3180.93, -4039.18, 106.589, 6.26355); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 45 to enter Stratholme.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 5)//Scholomance { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 45) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Scholomance with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(0, 1226.07, -2599.12, 88.1772, 0.444533); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 45 to enter Scholomance.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 6)//Previous { player->ADD_GOSSIP_ITEM( 0, "Ragefire Chasm (13-18) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); player->ADD_GOSSIP_ITEM( 0, "Wailing Caverns (17-24) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); player->ADD_GOSSIP_ITEM( 0, "The Deadmines (17-26) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); player->ADD_GOSSIP_ITEM( 0, "Shadowfang Keep (22-30) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); player->ADD_GOSSIP_ITEM( 0, "Blackfathom Deeps (24-32) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); player->ADD_GOSSIP_ITEM( 0, "The Stockade (24-32) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); player->ADD_GOSSIP_ITEM( 0, "Gnomeregan (29-38) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); player->ADD_GOSSIP_ITEM( 0, "Razorfen Kraul (29-38) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8); player->ADD_GOSSIP_ITEM( 0, "The Scarlet Monestary (34-45) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9); player->ADD_GOSSIP_ITEM( 0, "Rarorfen Downs (35-40) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10); player->ADD_GOSSIP_ITEM( 0, "Uldaman (41-51) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11); player->ADD_GOSSIP_ITEM( 0, "Zul'Farrak (44-54) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12); player->ADD_GOSSIP_ITEM( 0, "Maraudon (46-55) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13); player->ADD_GOSSIP_ITEM( 0, "Temple of Atal'Hakkar (50-56) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14); player->ADD_GOSSIP_ITEM( 0, "[More] ->" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15); player->PlayerTalkClass->SendGossipMenu(907,_Creature->GetGUID()); } if (action == GOSSIP_ACTION_INFO_DEF + 7)//Zul Aman { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 68) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Scholomance with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(530, 6846.95, -7954.50, 170.12, 0.444533); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 68 to enter Zul Aman.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 8)//BT { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 70) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Scholomance with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(530, -3622.79, 329.93, 38.75, 0.444533); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 70 to enter Black Temple.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 9)//Coilfang Res { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 70) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Scholomance with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(530, 721.75, 6847.51, 68.78, 0.444533); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 70 to enter Coilfang Resevoir.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 10)//Auchindoun { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 68) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Scholomance with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(530, -3337.95, 4945.91, -101.49, 0.444533); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 68 to enter Auchindoun.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 11)//Tempest Keep { money_int = player-> GetMoney(); costo_int = 10000; if (money_int < costo_int ) { _Creature->Say("You haven't enough money", LANG_UNIVERSAL, NULL); return; } if (player->getLevel() >= 70) { //((instance&)_Creature->AI()).DoPlaySoundToSet(_Creature,3226); //_Creature->Say("Off to Temple of Scholomance with you, $N!",LANG_UNIVERSAL, NULL); player->TeleportTo(530, 3037.02, 1797.48, 142.95, 0.444533); player->ModifyMoney(-1*costo_int); } else { _Creature->Say(" you must be at least level 70 to enter Tempest Keep.",LANG_UNIVERSAL, NULL); } player->PlayerTalkClass->CloseGossip(); } if (action == GOSSIP_ACTION_INFO_DEF + 12)//Tell ABout Quest { _Creature->Say("You must speak to my good friend Darkboss first, he will be making sure the black market is safe.",LANG_UNIVERSAL, NULL); player->PlayerTalkClass->CloseGossip(); } } //This function is called when the player clicks an option on the gossip menu bool GossipSelect_instance(Player *player, Creature *_Creature, uint32 sender, uint32 action ) { if (sender == GOSSIP_SENDER_MAIN) SendDefaultMenu_instance(player, _Creature, action); if (sender == GOSSIP_SENDER_SEC_PROFTRAIN) SendSecMenu_instance(player, _Creature, action); return true; } //This function is called when the player opens the gossip menu bool GossipHello_instance(Player *player, Creature *_Creature) { player->ADD_GOSSIP_ITEM( 0, "Ragefire Chasm (13-18) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); player->ADD_GOSSIP_ITEM( 0, "Wailing Caverns (17-24) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); player->ADD_GOSSIP_ITEM( 0, "The Deadmines (17-26) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); player->ADD_GOSSIP_ITEM( 0, "Shadowfang Keep (22-30) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4); player->ADD_GOSSIP_ITEM( 0, "Blackfathom Deeps (24-32) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); player->ADD_GOSSIP_ITEM( 0, "The Stockade (24-32) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6); player->ADD_GOSSIP_ITEM( 0, "Gnomeregan (29-38 - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7); player->ADD_GOSSIP_ITEM( 0, "Razorfen Kraul (29-38) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8); player->ADD_GOSSIP_ITEM( 0, "The Scarlet Monestary (34-45) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9); player->ADD_GOSSIP_ITEM( 0, "Rarorfen Downs (35-40) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10); player->ADD_GOSSIP_ITEM( 0, "Uldaman (41-51) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11); player->ADD_GOSSIP_ITEM( 0, "Zul'Farrak (44-54) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12); player->ADD_GOSSIP_ITEM( 0, "Maraudon (46-55) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13); player->ADD_GOSSIP_ITEM( 0, "Temple of Atal'Hakkar (50-56) - 1 Gold" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14); player->ADD_GOSSIP_ITEM( 0, "[More] ->" , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15); player->PlayerTalkClass->SendGossipMenu(907,_Creature->GetGUID()); return true; } bool ReciveEmote_instance(Player *player, Creature *_Creature, uint32 emote) { _Creature->HandleEmoteCommand(emote); /*if (emote == EMOTE_STATE_DANCE) _Creature->Say("Cut out the shenanigans!",LANG_UNIVERSAL,NULL); if (emote == EMOTE_ONESHOT_SALUTE) _Creature->Say("Carry on soldier.",LANG_UNIVERSAL,NULL);*/ return true; } void AddSC_instance() { Script *newscript; newscript = new Script; newscript->Name="instance"; newscript->pGossipHello = &GossipHello_instance; newscript->pGossipSelect = &GossipSelect_instance; newscript->pReceiveEmote = &ReciveEmote_instance; m_scripts[nrscripts++] = newscript; }