Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptedPch.h"
- #include "../../shared/Config/Config.h"
- #ifndef _TRINITY_SCRIPT_CONFIG
- # define _TRINITY_SCRIPT_CONFIG "trinitycore.conf"
- #endif _TRINITY_SCRIPT_CONFIG
- bool GossipHello_mallguard(Player* pPlayer, Creature* pCreature)
- {
- Config TScriptConfig;
- if(!TScriptConfig.SetSource(_TRINITY_SCRIPT_CONFIG,true))
- error_log("SD2: Unable to open configuration file");
- if(TScriptConfig.GetBoolDefault("mallguard.OnlyGMs", false)) // If mallguard.OnlyGMs is enabled in scriptdev2.conf
- if (pPlayer->GetSession()->GetSecurity() == SEC_PLAYER)
- {
- pCreature->MonsterWhisper("Sorry, I can only teleport game masters.", pPlayer->GetGUID());
- return true;
- }
- //bool EnableResSickness = TScriptConfig.GetBoolDefault("mallguard.EnableRemoveResSickness", true);
- bool EnableAlliancevsHordePvP = TScriptConfig.GetBoolDefault("mallguard.EnableAlliancevsHordePvP", true);
- bool EnablePlayerTools = TScriptConfig.GetBoolDefault("mallguard.EnablePlayerTools", true);
- bool EnableInnkeeper = TScriptConfig.GetBoolDefault("mallguard.EnableInnkeeper", true);
- bool EnableShoppingMall = TScriptConfig.GetBoolDefault("mallguard.EnableShoppingMall", false);
- bool EnableHarmonyGuildShip = TScriptConfig.GetBoolDefault("mallguard.HarmonyGuildShip", false);
- bool EnableUnityGuildShip = TScriptConfig.GetBoolDefault("mallguard.UnityGuildShip", false);
- // Main Menu for Alliance
- if (pPlayer->GetTeam() == ALLIANCE)
- {
- pPlayer->ADD_GOSSIP_ITEM( 8, "--- What Do I Do? ---" , GOSSIP_SENDER_MAIN, 1000);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Weapon Trainers ->" , GOSSIP_SENDER_MAIN, 1008);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Class Trainers ->" , GOSSIP_SENDER_MAIN, 1009);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Class Glyph Vendors" , GOSSIP_SENDER_MAIN, 1001);
- pPlayer->ADD_GOSSIP_ITEM( 7, "PVP Items + Weapon Vendors" , GOSSIP_SENDER_MAIN, 1002);
- pPlayer->ADD_GOSSIP_ITEM( 7, "PVE Items Vendors" , GOSSIP_SENDER_MAIN, 1003);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Profession Trainers + Mats" , GOSSIP_SENDER_MAIN, 1004);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Reagents + Food & Drink" , GOSSIP_SENDER_MAIN, 1005);
- pPlayer->ADD_GOSSIP_ITEM( 7, "General Goods" , GOSSIP_SENDER_MAIN, 1006);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Ye Old Teleporter" , GOSSIP_SENDER_MAIN, 1007);
- }
- else // Main Menu for Horde
- {
- pPlayer->ADD_GOSSIP_ITEM( 8, "--- What Do I Do? ---" , GOSSIP_SENDER_MAIN, 2000);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Class Trainers ->" , GOSSIP_SENDER_MAIN, 2001);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Weapon Trainers" , GOSSIP_SENDER_MAIN, 2012);
- pPlayer->ADD_GOSSIP_ITEM( 7, "PvP Items Vendors" , GOSSIP_SENDER_MAIN, 2013);
- pPlayer->ADD_GOSSIP_ITEM( 7, "PvE Items Vendors" , GOSSIP_SENDER_MAIN, 2014);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Weapon Vendors" , GOSSIP_SENDER_MAIN, 2015);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Profession Trainers + Mats" , GOSSIP_SENDER_MAIN, 2019);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Reagents + Food & Drink" , GOSSIP_SENDER_MAIN, 2016);
- pPlayer->ADD_GOSSIP_ITEM( 7, "General Goods" , GOSSIP_SENDER_MAIN, 2017);
- pPlayer->ADD_GOSSIP_ITEM( 7, "Ye Old Teleporter" , GOSSIP_SENDER_MAIN, 2018);
- }
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,pCreature->GetGUID());
- return true;
- }
- void SendDefaultMenu_mallguard(Player* pPlayer, Creature* pCreature, uint32 uiAction)
- {
- // Not allow in combat
- if (pPlayer->isInCombat())
- {
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->MonsterSay("You are in combat!", LANG_UNIVERSAL, NULL);
- return;
- }
- Config TScriptConfig;
- if(!TScriptConfig.SetSource(_TRINITY_SCRIPT_CONFIG,true))
- error_log("SD2: Unable to open configuration file");
- //bool EnableResSickness = TScriptConfig.GetBoolDefault("mallguard.EnableRemoveResSickness", true);
- bool EnableAlliancevsHordePvP = TScriptConfig.GetBoolDefault("mallguard.EnableAlliancevsHordePvP", true);
- bool EnablePlayerTools = TScriptConfig.GetBoolDefault("mallguard.PlayerTools", true);
- bool EnableInnkeeper = TScriptConfig.GetBoolDefault("mallguard.EnableInnkeeper", true);
- bool EnableShoppingMall = TScriptConfig.GetBoolDefault("mallguard.EnableShoppingMall", false);
- bool EnableHarmonyGuildShip = TScriptConfig.GetBoolDefault("mallguard.HarmonyGuildShip", false);
- bool EnableUnityGuildShip = TScriptConfig.GetBoolDefault("mallguard.UnityGuildShip", false);
- //Mony Check
- if (pPlayer->GetMoney() < (TScriptConfig.GetFloatDefault("TeleGoldCost",0)))
- {
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->MonsterWhisper("You don't have enough money.", pPlayer->GetGUID());
- return;
- }
- switch(uiAction)
- {
- //////////////////////////////////////////////////ALLIANCE/////////////////////////////////////////////////////////////////
- case 1000: //--- Why Im Here ---
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->MonsterWhisper("I Will Teleport you around the mall so you can find what vendor/trainer you need!", pPlayer->GetGUID());
- break;
- case 1001: // Class Glyph Vendors
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8538.802734f, 381.096436f, 108.385902f, 5.389486f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1002: // PVP Items + Weapon Vendors
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8433.561523f, 383.525818f, 120.885948f, 1.467249f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1003: // PVE Items Vendors
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8492.359375f, 336.840027f, 120.885933f, 3.020220f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1004: // Profession Trainers + Mats
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8406.571289f, 289.394348f, 120.885849f, 2.231670f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1005: // Reagents + Food & Drink
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8445.222656f, 337.898224f, 121.746269f, 3.014720f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1006: // General Goods
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8445.228516f, 320.483612f, 121.329735f, 1.427520f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1007: // Ye Old Teleporter
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8450.386719f, 344.422607f, 120.886024f, 1.427520f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1008: // Weapon Trainers
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8518.540039f, 430.331940f, 106.560272f, 2.267585f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1009: // Class Trainers Menu
- pPlayer->ADD_GOSSIP_ITEM( 5, "Warrior" , GOSSIP_SENDER_MAIN, 1010);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Paladin" , GOSSIP_SENDER_MAIN, 1011);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Hunter" , GOSSIP_SENDER_MAIN, 1012);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Rogue" , GOSSIP_SENDER_MAIN, 1013);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Priest" , GOSSIP_SENDER_MAIN, 1014);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Death Knight" , GOSSIP_SENDER_MAIN, 1015);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Shaman" , GOSSIP_SENDER_MAIN, 1016);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Mage" , GOSSIP_SENDER_MAIN, 1017);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Druid" , GOSSIP_SENDER_MAIN, 1018);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Warlock" , GOSSIP_SENDER_MAIN, 1019);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,pCreature->GetGUID());
- break;
- case 1010: // Warrior
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8463.333984f, 354.798889f, 119.031700f, 3.850944f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1011: // Paladin
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8456.321289f, 359.978821f, 119.109627f, 3.038290f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1012: // Hunter
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8467.819336f, 372.926544f, 114.787376f, 0.681858f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1013: // Rogue
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8474.327148f, 367.786133f, 114.778381f, 3.847013f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1014: // Priest
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8478.058594f, 385.497864f, 110.734901f, 0.662218f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1015: // Death Knight
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8485.129883f, 380.539215f, 110.605286f, 0.752037f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1016: // Shaman
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8494.641602f, 392.757050f, 108.385826f, 3.815592f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1017: // Mage
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8497.984375f, 411.101807f, 108.385826f, 0.682635f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1018: // Druid
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8509.306641f, 424.256165f, 107.652534f, 0.666927f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 1019: // Warlock
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(0, -8515.284180f, 420.457794f, 107.574867f, 3.814803f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- //////////////////////////////////////////////////HORDE/////////////////////////////////////////////////////////////////
- case 2000: //--- Why Im Here ---
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->MonsterWhisper("I Will Teleport you around the mall so you can find what vendor/trainer you need!", pPlayer->GetGUID());
- break;
- case 2001: // Class Trainers Menu
- pPlayer->ADD_GOSSIP_ITEM( 5, "Warrior" , GOSSIP_SENDER_MAIN, 2002);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Paladin" , GOSSIP_SENDER_MAIN, 2003);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Hunter" , GOSSIP_SENDER_MAIN, 2004);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Rogue" , GOSSIP_SENDER_MAIN, 2005);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Priest" , GOSSIP_SENDER_MAIN, 2006);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Death Knight" , GOSSIP_SENDER_MAIN, 2007);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Shaman" , GOSSIP_SENDER_MAIN, 2008);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Mage" , GOSSIP_SENDER_MAIN, 2009);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Druid" , GOSSIP_SENDER_MAIN, 2010);
- pPlayer->ADD_GOSSIP_ITEM( 5, "Warlock" , GOSSIP_SENDER_MAIN, 2011);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,pCreature->GetGUID());
- break;
- case 2002: // Warrior
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2170.794434f, -4732.175781f, 67.738731f, 1.838092f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2003: // Paladin
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2146.991943f, -4777.475098f, 67.739349f, 3.556549f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2004: // Hunter
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2145.008057f, -4767.587891f, 67.739349f, 3.210974f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2005: // Rogue
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2178.017822f, -4730.894531f, 67.738640f, 1.552997f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2006: // Priest
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2180.604492f, -4799.901855f, 67.738815f, 4.694591f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2007: // Death Knight
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2160.016602f, -4794.705078f, 67.738937f, 4.113399f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2008: // Shaman
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2170.020996f, -4798.661621f, 67.738937, 4.486467f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2009: // Mage
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2145.249268f, -4757.540039f, 67.739098f, 2.860692f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2010: // Druid
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2156.231201f, -4739.219238f, 67.738571f, 2.252008f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2011: // Warlock
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2162.309326f, -4735.006836f, 67.739616f, 2.010891f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2012: // Weapon Trainers
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2212.647705f, -4784.873535f, 72.876427f, 2.664350f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2013: // PVP Vendors
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 1922.394165f, -4162.238770f, 40.608082f, 1.632343f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- pCreature->MonsterWhisper("These Vendors are around the centre of the room.", pPlayer->GetGUID());
- break;
- case 2014: // PVE Vendors
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 1910.148071f, -4165.912109f, 41.148830f, 3.505517f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- pCreature->MonsterWhisper("These Vendors are around the outside of the room.", pPlayer->GetGUID());
- break;
- case 2015: // Weapon Vendors
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 1929.032593f, -4210.673340f, 42.321102f, 0.100813f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2016: // Reagents + Food & Drink
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 1920.384644f, -4132.679199f, 42.501503f, 1.627627f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2017: // General Goods
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 1914.849243f, -4155.053223f, 40.623199f, 4.015240f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2018: // Ye Old Teleporter
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 1927.1822513f, -4232.799316f, 42.232105f, 4.796710f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- case 2019: // Profession Trainers + mats
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->TeleportTo(1, 2201.272949f, -4743.130859f, 67.739075f, 5.794147f);
- pPlayer->ModifyMoney(-(TScriptConfig.GetFloatDefault("TeleGoldCost",0)));
- break;
- pPlayer->CLOSE_GOSSIP_MENU();
- } // end of switch
- } //end of function
- bool GossipSelect_mallguard(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
- {
- // Main menu
- if (uiSender == GOSSIP_SENDER_MAIN)
- SendDefaultMenu_mallguard(pPlayer, pCreature, uiAction);
- return true;
- }
- void AddSC_mallguard()
- {
- Script *newscript;
- newscript = new Script;
- newscript->Name = "mallguard";
- newscript->pGossipHello = &GossipHello_mallguard;
- newscript->pGossipSelect = &GossipSelect_mallguard;
- newscript->RegisterSelf();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement