Ejemplo n.º 1
0
		void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char* Code)
		{
			GossipMenu* Menu;
			switch(IntId)
			{
				case 1:
					objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 9227, plr);
					Menu->AddItem(0, "Im a messenger for Draenei", 2);
					Menu->SendTo(plr);
					break;
				case 2:
					objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 9229, plr);
					Menu->AddItem(0, "Get message", 3);
					Menu->SendTo(plr);
					break;
				case 3:
					if(!plr->GetItemInterface()->GetItemCount(24573, true))
					{
						sEAS.AddItem(24573, plr);
						if(plr->GetItemInterface()->GetItemCount(24573, true))
							SendQuickMenu(9231);
					}
					else
						SendQuickMenu(9231);
					break;
			}
		}
Ejemplo n.º 2
0
    void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
    {
        GossipMenu * Menu;
        switch(IntId)
        {
        case 0:     // Return to start
            GossipHello(pObject, Plr, true);
            break;

        //////////////////////
        // Main menu handlers
        /////

        case 1:    // Arena Vendor
            Plr->Gossip_SendPOI(5757, 583, 7, 6, 0, "Arena Vendor");
            Plr->Gossip_Complete();
            break;

        case 2:    // Arena Battlemaster
            Plr->Gossip_SendPOI(5852, 609, 7, 6, 0, "Arena Battlemaster");
            Plr->Gossip_Complete();
            break;

        case 3:    // Black Market
            Plr->Gossip_SendPOI(5919, 569, 7, 6, 0, "Black Market");
            Plr->Gossip_Complete();
            break;

        case 4:    // Exit of Dalaran
            Plr->Gossip_SendPOI(5765, 753, 7, 6, 0, "Exit of dalaran");
            SendQuickMenu(14020);
            break;

        }
    }
Ejemplo n.º 3
0
  void GossipSelectOption(Object * pObject, Player * plr, uint32 Id, uint32 IntId, const char * Code)
  {      
    GossipMenu *Menu;

    switch(IntId)	
		{
			case 1:
      {
         SendQuickMenu(3558);

         QuestLogEntry *qle = plr->GetQuestLogForEntry(4921);
         if(qle == NULL)
           return;
           
         if(qle->GetMobCount(0) != 0)
           return;

         qle->SetMobCount(0, 1);
         qle->SendUpdateAddKill(0);
         qle->UpdatePlayerFields();
		  }break;
    }
  }
Ejemplo n.º 4
0
 void GossipSelectOption(Object* pObject, Player* plr, uint32 Id, uint32 IntId, const char* Code)
 {
     GossipMenu* Menu;
     switch(IntId)
     {
         case 1:
             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 9227, plr);
             Menu->AddItem(GOSSIP_ICON_CHAT, plr->GetSession()->LocalizedGossipOption(503), 2);     // I'm a messenger for Draenei
             Menu->SendTo(plr);
             break;
         case 2:
             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 9229, plr);
             Menu->AddItem(GOSSIP_ICON_CHAT, plr->GetSession()->LocalizedGossipOption(504), 3);     // Get message
             Menu->SendTo(plr);
             break;
         case 3:
             if(!plr->GetItemInterface()->GetItemCount(24573, true))
             {
                 sEAS.AddItem(24573, plr);
             }
                 SendQuickMenu(9231);
             break;
     }
 }
