Advertisement
Guest User

Onlykl

a guest
Jul 28th, 2009
450
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 31.84 KB | None | 0 0
  1. #include "StdAfx.h"
  2. #include "Setup.h"
  3.  
  4. #ifdef WIN32
  5. #pragma warning(disable:4305)
  6. #endif
  7.  
  8.  
  9. class SCRIPT_DECL GlobalNPC : public GossipScript
  10. {
  11. public:
  12.     void GossipHello(Object * pObject, Player* Plr, bool AutoSend);
  13.     void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code);
  14.     void GossipEnd(Object * pObject, Player* Plr);
  15.     void Destroy()
  16.     {
  17.         delete this;
  18.     }
  19. };
  20. void GlobalNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
  21.     {
  22.             GossipMenu *Menu;
  23.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  24.             if(Plr->getRace()== 10||Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 5)
  25.             {Menu->AddItem(6, "|CFF8B0000Horde Cities", 1);}else{Menu->AddItem(6, "|CFF191970Alliance Cities", 2);}
  26.             Menu->AddItem(6, "|CFF191970Mall |CFF8B0000- NO PVP", 1000);
  27.             Menu->AddItem(6, "|CFF191970Leveling |CFF8B0000Zone", 4040);
  28.             Menu->AddItem(5, "|cFF006400Azeroth Instances", 30);
  29.             Menu->AddItem(5, "|cFFA52A2AOutland Instances", 50);
  30.             Menu->AddItem(5, "|cFFFFFAFANorthrend Instances", 500);
  31.             Menu->AddItem(5, "|cFF800080Global Locations", 80);
  32.             Menu->AddItem(5, "|cFF9370DBIsle of Quel'Danas", 200);
  33.             Menu->AddItem(2, "|cFF008B8BShattrath", 20);
  34.             Menu->AddItem(2, "|cFFC0C0C0Dalaran", 550);
  35.             Menu->AddItem(8, "|cFF8B0000Gurubsahi Arena", 21);
  36.             Menu->AddItem(8, "|cFF8B0000Extra Stuff", 393);
  37.             if(AutoSend)
  38.             Menu->SendTo(Plr);
  39.     }
  40.  
  41. void GlobalNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
  42.     {
  43.     Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;
  44.     if(pCreature==NULL)
  45.         return;
  46.  
  47.         GossipMenu * Menu;
  48.         switch(IntId)
  49.         {
  50.         case 0:
  51.         GossipHello(pObject, Plr, true);
  52.         break;
  53.                    
  54.         case 1:     // Horde Cities
  55.             {
  56.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  57.             Menu->AddItem(5, "Silvermoon", 4);
  58.             Menu->AddItem(5, "Orgrimmar", 5);
  59.             Menu->AddItem(5, "Thunder Bluff", 6);
  60.             Menu->AddItem(5, "Undercity", 7);
  61.             Menu->AddItem(1, "|CFF800080Back", 99);
  62.            
  63.             Menu->SendTo(Plr);
  64.             }
  65.             break;
  66.  
  67.         case 2:     // Alliance Cities
  68.             {
  69.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  70.             Menu->AddItem(5, "The Exodar", 8);
  71.             Menu->AddItem(5, "Stormwind", 9);
  72.             Menu->AddItem(5, "Ironforge", 10);
  73.             Menu->AddItem(5, "Darnassus", 11);
  74.             Menu->AddItem(1, "|CFF800080Back", 99);
  75.  
  76.             Menu->SendTo(Plr);
  77.             }
  78.             break;
  79.  
  80.  
  81.  
  82.         case 3:     // Outland Locations
  83.             {
  84.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  85.             Menu->AddItem(5, "Hellfire Peninsula", 12);
  86.             Menu->AddItem(5, "Zangermarsh", 13);
  87.             Menu->AddItem(5, "Nagrand", 14);
  88.             Menu->AddItem(5, "Blades Edge Mountains", 15);
  89.             Menu->AddItem(5, "Netherstorm", 16);
  90.             Menu->AddItem(5, "Terokkar Forest", 17);
  91.             Menu->AddItem(5, "Shadowmoon Valley", 18);
  92.             Menu->AddItem(1, "|CFF800080Back", 99);
  93.  
  94.             Menu->SendTo(Plr);
  95.             }
  96.             break;
  97.  
  98.        
  99.         case 4040://Leveling Zone
  100.             {
  101.                 Plr->EventTeleport(1, 4617.614258, -3851.083984, 944.031799);
  102.             }
  103.             break;
  104.            
  105.         case 550://Dalaran
  106.             {
  107.                 Plr->EventTeleport(571, 5804.700195, 633.228027, 647.729980);
  108.             }
  109.             break;
  110.  
  111.         case 5://Orgrimmar
  112.             {
  113.                 Plr->EventTeleport(1, 1371.068970, -4370.801758, 26.052483);
  114.             }
  115.             break;
  116.  
  117.         case 6://ThunderBluff
  118.             {
  119.                 Plr->EventTeleport(1, -1274.246216, 121.371109, 131.207657);
  120.             }
  121.             break;
  122.  
  123.         case 7://Undercity
  124.             {
  125.                 Plr->EventTeleport(0, 2050.203125, 285.650604, 56.994549);
  126.             }
  127.             break;
  128.  
  129.         case 8: //Exodar
  130.             {
  131.                 Plr->EventTeleport(530, -4072.202393, -12014.337891, -1.277277);
  132.             }
  133.             break;
  134.  
  135.         case 9: //Stormwind
  136.             {
  137.                 Plr->EventTeleport(0, -9100.480469, 406.950745, 92.594185);
  138.             }
  139.             break;
  140.  
  141.         case 10: //Ironforge
  142.             {
  143.                 Plr->EventTeleport(0, -5028.265137, -825.976563, 495.301575);
  144.             }
  145.             break;
  146.  
  147.         case 11: //Darnassus
  148.             {
  149.                 Plr->EventTeleport(1, 9985.907227, 1971.155640, 1326.815674);
  150.             }
  151.             break;
  152.  
  153.         case 12: //Hellfire Peninsula
  154.             {
  155.                 Plr->EventTeleport(530, -248.160004, 922.348999, 84.379799);
  156.             }
  157.             break;
  158.  
  159.         case 13: //Zangermarsh
  160.             {
  161.                 Plr->EventTeleport(530, -225.863632, 5405.927246, 22.346397);
  162.             }
  163.             break;
  164.  
  165.         case 14: //Nagrand
  166.             {
  167.                 Plr->EventTeleport(530, -468.232330, 8418.666016, 28.031298);
  168.  
  169.             }
  170.             break;
  171.  
  172.         case 15: //Blades Edge Mountains
  173.             {
  174.                 Plr->EventTeleport(530, 1471.672852, 6828.047852, 107.759239);
  175.  
  176.             }
  177.             break;
  178.  
  179.         case 16: //Netherstorm
  180.             {
  181.                 Plr->EventTeleport(530, 3396.123779, 4182.208008, 137.097992);
  182.  
  183.             }
  184.             break;
  185.  
  186.         case 1012: //racetrack
  187.             {
  188.                 Plr->EventTeleport(1, -5647.770020, -2823.115753, 91.564011);
  189.  
  190.             }
  191.             break;
  192.  
  193.         case 1234: //metal maze
  194.             {
  195.                 Plr->EventTeleport(1, -6515.910156, -4291.020020, 87.371300);
  196.  
  197.             }
  198.  
  199.  
  200.  
  201.         case 17: //Terokkar Forest
  202.             {
  203.                 Plr->EventTeleport(530, -1202.426636, 5313.692871, 33.774723);
  204.  
  205.             }
  206.             break;
  207.  
  208.         case 18: //Shadowmoon Valley
  209.             {
  210.                 Plr->EventTeleport(530, -2859.522461, 3182.34773, 10.008426);
  211.  
  212.             }
  213.              break;
  214.  
  215.         case 20: // Shattrath
  216.              {
  217.                 Plr->EventTeleport(530, -1887.510010, 5359.379883, -12.427300);
  218.  
  219.              }
  220.              break;
  221.  
  222.         case 200: // Isle of Quel'Danas
  223.              {
  224.                 Plr->EventTeleport(530, 13008, -6912.490, 9.583710);
  225.  
  226.              }
  227.              break;
  228.  
  229.         case 203: // Snow Event
  230.              {
  231.                 Plr->EventTeleport(1, 7754, -4838, 696);
  232.  
  233.              }
  234.              break;
  235.  
  236.         case 204: // stairway to hell
  237.              {
  238.                 Plr->EventTeleport(0, -10916.056641, 1508.490356, 50.009552);
  239.  
  240.              }
  241.              break;
  242.  
  243.         case 206: // Mad Cow Event
  244.              {
  245.                 Plr->EventTeleport(1, 7326.164551, -1535.058105, 161);
  246.  
  247.              }
  248.              break;
  249.  
  250.         case 21: // Gurubsahi Arena
  251.              {
  252.                 Plr->EventTeleport(0, -13271.959961, 149.105515, 34.464458);
  253.  
  254.              }
  255.              break;
  256.            
  257.         case 30: // Azeroth Instances
  258.             {
  259.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  260.             Menu->AddItem(5, "Shadowfang Keep", 31);
  261.             Menu->AddItem(5, "Scarlet Monastery", 32);
  262.             Menu->AddItem(5, "Zul'Farrak", 33);
  263.             Menu->AddItem(5, "Stratholme", 41);
  264.             Menu->AddItem(5, "Scholomance", 40);
  265.             Menu->AddItem(5, "Blackrock Spire", 42);
  266.             Menu->AddItem(5, "Onyxia's Lair", 38);
  267.             Menu->AddItem(5, "Molten Core", 37);
  268.             Menu->AddItem(5, "Zul'Gurub", 34);
  269.             Menu->AddItem(5, "Karazhan", 43);
  270.             Menu->AddItem(5, "Ahn'Qirai 20", 35);
  271.             Menu->AddItem(5, "Ahn'Qirai 40", 36);
  272.             Menu->AddItem(5, "Naxxramas", 39);
  273.             Menu->AddItem(5, "Caverns of Time", 44);
  274.             Menu->AddItem(1, "|CFF800080Back", 99);
  275.                
  276.             Menu->SendTo(Plr);
  277.             }
  278.             break;
  279.  
  280.         case 31: // Shadowfang Keep
  281.             {
  282.                 Plr->EventTeleport(0, -234.495087, 1561.946411, 76.892143);
  283.             }
  284.             break;
  285.         case 32: // Scarlet Monastery
  286.             {
  287.                 Plr->EventTeleport(0, 2870.442627, -819.985229, 160.331085);
  288.             }
  289.             break;
  290.         case 33: // Zul'Farrak
  291.             {
  292.                 Plr->EventTeleport(1, -6797.278809, -2903.917969, 9.953360);
  293.             }
  294.             break;
  295.         case 34: // Zul'Gurub
  296.             {
  297.                 Plr->EventTeleport(0, -11919.073242, -1202.459374, 92.298744);
  298.             }
  299.             break;
  300.         case 35: // Ahn'Qirai 20
  301.             {
  302.                 Plr->EventTeleport(1, -8394.730469, 1485.658447, 21.038563);
  303.             }
  304.             break;
  305.         case 36: // Ahn'Qirai 40
  306.             {
  307.                 Plr->EventTeleport(1, -8247.316406, 1970.156860, 129.071472);
  308.             }
  309.             break;
  310.         case 37: // Molten Core
  311.             {
  312.                 Plr->EventTeleport(409, 1089.6, -470.19, -106.41);
  313.             }
  314.             break;
  315.         case 38: // Onyxia
  316.             {
  317.                 Plr->EventTeleport(249, 30.0, -64.0, -5.0);
  318.             }
  319.             break;
  320.         case 39: // Naxxramas
  321.             {
  322.                 Plr->EventTeleport(533, 3006.06, -3436.72, 293.891);
  323.             }
  324.             break;
  325.         case 40: //Scholomance
  326.             {
  327.                 Plr->EventTeleport(0, 1267.468628, -2556.651367, 94.127983);
  328.             }
  329.             break;
  330.         case 41: //Stratholme
  331.             {
  332.                 Plr->EventTeleport(0, 3359.111572, -3380.8444238, 144.781860);
  333.             }
  334.             break;
  335.         case 42: // Black Rock Spire
  336.             {
  337.                 Plr->EventTeleport(0, -7527.129883, -1224.997437, 285.733002);
  338.             }
  339.             break;
  340.         case 43: // Kharazan
  341.             {
  342.                 Plr->EventTeleport(532, -11087.3, -1977.47, 49.6135);
  343.             }
  344.             break;
  345.         case 44: // Caverns of Times
  346.             {
  347.                 Plr->EventTeleport(1, -8519.718750, -4297.542480, -208.441376);
  348.             }
  349.             break;
  350.  
  351.         case 50: // Outland Instances
  352.             {
  353.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  354.             Menu->AddItem(0, "Outland Raids", 64);
  355.             Menu->AddItem(5, "Hellfire Ramparts", 51);
  356.             Menu->AddItem(5, "The Blood Furnace", 52);
  357.             Menu->AddItem(5, "The Shattered Halls", 53);
  358.             Menu->AddItem(5, "The Underbog", 54);
  359.             Menu->AddItem(5, "The Slave Pens", 55);
  360.             Menu->AddItem(5, "The Steamvault", 56);
  361.             Menu->AddItem(5, "Mana-Tombs", 57);
  362.             Menu->AddItem(5, "Auchenai Crypts", 58);
  363.             Menu->AddItem(5, "Sethekk Halls", 59);
  364.             Menu->AddItem(5, "Shadow Labyrinth", 60);
  365.             Menu->AddItem(5, "The Mechanar", 61);
  366.             Menu->AddItem(5, "The Botanica", 62);
  367.             Menu->AddItem(5, "The Arcatraz", 63);
  368.             Menu->AddItem(1, "|CFF800080Back", 99);
  369.            
  370.             Menu->SendTo(Plr);
  371.             }
  372.             break;
  373.                
  374.         case 51: // Hellfire Ramparts
  375.             {
  376.                 Plr->EventTeleport(530, -360.670990, 3071.899902, -15.097700);
  377.             }
  378.             break;
  379.         case 52: // The Blood Furnace
  380.             {
  381.                 Plr->EventTeleport(530, -303.506012, 3164.820068, 31.742500);
  382.             }
  383.             break;
  384.         case 53: // The Shattered Halls
  385.             {
  386.                 Plr->EventTeleport(530, -311.083527, 3083.291748, -3.745923);
  387.             }
  388.             break;
  389.         case 54: // The Underbog
  390.             {
  391.                 Plr->EventTeleport(530, 777.088989, 6763.450195, -72.062561);
  392.             }
  393.             break;
  394.         case 55: // The Slave Pens
  395.             {
  396.                 Plr->EventTeleport(530, 719.507996, 6999.339844, -73.074303);
  397.             }
  398.             break;
  399.         case 56: // The Steamvault
  400.             {
  401.                 Plr->EventTeleport(530, 816.590027, 6934.669922, -80.544601);
  402.             }
  403.             break;
  404.         case 57: // Mana-Tombs
  405.             {
  406.                 Plr->EventTeleport(530, -3079.810059, 4943.040039, -101.046997);
  407.             }
  408.             break;
  409.         case 58: // Auchenai Crypts
  410.             {
  411.                 Plr->EventTeleport(530, -3361.959961, 5225.770020, -101.047997);
  412.             }
  413.             break;
  414.         case 59: // Sethekk Halls
  415.             {
  416.                 Plr->EventTeleport(530, -3362.219971, 4660.410156, -101.049004 );
  417.             }
  418.             break;
  419.         case 60: // Shadow Labyrinth
  420.             {
  421.                 Plr->EventTeleport(530, -3645.060059, 4943.620117, -101.047997);
  422.             }
  423.             break;
  424.         case 61: // The Mechanar
  425.             {
  426.                 Plr->EventTeleport(530, 2862.409912, 1546.089966, 252.158691);
  427.             }
  428.             break;
  429.         case 62: // The Botanica
  430.             {
  431.                 Plr->EventTeleport(530, 3413.649902, 1483.319946, 182.837997);
  432.             }
  433.             break;
  434.         case 63: // The Arcatraz
  435.             {
  436.                 Plr->EventTeleport(530, 3311.598145, 1332.745117, 505.557251);
  437.             }
  438.             break;
  439.  
  440.         case 64: // Outland Raids
  441.             {
  442.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  443.             Menu->AddItem(5, "Magtheridon's Lair", 65);
  444.             Menu->AddItem(5, "Serpentshrine Cavern", 66);
  445.             Menu->AddItem(5, "Gruul's Lair", 67);
  446.             Menu->AddItem(5, "The Eye", 68);
  447.             Menu->AddItem(5, "Black Temple", 69);
  448.             Menu->AddItem(1, "|CFF800080Back", 50);
  449.  
  450.             Menu->SendTo(Plr);
  451.             }
  452.             break;
  453.  
  454.         case 65: // Magtheridon's Lair
  455.             {
  456.             Plr->EventTeleport(530, -313.678986, 3088.350098, -116.501999);
  457.             }
  458.             break;
  459.         case 66: // Serpentshrine Cavern
  460.             {
  461.                 Plr->EventTeleport(530, 830.542908, 6865.445801, -63.785503);
  462.             }
  463.             break;
  464.         case 67: // Gruul's Lair
  465.             {
  466.                 Plr->EventTeleport(530, 3549.424072, 5179.854004, -4.430779);
  467.             }
  468.             break;
  469.         case 68: // The Eye
  470.             {
  471.                 Plr->EventTeleport(530, 3087.310059, 1373.790039, 184.643005);
  472.             }
  473.             break;
  474.         case 69: // Black Temple
  475.             {
  476.                 Plr->EventTeleport(564, 97.0894, 1001.96, -86.8798 );
  477.             }
  478.             break;
  479.            
  480.         case 80: //SUB MENU
  481.             {
  482.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  483.             Menu->AddItem(5, "Eastern Kingdoms", 81);
  484.             Menu->AddItem(5, "Kalimdor", 82);
  485.             Menu->AddItem(5, "Outland", 3);
  486.             Menu->AddItem(5, "Northrend", 700);
  487.             Menu->AddItem(1, "|CFF800080Back", 99);
  488.                        
  489.             Menu->SendTo(Plr);
  490.             }
  491.             break;
  492.            
  493.         case 700: // Northrend Locations
  494.             {
  495.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  496.             Menu->AddItem(5, "Borean Tundra", 501);
  497.             Menu->AddItem(5, "Crystalsong Forest", 503);
  498.             Menu->AddItem(5, "Grizzly Hills", 504);
  499.             Menu->AddItem(5, "Howling Fjord", 505);
  500.             Menu->AddItem(5, "Icecrown Glacier", 506);
  501.             Menu->AddItem(5, "Sholazar Basin", 507);
  502.             Menu->AddItem(5, "The Dragonblight", 508);
  503.             Menu->AddItem(5, "The Storm Peaks", 509);
  504.             Menu->AddItem(5, "Wintergrasp", 510);
  505.             Menu->AddItem(5, "Zul'Drak", 511);
  506.             Menu->AddItem(1, "|CFF800080Back", 80);
  507.  
  508.             Menu->SendTo(Plr);
  509.             }
  510.             break;
  511.            
  512.         case 500: // Northrend instances
  513.             {
  514.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  515.             Menu->AddItem(5, "The Nexus", 512);
  516.             Menu->AddItem(5, "Utgarde Keep", 513);
  517.             Menu->AddItem(5, "Azjol Nerub", 514);
  518.             Menu->AddItem(5, "Drak'tharon Keep", 515);
  519.             Menu->AddItem(5, "Violet Hold", 516);
  520.             Menu->AddItem(5, "Ulduar", 517);
  521.             Menu->AddItem(5, "Caverns of Time", 518);
  522.             Menu->AddItem(5, "Naxxramas", 519);
  523.             Menu->AddItem(1, "|CFF800080Back", 99);
  524.  
  525.             Menu->SendTo(Plr);
  526.             }
  527.             break;
  528.  
  529.         case 81: // EASTERN KINGDOM
  530.             {
  531.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  532.             Menu->AddItem(1, "|CFF800080Back", 80);
  533.             Menu->AddItem(5, "Eastern Plaguelands", 70);
  534.             Menu->AddItem(5, "Western Plaguelands", 71);
  535.             Menu->AddItem(5, "Tristfal Glades", 72);
  536.             Menu->AddItem(5, "Alterac Mountains", 73);
  537.             Menu->AddItem(5, "Silverpine Forest", 74);
  538.             Menu->AddItem(5, "Hillsbrad Foothills", 75);
  539.             Menu->AddItem(5, "The Hinterlands", 76);
  540.             Menu->AddItem(5, "Arathi Highlands", 77);
  541.             Menu->AddItem(5, "Wetlands", 78);
  542.             Menu->AddItem(5, "Dun Morogh", 79);
  543.             Menu->AddItem(5, "Loch Modan", 100);
  544.             Menu->AddItem(5, "Badlands", 101);
  545.             Menu->AddItem(5, "Blackrock Mountain", 102);
  546.             Menu->AddItem(1, "|CFF000080Next Page", 1005);
  547.                      
  548.             Menu->SendTo(Plr);
  549.             }
  550.             break;
  551.  
  552.         case 1005: //PAGE TWO EASTERN KINGDOM
  553.             {
  554.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  555.             Menu->AddItem(5, "Redridge Mountain", 103);
  556.             Menu->AddItem(5, "Elwynn Forest", 104);
  557.             Menu->AddItem(5, "Duskwood", 105);
  558.             Menu->AddItem(5, "Westfall", 106);
  559.             Menu->AddItem(5, "Swamp of Sorrows", 107);
  560.             Menu->AddItem(5, "The Blasted Lands", 108);
  561.             Menu->AddItem(5, "Deadwind Pass", 109);
  562.             Menu->AddItem(5, "Stranglethorn Vale", 110);
  563.             Menu->AddItem(1, "|CFF800080Back", 81);
  564.  
  565.             Menu->SendTo(Plr);
  566.             }
  567.             break;
  568.  
  569.         case 82: // KALIMDOR
  570.             {
  571.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  572.             Menu->AddItem(1, "|CFF800080Back", 80);
  573.             Menu->AddItem(5, "Moonglade", 111);
  574.             Menu->AddItem(5, "Winterspring", 112);
  575.             Menu->AddItem(5, "Felwood", 113);
  576.             Menu->AddItem(5, "Darkshore", 114);
  577.             Menu->AddItem(5, "Azshara", 115);
  578.             Menu->AddItem(5, "Ashenvale", 116);
  579.             Menu->AddItem(5, "Stonetalon Mountains", 117);
  580.             Menu->AddItem(5, "The Barrens", 118);
  581.             Menu->AddItem(5, "Durotar", 119);
  582.             Menu->AddItem(5, "Mulgore", 120);
  583.             Menu->AddItem(5, "Desolace", 121);
  584.             Menu->AddItem(5, "Dustwallow Marsh", 122);
  585.             Menu->AddItem(5, "Feralas", 123);
  586.             Menu->AddItem(1, "|CFF000080Next Page", 1006);
  587.                        
  588.             Menu->SendTo(Plr);
  589.             }
  590.             break;
  591.  
  592.         case 1006: //PAGE TWO KALIMDOR
  593.             {
  594.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  595.             Menu->AddItem(5, "Thousand Needles", 124);
  596.             Menu->AddItem(5, "Tanaris Desert", 125);
  597.             Menu->AddItem(5, "Un'Goro Crater", 126);
  598.             Menu->AddItem(5, "Silithus", 127);
  599.             Menu->AddItem(1, "|CFF800080Back", 82);
  600.  
  601.                Menu->SendTo(Plr);
  602.             }
  603.             break;
  604.         case 393: //Extra Stuff
  605.             {
  606.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  607.             Menu->AddItem(10, "|CFF006400Buff me up!", 96);
  608.             Menu->AddItem(10, "|CFF006400Remove Resurrection Sickness", 97);
  609.             Menu->AddItem(11, "|CFF008B8BMake This Place Your Home", 95);
  610.             Menu->AddItem(5, "|cffff0000Disconnect Me Now!|r", 223);
  611.             Menu->AddItem(1, "|CFF800080Back", 99);
  612.  
  613.                Menu->SendTo(Plr);
  614.             }
  615.             break;
  616.         case 223: // Disconnect
  617.             {
  618.                 Plr->GetGUID();
  619.                 Plr->SaveToDB(1);    // Saves the character before the logout
  620.                 Plr->SoftDisconnect();   // Free Disconnect Logout
  621.             }
  622.             break;
  623. // EASTERN KINGDOMS [case] //
  624.  
  625.         case 70: // WesternPlaguelands
  626.             {
  627.                 Plr->EventTeleport( 0, 1855, -1569, 61);
  628.             }
  629.             break;
  630.  
  631.         case 71: // EasternPlaguelands
  632.             {
  633.                 Plr->EventTeleport( 0, 2278, -5311, 89);
  634.             }
  635.             break;
  636.  
  637.         case 72: // TristfallGlades
  638.             {
  639.                 Plr->EventTeleport( 0, 2032, -432, 37);
  640.             }
  641.             break;
  642.  
  643.         case 73: // AlteracMountains
  644.             {
  645.                 Plr->EventTeleport( 0, 552, -275, 152);
  646.             }
  647.             break;
  648.  
  649.         case 74: // Silverpine Forest
  650.             {
  651.                 Plr->EventTeleport( 0, -126, 815, 68);
  652.             }
  653.             break;
  654.  
  655.         case 75: // Hillsbrad
  656.             {
  657.                 Plr->EventTeleport( 0, -502, 91, 61);
  658.             }
  659.             break;
  660.  
  661.         case 76: // TheHinterlands
  662.             {
  663.                 Plr->EventTeleport( 0, -678, -4018, 240);
  664.             }
  665.             break;
  666.  
  667.         case 77: // ArathiHighlands
  668.             {
  669.                 Plr->EventTeleport( 0, -797, -2068, 35);
  670.             }
  671.             break;
  672.  
  673.         case 78: // Wetlands
  674.             {
  675.                 Plr->EventTeleport( 0, -3256, -2718, 11);
  676.             }
  677.             break;
  678.  
  679.         case 79: // Dunmorogh
  680.             {
  681.                 Plr->EventTeleport( 0, -5826, -1586, 366);
  682.             }
  683.             break;
  684.  
  685.         case 100: // Lochmodan
  686.             {
  687.                 Plr->EventTeleport( 0, -4771, -3329, 347);
  688.             }
  689.             break;
  690.  
  691.         case 101: // Badlands
  692.             {
  693.                 Plr->EventTeleport( 0, -7027, -3330, 243);
  694.             }
  695.             break;
  696.  
  697.         case 102: // Blackrockmountain
  698.             {
  699.                 Plr->EventTeleport( 0, -7317, -1072, 279);
  700.             }
  701.             break;
  702.  
  703.         case 103: // Redridgemountain
  704.             {
  705.                 Plr->EventTeleport( 0, -9168, -2726, 92);
  706.             }
  707.             break;
  708.  
  709.         case 104: // ElwynnForest
  710.             {
  711.                 Plr->EventTeleport( 0, -9325, -1038, 67);
  712.             }
  713.             break;
  714.  
  715.         case 105: // Duskwood
  716.             {
  717.                 Plr->EventTeleport( 0, -10694, -884, 52);
  718.             }
  719.             break;
  720.  
  721.         case 106: // Westfall
  722.             {
  723.                 Plr->EventTeleport( 0, -11018, 1513, 45);
  724.             }
  725.             break;
  726.  
  727.         case 107: // SwampofSorrows
  728.             {
  729.                 Plr->EventTeleport( 0, -10429, -3828, -29);
  730.             }
  731.             break;
  732.  
  733.         case 108: // BlastedLands
  734.             {
  735.                 Plr->EventTeleport( 0, -11853, -3197, -25);
  736.             }
  737.             break;
  738.  
  739.         case 109: // DeadwindPass
  740.             {
  741.                 Plr->EventTeleport( 0, -10435, -1809, 101);
  742.             }
  743.             break;
  744.  
  745.         case 110: // Stranglethornvale
  746.             {
  747.                 Plr->EventTeleport( 0, -13382, 2, 23);
  748.             }
  749.             break;
  750.  
  751.  
  752.  
  753. // KALIMDOR [case] //
  754.  
  755.         case 111: // Moonglade
  756.             {
  757.                 Plr->EventTeleport( 1, 7978, -2501, 490);
  758.             }
  759.             break;
  760.  
  761.         case 112: // winterspring
  762.             {
  763.                 Plr->EventTeleport( 1, 6721, -4659, 722);
  764.             }
  765.             break;
  766.  
  767.         case 113: // felwood
  768.             {
  769.                 Plr->EventTeleport( 1, 4878, -614, 362);
  770.             }
  771.             break;
  772.  
  773.         case 114: // darkshore
  774.             {
  775.                 Plr->EventTeleport( 1, 4565, 438, 34);
  776.             }
  777.             break;
  778.  
  779.         case 115: // azshara
  780.             {
  781.                 Plr->EventTeleport( 1, 2717, -5968, 108);
  782.             }
  783.             break;
  784.  
  785.         case 116: // ashenvale
  786.             {
  787.                 Plr->EventTeleport( 1, 3469, 847, 7);
  788.             }
  789.             break;
  790.  
  791.         case 117: // Stonetalon
  792.             {
  793.                 Plr->EventTeleport( 1, 898, 922, 128);
  794.             }
  795.             break;
  796.  
  797.         case 118: // TheBarrens
  798.             {
  799.                 Plr->EventTeleport( 1, -1330, -3120, 93);
  800.             }
  801.             break;
  802.  
  803.         case 119: // Durotar
  804.             {
  805.                 Plr->EventTeleport( 1, 242, -5151, 3);
  806.             }
  807.             break;
  808.  
  809.         case 120: // Mulgore
  810.             {
  811.                 Plr->EventTeleport( 1, -2326, -367, -6);
  812.             }
  813.             break;
  814.            
  815.         case 121: // Desolace
  816.             {
  817.                 Plr->EventTeleport( 1, -939, 1091, 95);
  818.             }
  819.             break;
  820.  
  821.         case 122: // Dustwallow
  822.             {
  823.                 Plr->EventTeleport( 1, -3719, -2530, 71);
  824.             }
  825.             break;
  826.  
  827.         case 123: // Feralas
  828.             {
  829.                 Plr->EventTeleport( 1, -4508, 2041, 53);
  830.             }
  831.             break;
  832.  
  833.         case 124: // ThousandNeedles
  834.             {
  835.                 Plr->EventTeleport( 1, -4619, -1850, 88);
  836.             }
  837.             break;
  838.  
  839.         case 125: // Tanaris
  840.             {
  841.                 Plr->EventTeleport( 1, -7373, -2950, 12);
  842.             }
  843.             break;
  844.  
  845.         case 126: // Ungoro
  846.             {
  847.                 Plr->EventTeleport( 1, -6186, -1106, -215);
  848.             }
  849.             break;
  850.  
  851.         case 127: // Silithus
  852.             {
  853.                 Plr->EventTeleport( 1, -6824, 821, 51);
  854.             }
  855.             break;
  856.  
  857.         case 95: // Bind Position
  858.             {
  859.                 Plr->GetSession()->SendInnkeeperBind(pCreature);
  860.             }
  861.             break;
  862.    
  863.         case 96: // Buff me up
  864.             {
  865.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  866.             pCreature->CastSpell(Plr, 15366, 0);
  867.             pCreature->CastSpell(Plr, 33079, 0);
  868.             pCreature->CastSpell(Plr, 33077, 0);
  869.             pCreature->CastSpell(Plr, 33080, 0);
  870.             pCreature->CastSpell(Plr, 33081, 0);
  871.             pCreature->CastSpell(Plr, 33078, 0);
  872.             pCreature->CastSpell(Plr, 33082, 0);
  873.             pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "By all that is wrong in this world, I bless you." );
  874.        
  875.             Menu->SendTo(Plr);
  876.             }
  877.             break;
  878.                
  879.                
  880.         case 97: // REMOVE RESSURECTION SICKNESS
  881.             {
  882.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  883.             Plr->addSpell(15007);
  884.             Plr->removeSpell(15007,0,0,0);
  885.             pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been cured of that dreaded sickness." );
  886.        
  887.             Menu->SendTo(Plr);
  888.             }
  889.             break;
  890.  
  891. // NORTHREND LOCATIONS [case] //
  892.  
  893.         case 501: // Borean Tundra
  894.             {
  895.                 Plr->EventTeleport( 571, 3249.02, 5688.4, 50.2965);
  896.             }
  897.             break;
  898.  
  899.         case 503: // Crystalsong Forest
  900.             {
  901.                 Plr->EventTeleport( 571, 5678.1, -115.016, 178.964);
  902.             }
  903.             break;
  904.  
  905.         case 504: // Grizzly Hills
  906.             {
  907.                 Plr->EventTeleport( 571, 3753.79, -3851.63, 182.325);
  908.             }
  909.             break;
  910.  
  911.         case 505: // Howling Fjord
  912.             {
  913.                 Plr->EventTeleport( 571, 592, -5095, 6);
  914.             }
  915.             break;
  916.  
  917.         case 506: // Icecrown Glacier
  918.             {
  919.                 Plr->EventTeleport( 571, 7295.7, 1380.01, 310.741);
  920.             }
  921.             break;
  922.  
  923.         case 507: // Sholazar Basin
  924.             {
  925.                 Plr->EventTeleport( 571, 5498.23, 4869.99, -196.17);
  926.             }
  927.             break;
  928.  
  929.         case 508: // The Dragonblight
  930.             {
  931.                 Plr->EventTeleport( 571, 2981.363, 291.109, 85);
  932.             }
  933.             break;
  934.  
  935.         case 509: // The Storm Peaks
  936.             {
  937.                 Plr->EventTeleport( 571, 7301.21, -1393.86, 907.589);
  938.             }
  939.             break;
  940.  
  941.         case 510: // Wintergrasp
  942.             {
  943.                 Plr->EventTeleport( 571, 5213.69, 2820.99, 409.617);
  944.             }
  945.             break;
  946.  
  947.         case 511: // Zul'Drak
  948.             {
  949.                 Plr->EventTeleport( 571, 5537.45, -3186.92, 352.266);
  950.             }
  951.             break;
  952.  
  953.         case 512: // The Nexus
  954.             {
  955.                 Plr->EventTeleport( 571, 3790.109619, 6932.677734, 104.194321);
  956.             }
  957.             break;
  958.  
  959.         case 513: // Utgarde Keep
  960.             {
  961.                 Plr->EventTeleport( 571, 1268.807861, -4855.125000, 215.763794);
  962.             }
  963.             break;
  964.  
  965.         case 514: // Azjol Nerub
  966.             {
  967.                 Plr->EventTeleport( 571, 3710.987549, 2141.171875, 54.617020);
  968.             }
  969.             break;
  970.  
  971.         case 515: // Drak'tharon Keep
  972.             {
  973.                 Plr->EventTeleport( 571, 4765.397461, -2045.016113, 229.994766);
  974.             }
  975.             break;
  976.  
  977.         case 516: // Violet Hold
  978.             {
  979.                 Plr->EventTeleport( 571, 5724.774902, 541.784363, 653.525160);
  980.             }
  981.             break;
  982.  
  983.         case 517: // Ulduar
  984.             {
  985.                 Plr->EventTeleport( 571, 8951.563477, -1270.476318, 1025.500244);
  986.             }
  987.             break;
  988.  
  989.         case 518: // Caverns of Time
  990.             {
  991.                 Plr->EventTeleport( 1, -8189.310059, -4713.979980, 23.503336);
  992.             }
  993.             break;
  994.  
  995.         case 519: // Naxxramas
  996.             {
  997.                 Plr->EventTeleport( 571, 3669.469971, -1261.760010, 245.527603);
  998.             }
  999.             break;
  1000.         case 99: //main menu
  1001.             {
  1002.             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  1003.             if(Plr->getRace()== 10||Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 5)
  1004.             {Menu->AddItem(6, "|CFF8B0000Horde Cities", 1);}else{Menu->AddItem(6, "|CFF191970Alliance Cities", 2);}
  1005.             Menu->AddItem(6, "|CFF191970Mall |CFF8B0000- NO PVP", 1000);
  1006.             Menu->AddItem(6, "|CFF191970Leveling |CFF8B0000Zone", 4040);
  1007.             Menu->AddItem(5, "|cFF006400Azeroth Instances", 30);
  1008.             Menu->AddItem(5, "|cFFA52A2AOutland Instances", 50);
  1009.             Menu->AddItem(5, "|cFFFFFAFANorthrend Instances", 500);
  1010.             Menu->AddItem(5, "|cFF800080Global Locations", 80);
  1011.             Menu->AddItem(5, "|cFF9370DBIsle of Quel'Danas", 200);
  1012.             Menu->AddItem(2, "|cFF008B8BShattrath", 20);
  1013.             Menu->AddItem(2, "|cFFC0C0C0Dalaran", 550);
  1014.             Menu->AddItem(8, "|cFF8B0000Gurubsahi Arena", 21);
  1015.             Menu->AddItem(8, "|cFF8B0000Extra Stuff", 393);    
  1016.             Menu->SendTo(Plr);
  1017.             }
  1018.             break;
  1019.  
  1020.         case 1000: // Mall
  1021.             {
  1022.                 Plr->EventTeleport(1, -8502.6, 2021.9, 106);
  1023.             }
  1024.             break;
  1025.  
  1026.        
  1027. }
  1028. }
  1029.  
  1030. void GlobalNPC::GossipEnd(Object * pObject, Player* Plr)
  1031. {
  1032.     GossipScript::GossipEnd(pObject, Plr);
  1033. }
  1034.  
  1035. void SetupGlobalNPC(ScriptMgr * mgr)
  1036. {
  1037.     GossipScript * gs = (GossipScript*) new GlobalNPC();
  1038.     mgr->register_gossip_script(NPCID, gs);
  1039. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement