Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- #define MSG_GOSSIP_TEXT_GETTING_STARTED "Game on War-Gate Server"
- #define MSG_GOSSIP_TEXT_BUYING_BAGS "Add 4 bags (36 cells each) in inventory"
- #define MSG_GOSSIP_TEXT_MAIN_MENU "Back to main menu"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL "A7 for the class of your game character"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_RESTOR "A7 for the class of your game character (restor)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_BALANCE "A7 for the class of your game character (balance)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_FERAL "A7 for the class of your game character (feral)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_SHADOW "A7 for the class of your game character (shadow)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_DISC "A7 for the class of your game character (disc)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_HOLY "A7 for the class of your game character (holy)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_MELEE "A7 for the class of your game character (melee)"
- #define MSG_GOSSIP_TEXT_A7FORCLASS_ELEMENTAL "A7 for the class of your game character (elemental)"
- #define MSG_GOSSIP_TEXT_NON_SET "Window with all Nonset A7"
- #define MSG_GOSSIP_TEXT_PRIMARY_PROFESSION "[Menu]Primary profession"
- #define MSG_GOSSIP_TEXT_SECONDARY_PROFESSION "[Menu]Secondary profession"
- #define MSG_GOSSIP_TEXT_TELEPORT_MENU "[Menu]Teleport"
- #define MSG_GOSSIP_TEXT_CURE_CHARACTER "Cure character"
- #define MSG_GOSSIP_TEXT_WRITTEN_BY "Written by"
- //Spells
- #define SPELL_TELEPORT_VISUAL_EFFECT 35517
- //Horde teleport text
- #define TELEPORT_IN_ORGRIMMAR "Teleport you in Orgrimmar"
- #define TELEPORT_IN_UNDERCITY "Teleport you in Undercity"
- #define TELEPORT_IN_THUNDER_BLUFF "Teleport you in Thunder Bluff"
- #define TELEPORT_IN_SILVERMOON "Teleport you in Silvermoon City"
- //Alliance teleport text
- #define TELEPORT_IN_STORMWIND "Teleport you in Stormwind city"
- #define TELEPORT_IN_IRONFORGE "Teleport you in Ironforge"
- #define TELEPORT_IN_DARNASSUS "Teleport you in Darnassus"
- #define TELEPORT_IN_EXODAR "Teleport you in Exodar"
- //Random teleport dot
- #define TELEPORT_IN_RANDOM_LOCATION "Teleport you to a random location available to you"
- //Profession (primary) (All 11)
- #define MSG_GOSSIP_TEXT_ALCHEMY "Learn alchemy (450)"
- #define MSG_GOSSIP_TEXT_BLACKSMITHING "Learn blacksmithing (450)"
- #define MSG_GOSSIP_TEXT_ENCNANTING "Learn enchanting (450)"
- #define MSG_GOSSIP_TEXT_ENGINEERING "Learn engineering (450)"
- #define MSG_GOSSIP_TEXT_HERBALISM "Learn herbalism (450)"
- #define MSG_GOSSIP_TEXT_INSCRIPTION "Learn inscription (450)"
- #define MSG_GOSSIP_TEXT_JEWELCRAFTING "Learn jewelcrafting (450)"
- #define MSG_GOSSIP_TEXT_LEATHERWORKING "Learn leatherworking (450)"
- #define MSG_GOSSIP_TEXT_MINING "Learn mining (450)"
- #define MSG_GOSSIP_TEXT_SKINNING "Learn skinning (450)"
- #define MSG_GOSSIP_TEXT_TAILORING "Learn tailoring (450)"
- //Profession (secondary) (All 4)
- #define MSG_GOSSIP_TEXT_RIDING "Learn master riding"
- #define MSG_GOSSIP_TEXT_COOKING "Learn cooking (450)"
- #define MSG_GOSSIP_TEXT_FIRST_AID "Learn first aid (450)"
- #define MSG_GOSSIP_TEXT_FISHING "Learn fishing (450)"
- class npc_multyvendor : public CreatureScript
- {
- public:
- npc_multyvendor() : CreatureScript("npc_multyvendor") { }
- #pragma region Teleport Function
- void Teleport(Player* pPlayer, float array[5])
- {
- pPlayer->CastSpell(pPlayer, SPELL_TELEPORT_VISUAL_EFFECT, true);
- pPlayer->TeleportTo(array[0], array[1], array[2], array[3], array[4]);
- }
- #pragma endregion (void) Teleport(Player* pPlayer, int map, float X, float Y, float Z, float orient)
- #pragma region MileageOnThings
- void MileageOnThings(Player* pPlayer, int array[5])
- {
- for (int i = 0; i < 5; ++i)
- {
- pPlayer->AddItem(array[i], 1);
- }
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- #pragma endregion (void) MileageOnThings(Player* pPlayer, int array[5])
- #pragma region PlayerAlreadyHasTwoPrimaryProfessions
- bool PlayerAlreadyHasTwoPrimaryProfessions(Player* pPlayer)
- {
- int primaryskillCount = 0;
- int mainskills[11] = {171, 186, 333, 202, 182, 773, 775, 165, 393, 197,164};
- for (int i = 0; i < 11; ++i)
- {
- if (pPlayer->HasSkill(mainskills[i]))
- {
- ++primaryskillCount;
- }
- }
- if (primaryskillCount < 2)
- {
- return true;
- }
- return false;
- }
- #pragma endregion (bool) PlayerAlreadyHasTwoPrimaryProfessions(Player *pPlayer);
- #pragma region PlayerAlreadyHasFourSecondaryProfessions
- bool PlayerAlreadyHasFourSecondaryProfessions(Player *pPlayer)
- {
- int secondaryskillCount = 0;
- int secondaryskills[4] = {185, 129, 356, 762};
- for (int i = 0; i < 4; ++i)
- {
- if (pPlayer->HasSkill(secondaryskills[i]))
- {
- ++secondaryskillCount;
- }
- }
- if (secondaryskillCount < 4)
- {
- return true;
- }
- return false;
- }
- #pragma endregion (bool) PlayerAlreadyHasFourSecondaryProfessions(Player *pPlayer);
- bool OnGossipHello(Player* pPlayer, Creature* pCreature)
- {
- if (pPlayer->isInCombat())
- {
- pCreature->MonsterWhisper("You in combat", pPlayer->GetGUID(), false);
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- else
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, MSG_GOSSIP_TEXT_GETTING_STARTED, GOSSIP_SENDER_MAIN, 1);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_BUYING_BAGS, GOSSIP_SENDER_MAIN, 2);
- #pragma region A7_SET_SECTION
- int playerClass = pPlayer->getClass();
- if (playerClass == CLASS_WARLOCK)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL, GOSSIP_SENDER_MAIN, 3);
- }
- if (playerClass == CLASS_WARRIOR)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL, GOSSIP_SENDER_MAIN, 4);
- }
- if (playerClass == CLASS_DRUID)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_RESTOR, GOSSIP_SENDER_MAIN, 5);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_BALANCE, GOSSIP_SENDER_MAIN, 6);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_FERAL, GOSSIP_SENDER_MAIN, 7);
- }
- if (playerClass == CLASS_PRIEST)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_SHADOW, GOSSIP_SENDER_MAIN, 8);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_DISC, GOSSIP_SENDER_MAIN, 9);
- }
- if (playerClass == CLASS_MAGE)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL, GOSSIP_SENDER_MAIN, 10);
- }
- if (playerClass == CLASS_PALADIN)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_HOLY, GOSSIP_SENDER_MAIN, 11);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_MELEE, GOSSIP_SENDER_MAIN, 12);
- }
- if (playerClass == CLASS_ROGUE)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL, GOSSIP_SENDER_MAIN, 13);
- }
- if (playerClass == CLASS_DEATH_KNIGHT)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL, GOSSIP_SENDER_MAIN, 14);
- }
- if (playerClass == CLASS_SHAMAN)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_MELEE, GOSSIP_SENDER_MAIN, 15);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_ELEMENTAL, GOSSIP_SENDER_MAIN, 16);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_RESTOR, GOSSIP_SENDER_MAIN, 17);
- }
- if (playerClass == CLASS_HUNTER)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_A7FORCLASS_UNIVERSAL, GOSSIP_SENDER_MAIN, 18);
- }
- #pragma endregion (ADD_GOSSIP_ITEM Action ended on 18)
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, MSG_GOSSIP_TEXT_NON_SET, GOSSIP_SENDER_MAIN, 46);
- #pragma region Profession Gossip
- if (pPlayer->getLevel() > 5)
- {
- if (PlayerAlreadyHasTwoPrimaryProfessions(pPlayer))
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, MSG_GOSSIP_TEXT_PRIMARY_PROFESSION, GOSSIP_SENDER_MAIN, 19);
- }
- if (PlayerAlreadyHasFourSecondaryProfessions(pPlayer))
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, MSG_GOSSIP_TEXT_SECONDARY_PROFESSION, GOSSIP_SENDER_MAIN, 20);
- }
- }
- #pragma endregion (ADD_GOSSIP_ITEM Action ended on 20)
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, MSG_GOSSIP_TEXT_TELEPORT_MENU, GOSSIP_SENDER_MAIN, 37);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_RANDOM_LOCATION, GOSSIP_SENDER_MAIN, 47);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, MSG_GOSSIP_TEXT_CURE_CHARACTER, GOSSIP_SENDER_MAIN, 48);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_WRITTEN_BY, GOSSIP_SENDER_MAIN, 73);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
- }
- return true;
- }
- bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
- {
- if (uiSender != GOSSIP_SENDER_MAIN)
- return false;
- #pragma region Item values (arrays)
- int bag = 23162; //Foror's Crate of Endless Resist Gear Storage
- //As example, form: HEAD, CHEST, LEGS, SHOULDER, HANDS
- int warlockItem[5] = {41994,41999,42006,42012,42018};
- int warriorItem[5] = {40829,40790,40850,40870,40810};
- int druidRestorItem[5] = {41322,41311,41299,41276,41288};
- int druidBalanceItem[5] = {41328,41317,41305,41282,41328};
- int druidFeralItem[5] = {41679,41662,41668,41716,41774};
- int priestDiscItem[5] = {41855,41860,41865,41870,41875};
- int priestShadowItem[5] = {41916,41922,41928,41935,41841};
- int mageItem[5] = {41947,41954,41960,41966,41972};
- int hunterItem[5] = {41158,41088,41206,41218,41144};
- int paladinHolyItem[5] = {40934,40910,40940,40964,40928};
- int paladinMeleeItem[5] = {40831,40792,40852,40872,40812};
- int rogueItem[5] = {41673,41651,41656,41684,41768};
- int deathknightItem[5] = {40830,40791,40851,40871,40811};
- int shamanMeleeItem[5] = {41152,41082,41200,41212,41138};
- int shamanElementalItem[5] = {41020,40995,41034,41045,41008};
- int shamanRestorItem[5] = {41014,40994,41028,41039,41002};
- #pragma endregion
- #pragma region Zone coords
- //Alliance
- float StormwindCityCoord[5] = {0, -8899.667969, 564.989441, 92.821983, 0.630244};
- float IronforgeCoord[5] = {0, -4788.0, -1122.0, 498.890015, 0.630244};
- float DarnassusCoord[5] = {1.0, 9929.448242, 2224.156494, 1330.245239, 2.633672};
- float ExodarCoord[5] = {530.0, 3951.163818, -11617.237305, -138.709396, 2.075017};
- //Horde
- float OrgrimmarCoord[5] = {1.0, 1630.201782, -4373.678711, 31.487324, 3.53064};
- float UndercityCoord[5] = {0, 1641.848389, 239.868973, 62.591763, 3.194554};
- float ThunderBluffCoord[5] = {1, -1281.144775, 130.717270, 131.329987, 5.372736};
- float SilvermoonCoord[5] = {530.0, 9468.745117, -7278.426270, 14.215015, 6.218467};
- //Coord for random dot
- float SiStormwindCoord[5] = {0, -8804.427734, 345.061920, 123.251915, 4.599};
- float ValleyOfHonorOrgrimmarCoord[5] = {1.0, 2022.425659, -4605.340820, 26.191210, 3.600264};
- float MireKalimdorCoord[5] = {1.0, -3747.916992, -3190.030029, 33.029397, 5.049343};
- float DalaranCoord[5] = {571.0, 5645.322266, 860.978271, 569.715637, 2.722937};
- float ArgentumTournamentCoord[5] = {571.0, 8505.782227, 1180.126587, 569.419128, 5.194586};
- float HiddenNisinNorthlandCoord[5] = {571.0, 7459.662109, 4938.676270, -21.139856, 5.263686};
- float WyrmrestTempleNorthlandCoord[5] = {571.0, 3546.667480, 273.056244, 441.757172, 6.214012};
- float WestfallKingdomCoord[5] = {0, -10292.445313, 1409.313721, 40.233257, 0.867435};
- #pragma endregion
- pPlayer->PlayerTalkClass->ClearMenus();
- int RandomTeleportDot;
- int RandomTeleportDotGM;
- switch (uiAction)
- {
- case 2:
- pPlayer->AddItem(bag, 4);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 3:
- MileageOnThings(pPlayer, warlockItem);
- break;
- case 4:
- MileageOnThings(pPlayer, warriorItem);
- break;
- case 5:
- MileageOnThings(pPlayer, druidRestorItem);
- break;
- case 6:
- MileageOnThings(pPlayer, druidBalanceItem);
- break;
- case 7:
- MileageOnThings(pPlayer, druidFeralItem);
- break;
- case 8:
- MileageOnThings(pPlayer, priestShadowItem);
- break;
- case 9:
- MileageOnThings(pPlayer, priestDiscItem);
- break;
- case 10:
- MileageOnThings(pPlayer, mageItem);
- break;
- case 11:
- MileageOnThings(pPlayer, paladinHolyItem);
- break;
- case 12:
- MileageOnThings(pPlayer, paladinMeleeItem);
- break;
- case 13:
- MileageOnThings(pPlayer, rogueItem);
- break;
- case 14:
- MileageOnThings(pPlayer, deathknightItem);
- break;
- case 15:
- MileageOnThings(pPlayer, shamanMeleeItem);
- break;
- case 16:
- MileageOnThings(pPlayer, shamanElementalItem);
- break;
- case 17:
- MileageOnThings(pPlayer, shamanRestorItem);
- break;
- case 18:
- MileageOnThings(pPlayer, hunterItem);
- break;
- case 19:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_ALCHEMY, GOSSIP_SENDER_MAIN, 21);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_BLACKSMITHING, GOSSIP_SENDER_MAIN, 22);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_ENCNANTING, GOSSIP_SENDER_MAIN, 23);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_ENGINEERING, GOSSIP_SENDER_MAIN, 24);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_HERBALISM, GOSSIP_SENDER_MAIN, 25);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_INSCRIPTION, GOSSIP_SENDER_MAIN, 26);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_JEWELCRAFTING, GOSSIP_SENDER_MAIN, 27);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_LEATHERWORKING, GOSSIP_SENDER_MAIN, 28);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_MINING, GOSSIP_SENDER_MAIN, 29);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_SKINNING, GOSSIP_SENDER_MAIN, 30);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_TAILORING, GOSSIP_SENDER_MAIN, 31);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 36);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
- break;
- case 20:
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_RIDING, GOSSIP_SENDER_MAIN, 32);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_COOKING, GOSSIP_SENDER_MAIN, 33);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_FIRST_AID, GOSSIP_SENDER_MAIN, 34);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_FISHING, GOSSIP_SENDER_MAIN, 35);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 36);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
- break;
- case 21:
- pPlayer->learnSpell(51304, true);
- pPlayer->SetSkill(171,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 22:
- pPlayer->learnSpell(51300, true);
- pPlayer->SetSkill(164,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 23:
- pPlayer->learnSpell(51313, true);
- pPlayer->SetSkill(333,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 24:
- pPlayer->learnSpell(51306, true);
- pPlayer->SetSkill(202,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 25:
- pPlayer->learnSpell(50300, true);
- pPlayer->SetSkill(182,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 26:
- pPlayer->learnSpell(45363, true);
- pPlayer->SetSkill(773,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 27:
- pPlayer->learnSpell(51311, true);
- pPlayer->SetSkill(755,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 28:
- pPlayer->learnSpell(51302, true);
- pPlayer->SetSkill(165,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 29:
- pPlayer->learnSpell(50310, true);
- pPlayer->SetSkill(186,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 30:
- pPlayer->learnSpell(50305, true);
- pPlayer->SetSkill(393,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 31:
- pPlayer->learnSpell(51309, true);
- pPlayer->SetSkill(197,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 32:
- pPlayer->learnSpell(90265, true);
- pPlayer->SetSkill(762, 6, 450, 450);
- pPlayer->learnSpell(54197, true);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 33:
- pPlayer->learnSpell(51296, true);
- pPlayer->SetSkill(185,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 34:
- pPlayer->learnSpell(45542, true);
- pPlayer->SetSkill(129,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 35:
- pPlayer->learnSpell(51294, true);
- pPlayer->SetSkill(356,6,450,450);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 36:
- OnGossipHello(pPlayer, pCreature);
- break;
- case 37:
- if (pPlayer->isGameMaster())
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_STORMWIND, GOSSIP_SENDER_MAIN, 38);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_IRONFORGE, GOSSIP_SENDER_MAIN, 39);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_DARNASSUS, GOSSIP_SENDER_MAIN, 40);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_EXODAR, GOSSIP_SENDER_MAIN, 41);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_ORGRIMMAR, GOSSIP_SENDER_MAIN, 42);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_UNDERCITY, GOSSIP_SENDER_MAIN, 43);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_THUNDER_BLUFF, GOSSIP_SENDER_MAIN, 44);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_SILVERMOON, GOSSIP_SENDER_MAIN, 45);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 36);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
- }
- else if (pPlayer->GetTeam() == ALLIANCE)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_STORMWIND, GOSSIP_SENDER_MAIN, 38);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_IRONFORGE, GOSSIP_SENDER_MAIN, 39);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_DARNASSUS, GOSSIP_SENDER_MAIN, 40);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_EXODAR, GOSSIP_SENDER_MAIN, 41);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 36);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
- }
- else if (pPlayer->GetTeam() == HORDE)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_ORGRIMMAR, GOSSIP_SENDER_MAIN, 42);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_UNDERCITY, GOSSIP_SENDER_MAIN, 43);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_THUNDER_BLUFF, GOSSIP_SENDER_MAIN, 44);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI, TELEPORT_IN_SILVERMOON, GOSSIP_SENDER_MAIN, 45);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_MAIN_MENU, GOSSIP_SENDER_MAIN, 36);
- pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
- }
- break;
- case 38:
- Teleport(pPlayer, StormwindCityCoord);
- break;
- case 39:
- Teleport(pPlayer, IronforgeCoord);
- break;
- case 40:
- Teleport(pPlayer, DarnassusCoord);
- break;
- case 41:
- Teleport(pPlayer, ExodarCoord);
- break;
- case 42:
- Teleport(pPlayer, OrgrimmarCoord);
- break;
- case 43:
- Teleport(pPlayer, UndercityCoord);
- break;
- case 44:
- Teleport(pPlayer, ThunderBluffCoord);
- break;
- case 45:
- Teleport(pPlayer, SilvermoonCoord);
- break;
- case 46:
- pPlayer->GetSession()->SendListInventory(pCreature->GetGUID());
- break;
- case 47:
- #pragma region Random teleport (materialization)
- RandomTeleportDot = rand()%11 + 1;
- if (pPlayer->isGameMaster())
- {
- RandomTeleportDotGM = rand()%16 + 1;
- switch (RandomTeleportDotGM)
- {
- case 1:
- Teleport(pPlayer, StormwindCityCoord);
- break;
- case 2:
- Teleport(pPlayer, IronforgeCoord);
- break;
- case 3:
- Teleport(pPlayer, DarnassusCoord);
- break;
- case 4:
- Teleport(pPlayer, ExodarCoord);
- break;
- case 5:
- Teleport(pPlayer, OrgrimmarCoord);
- break;
- case 6:
- Teleport(pPlayer, UndercityCoord);
- break;
- case 7:
- Teleport(pPlayer, ThunderBluffCoord);
- break;
- case 8:
- Teleport(pPlayer, SilvermoonCoord);
- break;
- case 9:
- Teleport(pPlayer, HiddenNisinNorthlandCoord);
- break;
- case 10:
- Teleport(pPlayer, SiStormwindCoord);
- break;
- case 11:
- Teleport(pPlayer, ValleyOfHonorOrgrimmarCoord);
- break;
- case 12:
- Teleport(pPlayer, MireKalimdorCoord);
- break;
- case 13:
- Teleport(pPlayer, WestfallKingdomCoord);
- break;
- case 14:
- Teleport(pPlayer, DalaranCoord);
- break;
- case 15:
- Teleport(pPlayer, ArgentumTournamentCoord);
- break;
- case 16:
- Teleport(pPlayer, WyrmrestTempleNorthlandCoord);
- break;
- }
- }
- if (pPlayer->GetTeam() == ALLIANCE)
- {
- switch (RandomTeleportDot)
- {
- case 1:
- Teleport(pPlayer, StormwindCityCoord);
- break;
- case 2:
- Teleport(pPlayer, IronforgeCoord);
- break;
- case 3:
- Teleport(pPlayer, DarnassusCoord);
- break;
- case 4:
- Teleport(pPlayer, ExodarCoord);
- break;
- case 5:
- Teleport(pPlayer, DalaranCoord);
- break;
- case 6:
- Teleport(pPlayer, ArgentumTournamentCoord);
- break;
- case 7:
- Teleport(pPlayer, SiStormwindCoord);
- break;
- case 8:
- Teleport(pPlayer, WestfallKingdomCoord);
- break;
- case 9:
- Teleport(pPlayer, HiddenNisinNorthlandCoord);
- break;
- case 10:
- Teleport(pPlayer, WyrmrestTempleNorthlandCoord);
- break;
- case 11:
- Teleport(pPlayer, WestfallKingdomCoord);
- break;
- }
- }
- else
- {
- switch (RandomTeleportDot)
- {
- case 1:
- Teleport(pPlayer, OrgrimmarCoord);
- break;
- case 2:
- Teleport(pPlayer, UndercityCoord);
- break;
- case 3:
- Teleport(pPlayer, ThunderBluffCoord);
- break;
- case 4:
- Teleport(pPlayer, SilvermoonCoord);
- break;
- case 5:
- Teleport(pPlayer, ArgentumTournamentCoord);
- break;
- case 6:
- Teleport(pPlayer, DalaranCoord);
- break;
- case 7:
- Teleport(pPlayer, ValleyOfHonorOrgrimmarCoord);
- break;
- case 8:
- Teleport(pPlayer, MireKalimdorCoord);
- break;
- case 9:
- Teleport(pPlayer, HiddenNisinNorthlandCoord);
- break;
- case 10:
- Teleport(pPlayer, WyrmrestTempleNorthlandCoord);
- break;
- case 11:
- Teleport(pPlayer, WestfallKingdomCoord);
- break;
- }
- }
- #pragma endregion
- break;
- case 48:
- pPlayer->SetHealth(pPlayer->GetMaxHealth());
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- case 73:
- pCreature->MonsterWhisper("Written by Physicist, mail: Physicist4773@yandex.ru, MultyVendor v.1.0 Beta", pPlayer->GetGUID(), false);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- default:
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- return true;
- }
- };
- void AddSC_npc_multyvendor()
- {
- new npc_multyvendor;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement