All pastes #751850 Raw Edit

Anonymous

public text v1 · immutable
#751850 ·published 2007-10-27 19:54 UTC
rendered paste body
#include "StdAfx.h"
#include "Setup.h"

#ifdef WIN32
#pragma warning(disable:4305)
#endif

#define BACK_BUTTON

#ifdef BACK_BUTTON

#define SendQuickMenu(textid) objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), textid, Plr); \
    Menu->SendTo(Plr);

#else
#define SendQuickMenu(textid) objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), textid, Plr); \
    Menu->AddItem(0, "I was looking for something else.", 0); \
    Menu->SendTo(Plr);

#endif


class SCRIPT_DECL StormwindGuard : public GossipScript
{
public:
    ADD_GOSSIP_FACTORY_FUNCTION(StormwindGuard);
    void GossipHello(Creature * pCreature, Player * Plr, bool AutoSend)
    {
        GossipMenu *Menu;
        objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 2593, Plr);

        Menu->AddItem(0, "Auction House", 1);
        Menu->AddItem(0, "Bank of Stormwind", 2);
        Menu->AddItem(0, "Deeprun Tram", 3);
        Menu->AddItem(0, "The Inn", 4);
        Menu->AddItem(0, "Gryphon Master", 5);    
        Menu->AddItem(0, "Guild Master", 6);
        Menu->AddItem(0, "Mailbox", 7);
        Menu->AddItem(0, "Stable Master", 8);
        Menu->AddItem(0, "Weapons Trainer", 9);
        Menu->AddItem(0, "Officers' Lounge", 10);
        Menu->AddItem(0, "Battlemaster", 11);
        Menu->AddItem(0, "Class Trainer", 12);
        Menu->AddItem(0, "Profession Trainer", 13);

        if(AutoSend)
            Menu->SendTo(Plr);
    }

    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 of Stormwind
            SendQuickMenu(764);
            Plr->Gossip_SendPOI(-8916.87, 622.87, 6, 6, 0, "Stormwind Bank");
            break;

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

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

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

        case 6:     // Guild Master
            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:     // Weapons Master
            SendQuickMenu(4516);
            Plr->Gossip_SendPOI(-8797.0, 612.8, 6, 6, 0, "Woo Ping");
            break;

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

        case 11:    // Battlemaster
            {
			SendQuickMenu(7499);
            Plr->Gossip_SendPOI(-8393.62, 274.21, 6, 6, 0, "Battlemasters Stormwind");
            }break;

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

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

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

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

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

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

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

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

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

        case 20: //Shaman
            {
				Plr->Gossip_SendPOI(-9031.54, 549.87, 6, 6, 0, "Farseer Umbrua");
                SendQuickMenu(10106);
            }break;

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

        case 22: //Warrior
            {
                Plr->Gossip_SendPOI(-8714.14, 334.96, 6, 6, 0, "Stormwind Barracks");
                SendQuickMenu(901);
            }break;

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

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

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

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

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

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

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

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

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

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

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

        case 34: //Tailoring
            {
                Plr->Gossip_SendPOI(-8938.0, 800.7, 6, 6, 0, "Duncan`s Textiles");
                SendQuickMenu(929);
            }break;
        }
    }
};


void SetupGuardGossip(ScriptMgr * mgr)
{

    mgr->register_gossip_script(1423,  &GoldshireGuard::Create);   
    mgr->register_gossip_script(68,    &StormwindGuard::Create);   
    mgr->register_gossip_script(1976,  &StormwindGuard::Create);
	
}