Ejemplo n.º 5
0
    void GossipSelectOption(Object * pObject, Player * plr, uint32 Id, uint32 IntId, const char * Code)
    {
		GossipMenu * Menu;
		switch (IntId)	// switch and case 0 can be deleted, but I added it, because in future maybe we will have to expand script with more options.
		{
			case 0:
				GossipHello(pObject, plr, true);
				break;

			case 1:
			{
				if (!plr->_HasSkillLine(164) || plr->_GetSkillLineCurrent(164, false) < 300)
				{
				    //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Only skilled blacksmiths can obtain this knowledge." );
					SendQuickMenu(20001);
				}
		
				else if (!plr->HasSpell(9787))
				{
					//pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You need to know Weaponsmith first to learn anything more from me." );
					SendQuickMenu(20002);
				}
		
				else if (plr->HasSpell(17040))
				{
					//pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You already know that." );
					SendQuickMenu(20003);
				}
	
				else if (plr->HasSpell(17041) || plr->HasSpell(17039) || plr->HasSpell(9788))
				{
					//pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You already know one specialization." );
					SendQuickMenu(20004);
				}
		
				else
				{
					if ( plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 600 )
					{
						//pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You need 6 silver coins to learn this skill.");
						SendQuickMenu(20005);
					}
		
					else
					{
						//pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Make good use of this knowledge." );
						SendQuickMenu(20006);
						Creature * Trainer = TO_CREATURE(pObject);
						Trainer->CastSpell(plr, 39099, true);
						int32 gold = plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
						plr->SetUInt32Value(PLAYER_FIELD_COINAGE, gold - 600);
					}	
				}
			}break;

			case 2:
			{
				if (!plr->HasSpell(17040))
				{
					SendQuickMenu(20007);
				}

				else if ((plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 250000 && plr->getLevel() <= 50) ||
						(plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 500000 && plr->getLevel() > 50 && plr->getLevel() <= 65) ||
						(plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 1000000 && plr->getLevel() > 65))
				{
					SendQuickMenu(20008);
				}

				else
				{
					int32 unlearnGold;
					if (plr->getLevel() <= 50)
						unlearnGold = 250000;
					if (plr->getLevel() > 50 && plr->getLevel() <= 65)
						unlearnGold = 500000;
					if (plr->getLevel() > 65)
						unlearnGold = 1000000;

                    plr->SetUInt32Value(PLAYER_FIELD_COINAGE, plr->GetUInt32Value(PLAYER_FIELD_COINAGE) - unlearnGold);
					plr->removeSpell(17040, false, false, 0);
					SendQuickMenu(20009);
				}
			}break;
		}
	}
Ejemplo n.º 6
0
    void GossipSelectOption(Creature* pCreature, Player* Plr, uint32 Id, uint32 IntId)
    {
        GossipMenu * Menu;
        switch(IntId)
        {
        case 0:     // Return to start
            GossipHello(pCreature, Plr, true);
            break;

            //////////////////////
            // Main menu handlers
            /////

        case 1:     // Auction House
            SendQuickMenu(3834);
            Plr->Gossip_SendPOI(-8811.46, 667.46, 6, 6, 0, "Stormwind Auction House");
            break;

        case 2:     // Bank
            SendQuickMenu(764);
            Plr->Gossip_SendPOI(-8916.87, 622.87, 6, 6, 0, "Stormwind Bank");
            break;

        case 3:     // Tram
            SendQuickMenu(3813);
            Plr->Gossip_SendPOI(-8378.88, 554.23, 6, 6, 0, "The Deeprun Tram");
            break;

        case 4:     // Inn
            SendQuickMenu(3860);
            Plr->Gossip_SendPOI(-8869.0, 675.4, 6, 6, 0, "The Gilded Rose");
            break;

        case 5:     // Gryphon
            SendQuickMenu(879);
            Plr->Gossip_SendPOI(-8837.0, 493.5, 6, 6, 0, "Stormwind Gryphon Master");
            break;

        case 6:     // Guildmaster
            SendQuickMenu(882);
            Plr->Gossip_SendPOI(-8894.0, 611.2, 6, 6, 0, "Stormwind Vistor`s Center");
            break;

        case 7:     // Mailbox
            SendQuickMenu(3518);
            Plr->Gossip_SendPOI(-8876.48, 649.18, 6, 6, 0, "Stormwind Mailbox");
            break;

        case 8:     // Stable master
            SendQuickMenu(5984);
            Plr->Gossip_SendPOI(-8433.0, 554.7, 6, 6, 0, "Jenova Stoneshield");
            break;

        case 9:     // weapon master
            SendQuickMenu(4516);
            Plr->Gossip_SendPOI(-8797.0, 612.8, 6, 6, 0, "Woo Ping");
            break;

        case 10:    // officer lounge
            SendQuickMenu(7047);
            Plr->Gossip_SendPOI(-8759.92, 399.69, 6, 6, 0, "Champions` Hall");
            break;

        case 11:    // Battlemaster submenu
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 7499, Plr);
                Menu->AddItem(0, "Alterac Valley", 14);
                Menu->AddItem(0, "Arathi Basin", 15);
                Menu->AddItem(0, "Warsong Gulch", 16);
                Menu->SendTo(Plr);
            }break;

        case 12:    // Class Trainers
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 4264, Plr);
                Menu->AddItem( 0, "Mage"       , 17);
                Menu->AddItem( 0, "Rogue"      , 18);
                Menu->AddItem( 0, "Warrior"    , 19);
                Menu->AddItem( 0, "Druid"      , 20);
                Menu->AddItem( 0, "Priest"     , 21);
                Menu->AddItem( 0, "Shaman"     , 37);
                Menu->AddItem( 0, "Paladin"    , 22);
                Menu->AddItem( 0, "Hunter"     , 23);
                Menu->AddItem( 0, "Warlock"    , 24);
                Menu->SendTo(Plr);
            }break;

        case 13:    // Profession Trainers
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 4264, Plr);
                Menu->AddItem( 0, "Alchemy"           , 25);
                Menu->AddItem( 0, "Blacksmithing"     , 26);
                Menu->AddItem( 0, "Cooking"           , 27);
                Menu->AddItem( 0, "Enchanting"        , 28);
                Menu->AddItem( 0, "Engineering"       , 29);
                Menu->AddItem( 0, "First Aid"         , 30);
                Menu->AddItem( 0, "Fishing"           , 31);
                Menu->AddItem( 0, "Herbalism"         , 32);
                Menu->AddItem( 0, "Leatherworking"    , 33);
                Menu->AddItem( 0, "Mining"            , 34);
                Menu->AddItem( 0, "Skinning"          , 35);
                Menu->AddItem( 0, "Tailoring"         , 36);
                Menu->SendTo(Plr);
            }break;

            //////////////////
            // Battlemaster submenu
            ////////

        case 14://AV
            {
                Plr->Gossip_SendPOI(-8443.88, 335.99, 6, 6, 0, "Thelman Slatefist");
                SendQuickMenu(7500);
            }break;

        case 15://AB
            {
                Plr->Gossip_SendPOI(-8443.88, 335.99, 6, 6, 0, "Lady Hoteshem");
                SendQuickMenu(7650);
            }break;

        case 16://WSG
            {
                Plr->Gossip_SendPOI(-8443.88, 335.99, 6, 6, 0, "Elfarran");
                SendQuickMenu(7501);
            }break;

            ////////////////
            // Class trainer submenu
            ////////

        case 17: //Mage
            {
                Plr->Gossip_SendPOI(-9012.0, 867.6, 6, 6, 0, "Wizard`s Sanctum");
                SendQuickMenu(899);
            }break;

        case 18: //Rogue
            {
                Plr->Gossip_SendPOI(-8753.0, 367.8, 6, 6, 0, "Stormwind - Rogue House");
                SendQuickMenu(900);
            }break;

        case 19: //Warrior
            {
                Plr->Gossip_SendPOI(-8624.54, 402.61, 6, 6, 0, "Stormwind Barracks");
                SendQuickMenu(901);
            }break;

        case 20: //Druid
            {
                Plr->Gossip_SendPOI(-8751.0, 1124.5, 6, 6, 0, "The Park");
                SendQuickMenu(902);
            }break;

        case 21: //Priest
            {
                Plr->Gossip_SendPOI(-8512.0, 862.4, 6, 6, 0, "Cathedral Of Light");
                SendQuickMenu(903);
            }break;

        case 22: //Paladin
            {
                Plr->Gossip_SendPOI(-8577.0, 881.7, 6, 6, 0, "Cathedral Of Light");
                SendQuickMenu(904);
            }break;

        case 23: //Hunter
            {
                Plr->Gossip_SendPOI(-8413.0, 541.5, 6, 6, 0, "Hunter Lodge");
                SendQuickMenu(905);
            }break;

        case 24: //Warlock
            {
                Plr->Gossip_SendPOI(-8948.91, 998.35, 6, 6, 0, "The Slaughtered Lamb");
                SendQuickMenu(906);
            }break;

        case 37: // Shaman
            {
                SendQuickMenu(10106);
            }break;

        case 25: //Alchemy
            {
                Plr->Gossip_SendPOI(-8988.0, 759.60, 6, 6, 0, "Alchemy Needs");
                SendQuickMenu(919);
            }break;

        case 26: //Blacksmithing
            {
                Plr->Gossip_SendPOI(-8424.0, 616.9, 6, 6, 0, "Therum Deepforge");
                SendQuickMenu(920);
            }break;

        case 27: //Cooking
            {
                Plr->Gossip_SendPOI(-8611.0, 364.6, 6, 6, 0, "Pig and Whistle Tavern");
                SendQuickMenu(921);
            }break;

        case 28: //Enchanting
            {
                Plr->Gossip_SendPOI(-8858.0, 803.7, 6, 6, 0, "Lucan Cordell");
                SendQuickMenu(941);
            }break;

        case 29: //Engineering
            {
                Plr->Gossip_SendPOI(-8347.0, 644.1, 6, 6, 0, "Lilliam Sparkspindle");
                SendQuickMenu(922);
            }break;

        case 30: //First Aid
            {
                Plr->Gossip_SendPOI(-8513.0, 801.8, 6, 6, 0, "Shaina Fuller");
                SendQuickMenu(923);
            }break;

        case 31: //Fishing
            {
                Plr->Gossip_SendPOI(-8803.0, 767.5, 6, 6, 0, "Arnold Leland");
                SendQuickMenu(940);
            }break;

        case 32: //Herbalism
            {
                Plr->Gossip_SendPOI(-8967.0, 779.5, 6, 6, 0, "Alchemy Needs");
                SendQuickMenu(924);
            }break;

        case 33: //Leatherworking
            {
                Plr->Gossip_SendPOI(-8726.0, 477.4, 6, 6, 0, "The Protective Hide");
                SendQuickMenu(925);
            }break;

        case 34: //Mining
            {
                Plr->Gossip_SendPOI(-8434.0, 692.8, 6, 6, 0, "Gelman Stonehand");
                SendQuickMenu(927);
            }break;

        case 35: //Skinning
            {
                Plr->Gossip_SendPOI(-8716.0, 469.4, 6, 6, 0, "The Protective Hide");
                SendQuickMenu(928);
            }break;

        case 36: //Tailoring
            {
                Plr->Gossip_SendPOI(-8938.0, 800.7, 6, 6, 0, "Duncan`s Textiles");
                SendQuickMenu(929);
            }break;
        }
    }
Ejemplo n.º 7
0
    void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
    {
        GossipMenu * Menu;
        switch(IntId)
        {
        case 0:     // Return to start
            GossipHello(pObject, Plr, true);
            break;

            //////////////////////
            // Main menu handlers
            /////

        case 1:     //Bank
            SendQuickMenu(10067);
            break;

        case 2:     //Hippogryph Master
            SendQuickMenu(10071);
			break;
			
        case 3:     //Guild Master
            SendQuickMenu(10073);
			break;

        case 4:     //Inn
            SendQuickMenu(10074);
            Plr->Gossip_SendPOI(-4127.81, -12467.7, 7, 6, 0, "Azure Watch, Innkeeper");
            break;

        case 5:     //Stable Master
            SendQuickMenu(10075);
            Plr->Gossip_SendPOI(-4146.42, -12492.7, 7, 6, 0, "Azure Watch, Stable Master");
            break;

        case 6:     //Class Trainer
			{
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 10076, Plr);
                Menu->AddItem( 0, "Druid"       , 8);
				Menu->AddItem( 0, "Hunter"      , 9);
				Menu->AddItem( 0, "Mage"		, 10);
				Menu->AddItem( 0, "Paladin"     , 11);
                Menu->AddItem( 0, "Priest"      , 12);
				Menu->AddItem( 0, "Shaman"      , 13);
                Menu->AddItem( 0, "Warrior"     , 14);
                Menu->SendTo(Plr);
			}break;

        case 7:     //Profession Trainer
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 10087, Plr);
                Menu->AddItem( 0, "Alchemy"           , 15);
                Menu->AddItem( 0, "Blacksmithing"     , 16);
                Menu->AddItem( 0, "Cooking"           , 17);
                Menu->AddItem( 0, "Enchanting"        , 18);
                Menu->AddItem( 0, "Engineering"       , 19);
                Menu->AddItem( 0, "First Aid"         , 20);
                Menu->AddItem( 0, "Fishing"           , 21);
                Menu->AddItem( 0, "Herbalism"         , 22);
				Menu->AddItem( 0, "Inscription"       , 23);
				Menu->AddItem( 0, "Jewelcrafting"     , 24);
                Menu->AddItem( 0, "Leatherworking"    , 25);
                Menu->AddItem( 0, "Mining"            , 26);
                Menu->AddItem( 0, "Skinning"          , 27);
                Menu->AddItem( 0, "Tailoring"         , 28);
                Menu->SendTo(Plr);
            }break;


            ////////////////
            // Class trainer submenu
            ////////

        case 8: //Druid
            {
                SendQuickMenu(10077);
            }break;

        case 9: //Hunter
            {
                Plr->Gossip_SendPOI(-4203.65, -12467.7, 7, 6, 0, "Azure Watch, Hunter Trainer");
                SendQuickMenu(10078);
            }break;

        case 10: //Mage
            {
                Plr->Gossip_SendPOI(-4149.62, -12530.1, 7, 6, 0, "Azure Watch, Mage Trainer");
                SendQuickMenu(10081);
            }break;

        case 11: //Paladin
			{
                Plr->Gossip_SendPOI(-4138.98, -12468.5, 7, 6, 0, "Azure Watch, Paladin Trainer");
                SendQuickMenu(10083);
            }break;

        case 12: //Priest
            {
                Plr->Gossip_SendPOI(-4131.66, -12478.6, 7, 6, 0, "Azure Watch, Priest Trainer");
                SendQuickMenu(10084);
            }break;

        case 13: //Shaman
            {
                Plr->Gossip_SendPOI(-4162.33, -12456.1, 7, 6, 0, "Azure Watch, Shaman Trainer");
                SendQuickMenu(10085);
            }break;

        case 14: //Warrior
            {
                Plr->Gossip_SendPOI(-4165.05, -12536.4, 7, 6, 0, "Azure Watch, Warrior Trainer");
                SendQuickMenu(10086);
            }break;

        case 15: //Alchemy
            {
                Plr->Gossip_SendPOI(-4191.15, -12470, 7, 6, 0, "Azure Watch, Alchemist");
                SendQuickMenu(10088);
            }break;

        case 16: //Blacksmithing
            {
				Plr->Gossip_SendPOI(-4726.29, -12387.0, 7, 6, 0, "Odesyus' Landing, Blacksmith");
                SendQuickMenu(10089);
            }break;

        case 17: //Cooking
            {
				Plr->Gossip_SendPOI(-4708.59, -12400.3, 7, 6, 0, "Odesyus' Landing, Cook");
                SendQuickMenu(10090);
            }break;

        case 18: //Enchanting
            {
				SendQuickMenu(10091);
            }break;
			
        case 19: //Engineering
            {
                Plr->Gossip_SendPOI(-4157.57, -12470.2, 7, 6, 0, "Azure Watch, Engineering Trainer");
                SendQuickMenu(10092);
            }break;

        case 20: //First Aid
            {
                Plr->Gossip_SendPOI(-4199.1, -12469.9, 7, 6, 0, "Azure Watch, First Aid Trainer");
                SendQuickMenu(10093);
            }break;

        case 21: //Fishing
            {
                Plr->Gossip_SendPOI(-4266.34, -12985.4, 7, 6, 0, "Ammen Ford, Fisherwoman");
                SendQuickMenu(10094);
            }break;

        case 22: //Herbalism
            {
                Plr->Gossip_SendPOI(-4189.43, -12459.4, 7, 6, 0, "Azure Watch, Herbalist");
                SendQuickMenu(10095);
            }break;

		case 23: //Inscription
            {
                Plr->Gossip_SendPOI(-3889.3, -11495, 7, 6, 0, "Exodar, Inscription");
                SendQuickMenu(13887);
            }break;

        case 24: //Jewelcrafting
            {
                SendQuickMenu(10100);
            }break;

        case 25: //Leatherworking
            {
                Plr->Gossip_SendPOI(-3442.68, -12322.2, 7, 6, 0, "Stillpine Hold, Leatherworker");
                SendQuickMenu(10096);
            }break;

        case 26: //Mining
            {
				Plr->Gossip_SendPOI(-4179.89, -12493.1, 7, 6, 0, "Azure Watch, Mining Trainer");
                SendQuickMenu(10097);
            }break;

        case 27: //Skinning
            {
				Plr->Gossip_SendPOI(-3431.17, -12316.5, 7, 6, 0, "Stillpine Hold, Skinner");
                SendQuickMenu(10098);
            }break;

		case 28: //Tailoring
            {
				Plr->Gossip_SendPOI(-4711.54, -12386.7, 7, 6, 0, "Odesyus' Landing, Tailor");
                SendQuickMenu(10099);
            }break;
        }
    }
Ejemplo n.º 8
0
    void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char* Code)
    {
        GossipMenu* Menu;
        switch(IntId)
        {
        case 0:     // Return to start
            GossipHello(pObject, Plr, true);
            break;

            //////////////////////
            // Main menu handlers
            /////
        case 1:     // The bank
            Plr->Gossip_SendPOI(1595.64f, 232.45f, 7, 6, 0, "Undercity Bank");
            SendEmptyMenu(3514);
            break;

        case 2:     // The bat handler
            Plr->Gossip_SendPOI(1565.9f, 271.43f, 7, 6, 0, "Undercity Bat Handler");
            SendEmptyMenu(3515);
            break;

        case 3:     // The guild master
            Plr->Gossip_SendPOI(1594.17f, 205.57f, 7, 6, 0, "Undercity Guild Master");
            SendEmptyMenu(3516);
            break;

        case 4:     // The inn
            Plr->Gossip_SendPOI(1639.43f, 220.99f, 7, 6, 0, "Undercity Inn");
            SendEmptyMenu(3517);
            break;

        case 5:     // The mailbox
            Plr->Gossip_SendPOI(1632.68f, 219.4f, 7, 6, 0, "Undercity Mailbox");
            SendEmptyMenu(3518);
            break;

        case 6:     // The auction house
            Plr->Gossip_SendPOI(1647.9f, 258.49f, 7, 6, 0, "Undercity Auction House");
            SendEmptyMenu(3520);
            break;

        case 7:     // The zeppelin master
            Plr->Gossip_SendPOI(2059, 274.86f, 7, 6, 0, "Undercity Zeppelin");
            SendEmptyMenu(3519);
            break;

        case 8:     // The weapon master
            Plr->Gossip_SendPOI(1670.31f, 324.66f, 7, 6, 0, "Archibald");
            SendEmptyMenu(4521);
            break;

        case 9:     // The stable master
            Plr->Gossip_SendPOI(1634.18f, 226.76f, 7, 6, 0, "Anya Maulray");
            SendEmptyMenu(5979);
            break;

        case 10:    // The battlemaster
            Plr->Gossip_SendPOI(1300.33f, 350.92f, 7, 6, 0, "Battlemasters Undercity");
            SendEmptyMenu(7527);
            break;

        case 11:    // A class trainer
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 3542, Plr);
                Menu->AddItem(0, "Mage"         , 13);
                Menu->AddItem(0, "Paladin"      , 14);
                Menu->AddItem(0, "Priest"       , 15);
                Menu->AddItem(0, "Rogue"        , 16);
                Menu->AddItem(0, "Warlock"      , 17);
                Menu->AddItem(0, "Warrior"      , 18);
                Menu->SendTo(Plr);
            }
            break;

        case 12:    // A profession trainer
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 3541, Plr);
                Menu->AddItem(0, "Alchemy"           , 19);
                Menu->AddItem(0, "Blacksmithing"     , 20);
                Menu->AddItem(0, "Cooking"           , 21);
                Menu->AddItem(0, "Enchanting"        , 22);
                Menu->AddItem(0, "Engineering"       , 23);
                Menu->AddItem(0, "First Aid"         , 24);
                Menu->AddItem(0, "Fishing"           , 25);
                Menu->AddItem(0, "Herbalism"         , 26);
                Menu->AddItem(0, "Leatherworking"    , 27);
                Menu->AddItem(0, "Mining"            , 28);
                Menu->AddItem(0, "Skinning"          , 29);
                Menu->AddItem(0, "Tailoring"         , 30);
                Menu->SendTo(Plr);
            }
            break;

            ////////////////
            // Class trainer submenu
            ////////

        case 13: //Mage
            Plr->Gossip_SendPOI(1781, 53, 7, 6, 0, "Undercity Mage Trainers");
            SendQuickMenu(3513);
            break;

        case 14: //Paladin
            Plr->Gossip_SendPOI(1298.98f, 316.51f, 7, 6, 0, "Champion Cyssa Downrose");
            SendQuickMenu(3521);
            break;

        case 15: //Priest
            Plr->Gossip_SendPOI(1758.33f, 401.5f, 7, 6, 0, "Undercity Priest Trainers");
            SendQuickMenu(3521);
            break;

        case 16: //Rogue
            Plr->Gossip_SendPOI(1418.56f, 65, 7, 6, 0, "Undercity Rogue Trainers");
            SendQuickMenu(3526);
            break;

        case 17: //Warlock
            Plr->Gossip_SendPOI(1780.92f, 53.16f, 7, 6, 0, "Undercity Warlock Trainers");
            SendQuickMenu(3526);
            break;

        case 18: //Warrior
            Plr->Gossip_SendPOI(1775.59f, 418.19f, 7, 6, 0, "Undercity Warrior Trainers");
            SendQuickMenu(3527);
            break;

        case 19: //Alchemy
            Plr->Gossip_SendPOI(1419.82f, 417.19f, 7, 6, 0, "The Apothecarium");
            SendQuickMenu(3528);
            break;

        case 20: //Blacksmithing
            Plr->Gossip_SendPOI(1696, 285, 7, 6, 0, "Undercity Blacksmithing Trainer");
            SendQuickMenu(3529);
            break;

        case 21: //Cooking
            Plr->Gossip_SendPOI(1596.34f, 274.68f, 7, 6, 0, "Undercity Cooking Trainer");
            SendQuickMenu(3530);
            break;

        case 22: //Enchanting
            Plr->Gossip_SendPOI(1488.54f, 280.19f, 7, 6, 0, "Undercity Enchanting Trainer");
            SendQuickMenu(3531);
            break;

        case 23: //Engineering
            Plr->Gossip_SendPOI(1408.58f, 143.43f, 7, 6, 0, "Undercity Engineering Trainer");
            SendQuickMenu(3532);
            break;

        case 24: //First Aid
            Plr->Gossip_SendPOI(1519.65f, 167.19f, 7, 6, 0, "Undercity First Aid Trainer");
            SendQuickMenu(3533);
            break;

        case 25: //Fishing
            Plr->Gossip_SendPOI(1679.9f, 89, 7, 6, 0, "Undercity Fishing Trainer");
            SendQuickMenu(3534);
            break;

        case 26: //Herbalism
            Plr->Gossip_SendPOI(1558, 349.36f, 7, 6, 0, "Undercity Herbalism Trainer");
            SendQuickMenu(3535);
            break;

        case 27: //Leatherworking
            Plr->Gossip_SendPOI(1498.76f, 196.43f, 7, 6, 0, "Undercity Leatherworking Trainer");
            SendQuickMenu(3536);
            break;

        case 28: //Mining
            Plr->Gossip_SendPOI(1642.88f, 335.58f, 7, 6, 0, "Undercity Mining Trainer");
            SendQuickMenu(3537);
            break;

        case 29: //Skinning
            Plr->Gossip_SendPOI(1498.6f, 196.46f, 7, 6, 0, "Undercity Skinning Trainer");
            SendQuickMenu(3538);
            break;

        case 30: //Tailoring
            Plr->Gossip_SendPOI(1689.55f, 193, 7, 6, 0, "Undercity Tailoring Trainer");
            SendQuickMenu(3539);
            break;

        case 32:     // Locksmith
            Plr->Gossip_SendPOI(1632.68f, 219.4f, 7, 99, 0, "Undercity Locksmith");
            SendQuickMenu(14916);
            break;
        }
    }