Advertisement
Guest User

Teleporter npc

a guest
Mar 4th, 2013
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 22.40 KB | None | 0 0
  1. /*******************************************************
  2. * File:'teleporter.cpp'
  3. * ScriptName:'teleport_npc'
  4. * Complete:'100%'
  5. *******************************************************/
  6. /*******************************************************/
  7. #include "ScriptPCH.h"
  8. #define BUFF    15366 //SONGFLOWER SERENADE
  9. #define MAIN_GOSSIP_MENU 1
  10. #define SUB_GOSSIP_MENU  2
  11. #define DUNGEON_GOSSIP_MENU 3
  12. /*******************************************************/
  13. bool GossipHello_teleporter(Player* pPlayer, Creature* pCreature)
  14. {
  15. if(pPlayer->isInCombat())
  16. {
  17.   pPlayer->GetSession()->SendNotification("You are in combat.");
  18.   return false;
  19. }
  20.  
  21.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Capital cities" , MAIN_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 1);
  22. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Dungeons"      , MAIN_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 2);
  23. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Raids"                , MAIN_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 3);
  24. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Miscellanious"  , MAIN_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 4);
  25. pPlayer->PlayerTalkClass->SendGossipMenu(1000000, pCreature->GetGUID());
  26.  
  27. return true;
  28. }
  29. void SendSubMenu_teleporter(Player* pPlayer, Creature* pCreature, uint32 uiAction)
  30. {
  31.     switch (uiAction)
  32.     {
  33.             case GOSSIP_ACTION_INFO_DEF + 1:                               //Capitals
  34.                          if(pPlayer->GetTeam() == ALLIANCE )
  35.                             {
  36.            pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Stormwind"                , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 1);
  37.                                    pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Darnassus"                , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 2);
  38.                                    pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Ironforge"                , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 3);
  39.                                    pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Exodar"              , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 4);
  40.            pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Shattrath"                , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 9);
  41.            pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  42.                             }else{
  43.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Orgrimmar"          , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 5);
  44.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Thunderbluff"        , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 6);
  45.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Undercity"          , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 7);
  46.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Silvermoon"            , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 8);
  47.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Shattrath"          , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 9);
  48.          pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  49.                             };
  50.                     break;
  51.   case GOSSIP_ACTION_INFO_DEF + 2:                                 //Dungeons
  52.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Eastern Kingdoms"  , DUNGEON_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 1);
  53.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Kalimdor"            , DUNGEON_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 2);
  54.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Outland"              , DUNGEON_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 3);
  55.          pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  56.    break;
  57.   case GOSSIP_ACTION_INFO_DEF + 3:                                 //Raids
  58.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Eastern Kingdoms"  , DUNGEON_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 4);
  59.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Kalimdor"            , DUNGEON_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 5);
  60.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Outland"              , DUNGEON_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 6);
  61.          pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  62.    break;
  63.   case GOSSIP_ACTION_INFO_DEF + 4:                                 //Misc.
  64.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Songflower Serenade", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 51);
  65.             pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regenerate"              , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 52);
  66.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Cooldown"             , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 53);
  67.                                     pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  68.    break;
  69.     }
  70. }
  71. void SendSubDungeonMenu_teleporter(Player* pPlayer, Creature* pCreature, uint32 uiAction)
  72. {
  73.     switch (uiAction)
  74.     {
  75.             case GOSSIP_ACTION_INFO_DEF + 1:                              //EK
  76.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "The Deadmines"   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 10);
  77.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Shadowfang Keep"   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 11);
  78.     if(pPlayer->GetTeam() == ALLIANCE )
  79.     {
  80.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Stormwind Stockade", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 12);
  81.     };
  82.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Gnomeregan"         , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 13);
  83.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "The Scarlet Monastery", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 14);
  84.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Uldaman"                   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 15);
  85.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Temple of Atal'Hakkar", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 16);
  86.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Blackrock Mountain", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 17);
  87.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Stratholme"         , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 18);
  88.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Scholomance"       , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 19);
  89.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Magisters' Terrace", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 20);
  90.                             pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  91.                     break;
  92.             case GOSSIP_ACTION_INFO_DEF + 2:                               //K
  93.                   if(pPlayer->GetTeam() == HORDE )
  94.     {
  95.          pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Ragefire Chasm"    , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 21);
  96.     };
  97.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Wailing Caverns"   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 22);
  98.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Blackfathom Deeps" , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 23);
  99.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Razorfen Kraul"    , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 24);
  100.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Razorfen Downs"    , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 25);
  101.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Zul'Farrak"         , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 26);
  102.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Maraudon"                 , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 27);
  103.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Dire Maul"               , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 28);
  104.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Caverns of Time"   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 29);
  105.                             pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  106.                     break;
  107.             case GOSSIP_ACTION_INFO_DEF + 3:                               //O
  108.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Hellfire Citadel"  , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 30);
  109.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Coilfang Reservoir", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 31);
  110.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Auchindoun"         , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 32);
  111.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Tempest Keep"     , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 33);
  112.                             pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  113.                     break;
  114.    case GOSSIP_ACTION_INFO_DEF + 4:                                //EK
  115.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Upper Blackrock Spire", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 34);
  116.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Zul'Gurub"               , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 35);
  117.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Molten Core"       , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 36);
  118.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Blackwing Lair"    , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 37);
  119.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Naxxramas"               , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 38);
  120.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Karazhan"                 , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 39);
  121.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Sunwell Plateau"   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 40);
  122.                             pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  123.                     break;
  124.    case GOSSIP_ACTION_INFO_DEF + 5:                                //K
  125.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Onyxia's Lair"   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 41);
  126.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Ruins of Ahn'Qiraj", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 42);
  127.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Temple of Ahn'Qiraj", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 43);
  128.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Zul'Aman"                 , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 44);
  129.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Battle for Mount Hyjal", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 45);
  130.                             pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  131.                     break;
  132.    case GOSSIP_ACTION_INFO_DEF + 6:                                //O
  133.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Gruul's Lair"     , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 46);
  134.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Magtheridon's Lair", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 47);
  135.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Serpentshrine Cavern", SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 48);
  136.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "The Eye"                   , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 49);
  137.     pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Black Temple"     , SUB_GOSSIP_MENU, GOSSIP_ACTION_INFO_DEF + 50);
  138.                             pPlayer->PlayerTalkClass->SendGossipMenu(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());
  139.                     break;
  140.     }
  141. }
  142. void SendActionMenu_teleporter(Player* pPlayer, Creature* pCreature, uint32 uiAction)
  143. {
  144.     switch (uiAction)
  145.     {
  146.             case GOSSIP_ACTION_INFO_DEF + 1:
  147.     pPlayer->CLOSE_GOSSIP_MENU();                        //Stormwind
  148.     pPlayer->TeleportTo(0, -8893.9f, 569.0f, 92.9f, 0.6f);
  149.                     break;
  150.             case GOSSIP_ACTION_INFO_DEF + 2:
  151.     pPlayer->CLOSE_GOSSIP_MENU();                        //Darnassus
  152.     pPlayer->TeleportTo(1, 9952.1f, 2272.3f, 1341.7f, 1.5f);
  153.                     break;
  154.             case GOSSIP_ACTION_INFO_DEF + 3:
  155.     pPlayer->CLOSE_GOSSIP_MENU();                        //Ironforge
  156.     pPlayer->TeleportTo(0, -4982.8f, -880.5f, 502.0f, 5.3f);
  157.                     break;
  158.             case GOSSIP_ACTION_INFO_DEF + 4:
  159.     pPlayer->CLOSE_GOSSIP_MENU();                        //Exodar
  160.     pPlayer->TeleportTo(530, -3863.5f, -11742.6f, -106.5f, 2.1f);
  161.                     break;
  162.             case GOSSIP_ACTION_INFO_DEF + 5:
  163.     pPlayer->CLOSE_GOSSIP_MENU();                   //Orgrimmar
  164.     pPlayer->TeleportTo(1, 1477.5f, -4417.5f, 25.9f, 0.1f);
  165.                     break;
  166.             case GOSSIP_ACTION_INFO_DEF + 6:
  167.     pPlayer->CLOSE_GOSSIP_MENU();                   //Thunderbluff
  168.     pPlayer->TeleportTo(1, -1290.1f, 146.9f, 130.1f, 4.8f);
  169.                     break;
  170.             case GOSSIP_ACTION_INFO_DEF + 7:
  171.     pPlayer->CLOSE_GOSSIP_MENU();                   //Undercity
  172.     pPlayer->TeleportTo(0, 1629.9f, 239.7f, -42.6f, 3.1f);
  173.                     break;
  174.             case GOSSIP_ACTION_INFO_DEF + 8:
  175.     pPlayer->CLOSE_GOSSIP_MENU();                   //Silvermoon
  176.     pPlayer->TeleportTo(530, 9465.5f, -7278.2f, 14.7f, 6.2f);
  177.                     break;
  178.             case GOSSIP_ACTION_INFO_DEF + 9:
  179.     pPlayer->CLOSE_GOSSIP_MENU();                   //Shattrath
  180.     pPlayer->TeleportTo(530, -1869.2f, 5441.3f, -9.9f, 5.1f);
  181.                     break;
  182.          case GOSSIP_ACTION_INFO_DEF + 10:
  183.     pPlayer->CLOSE_GOSSIP_MENU();                   //Deadmines
  184.     pPlayer->TeleportTo(0, -11208.3f, 1672.4f, 25.0f, 1.4f);
  185.                     break;
  186.          case GOSSIP_ACTION_INFO_DEF + 11:
  187.     pPlayer->CLOSE_GOSSIP_MENU();                   //Shadowfang
  188.     pPlayer->TeleportTo(0, -234.1f, 1563.3f, 77.3f, 1.1f);
  189.                     break;
  190.          case GOSSIP_ACTION_INFO_DEF + 12:
  191.     pPlayer->CLOSE_GOSSIP_MENU();                   //Stockade
  192.     pPlayer->TeleportTo(0, -8769.2f, 842.5f, 90.1f, 0.6f);
  193.                     break;
  194.          case GOSSIP_ACTION_INFO_DEF + 13:
  195.     pPlayer->CLOSE_GOSSIP_MENU();                   //Gnome
  196.     pPlayer->TeleportTo(0, -5162.9f, 926.06f, 257.6f, 1.4f);
  197.                     break;
  198.          case GOSSIP_ACTION_INFO_DEF + 14:
  199.     pPlayer->CLOSE_GOSSIP_MENU();                   //Monastery
  200.     pPlayer->TeleportTo(0, 2870.7f, -759.2f, 160.6f, 5.05f);
  201.                     break;
  202.          case GOSSIP_ACTION_INFO_DEF + 15:
  203.     pPlayer->CLOSE_GOSSIP_MENU();                   //Uldaman
  204.     pPlayer->TeleportTo(0, -6068.2f, -2955.4f, 210.1f, 0.1f);
  205.                     break;
  206.          case GOSSIP_ACTION_INFO_DEF + 16:
  207.     pPlayer->CLOSE_GOSSIP_MENU();                   //Temple
  208.     pPlayer->TeleportTo(0, -10470.8f, -3818.7f, 29.3f, 6.004f);
  209.                     break;
  210.   case GOSSIP_ACTION_INFO_DEF + 17:
  211.     pPlayer->CLOSE_GOSSIP_MENU();                   //Blackrock
  212.     pPlayer->TeleportTo(0, -7708.9f, -1088.03f, 218.1f, 5.9f);
  213.                     break;
  214.          case GOSSIP_ACTION_INFO_DEF + 18:
  215.     pPlayer->CLOSE_GOSSIP_MENU();                   //Stratholme
  216.     pPlayer->TeleportTo(0, 3352.9f, -3379.03f, 145.1f, 6.2f);
  217.                     break;
  218.          case GOSSIP_ACTION_INFO_DEF + 19:
  219.     pPlayer->CLOSE_GOSSIP_MENU();                   //Scholomance
  220.     pPlayer->TeleportTo(0, 1268.3f, -2556.2f, 94.3f, 0.4f);
  221.                     break;
  222.   case GOSSIP_ACTION_INFO_DEF + 20:
  223.     pPlayer->CLOSE_GOSSIP_MENU();                   //Magisters' Terrace
  224.     pPlayer->TeleportTo(530, 12886.2f, -7331.8f, 66.2f, 4.3f);
  225.                     break;
  226.          case GOSSIP_ACTION_INFO_DEF + 21:
  227.     pPlayer->CLOSE_GOSSIP_MENU();                   //Ragefire
  228.     pPlayer->TeleportTo(1, 1811.1f, -4410.01f, -18.07f, 5.03f);
  229.                     break;
  230.          case GOSSIP_ACTION_INFO_DEF + 22:
  231.     pPlayer->CLOSE_GOSSIP_MENU();                   //Wailing Caverns
  232.     pPlayer->TeleportTo(1, -739.7f, -2216.8f, 16.9f, 2.5f);
  233.                     break;
  234.          case GOSSIP_ACTION_INFO_DEF + 23:
  235.     pPlayer->CLOSE_GOSSIP_MENU();                   //Blackfathom Deeps
  236.     pPlayer->TeleportTo(1, 4248.2f, 743.9f, -24.1f, 1.2f);
  237.                     break;
  238.          case GOSSIP_ACTION_INFO_DEF + 24:
  239.     pPlayer->CLOSE_GOSSIP_MENU();                   //Razorfen Kraul
  240.     pPlayer->TeleportTo(1, -4463.5, -1664.5f, 82.4f, 0.89f);
  241.                     break;
  242.          case GOSSIP_ACTION_INFO_DEF + 25:
  243.     pPlayer->CLOSE_GOSSIP_MENU();                   //Razorfen Downs
  244.     pPlayer->TeleportTo(1, -4653.9f, -2487.7f, 82.2f, 5.5f);
  245.    break;
  246.          case GOSSIP_ACTION_INFO_DEF + 26:
  247.     pPlayer->CLOSE_GOSSIP_MENU();                   //Zul'Farrak
  248.     pPlayer->TeleportTo(1, -6799.8f, -2891.1f, 9.5f, 6.2f);
  249.                     break;
  250.          case GOSSIP_ACTION_INFO_DEF + 27:
  251.     pPlayer->CLOSE_GOSSIP_MENU();                   //Maraudon
  252.     pPlayer->TeleportTo(1, -1423.4f, 2992.5f, 137.08f, 1.5f);
  253.                     break;
  254.          case GOSSIP_ACTION_INFO_DEF + 28:
  255.     pPlayer->CLOSE_GOSSIP_MENU();                   //DireMaul
  256.     pPlayer->TeleportTo(1, -3520.2f, 1080.2f, 161.9f, 4.7f);
  257.                     break;
  258.   case GOSSIP_ACTION_INFO_DEF + 29:
  259.     pPlayer->CLOSE_GOSSIP_MENU();                   //Caverns Of Time
  260.     pPlayer->TeleportTo(1, -8174.2f, -4736.95f, 34.3f, 4.96f);
  261.                     break;
  262.          case GOSSIP_ACTION_INFO_DEF + 30:
  263.     pPlayer->CLOSE_GOSSIP_MENU();                   //Hellfire Citadel
  264.     pPlayer->TeleportTo(530, -390.86f, 3130.6f, 4.5f, 0.2f);
  265.                     break;
  266.          case GOSSIP_ACTION_INFO_DEF + 31:
  267.     pPlayer->CLOSE_GOSSIP_MENU();                   //Coilfang Reservoir
  268.     pPlayer->TeleportTo(530, 731.3f, 6865.7f, -69.4f, 6.2f);
  269.                     break;
  270.          case GOSSIP_ACTION_INFO_DEF + 32:
  271.     pPlayer->CLOSE_GOSSIP_MENU();                   //Auchindoun
  272.     pPlayer->TeleportTo(530, -3322.5f, 4941.3f, -100.5f, 3.7f);
  273.                     break;
  274.          case GOSSIP_ACTION_INFO_DEF + 33:
  275.     pPlayer->CLOSE_GOSSIP_MENU();                   //Tempest Keep
  276.     pPlayer->TeleportTo(530, 3100.7f, 1538.8f, 190.8f, 1.4f);
  277.                     break;
  278.          case GOSSIP_ACTION_INFO_DEF + 34:
  279.     pPlayer->CLOSE_GOSSIP_MENU();                   //Upper Blackrock Spire
  280.     pPlayer->TeleportTo(0, -7534.7, -1212.6f, 285.4f, 5.2f);
  281.                     break;
  282.          case GOSSIP_ACTION_INFO_DEF + 35:
  283.     pPlayer->CLOSE_GOSSIP_MENU();                   //Zul'Gurub
  284.     pPlayer->TeleportTo(0, -11916.7f, -1215.7f, 92.6f, 4.7f);
  285.                     break;
  286.          case GOSSIP_ACTION_INFO_DEF + 36:
  287.     pPlayer->CLOSE_GOSSIP_MENU();                   //Molten Core
  288.     pPlayer->TeleportTo(230, 1117.3f, -461.2f, -102.6f, 3.5f);
  289.                     break;
  290.          case GOSSIP_ACTION_INFO_DEF + 37:
  291.     pPlayer->CLOSE_GOSSIP_MENU();                   //Blackwing Lair
  292.     pPlayer->TeleportTo(229, 174.7f, -474.6f, 117.5f, 6.2f);
  293.                     break;
  294.          case GOSSIP_ACTION_INFO_DEF + 38:
  295.     pPlayer->CLOSE_GOSSIP_MENU();                   //Naxxramas
  296.     pPlayer->TeleportTo(533, 3005.9f, -3434.6f, 294.6f, 0.04f);
  297.                     break;
  298.   case GOSSIP_ACTION_INFO_DEF + 39:
  299.     pPlayer->CLOSE_GOSSIP_MENU();                   //Karazhan
  300.     pPlayer->TeleportTo(0, -11119.2f, -2011.3f, 47.6f, 0.6f);
  301.                     break;
  302.          case GOSSIP_ACTION_INFO_DEF + 40:
  303.     pPlayer->CLOSE_GOSSIP_MENU();                   //Sunwell
  304.     pPlayer->TeleportTo(530, 12565.1f, -6774.9f, 15.9f, 3.1f);
  305.                     break;
  306.          case GOSSIP_ACTION_INFO_DEF + 41:
  307.     pPlayer->CLOSE_GOSSIP_MENU();                   //Onyxia's Lair
  308.     pPlayer->TeleportTo(1, -4708.2, -3727.6f, 55.4f, 3.7f);
  309.                     break;
  310.          case GOSSIP_ACTION_INFO_DEF + 42:
  311.     pPlayer->CLOSE_GOSSIP_MENU();                   //Ruins of Ahn'Qiraj
  312.     pPlayer->TeleportTo(1, -8412.6f, 1501.3f, 30.1f, 2.6f);
  313.                     break;
  314.          case GOSSIP_ACTION_INFO_DEF + 43:
  315.     pPlayer->CLOSE_GOSSIP_MENU();                   //Temple of Ahn'Qiraj
  316.     pPlayer->TeleportTo(1, -8240.08f, 1991.3f, 129.6f, 0.9f);
  317.                     break;
  318.   case GOSSIP_ACTION_INFO_DEF + 44:
  319.     pPlayer->CLOSE_GOSSIP_MENU();                   //Zul'Aman
  320.     pPlayer->TeleportTo(530, 6851.7f, -7972.5f, 179.9f, 4.6f);
  321.                     break;
  322.   case GOSSIP_ACTION_INFO_DEF + 45:
  323.     pPlayer->CLOSE_GOSSIP_MENU();                   //Hyjal
  324.     pPlayer->TeleportTo(1, -8177.8f, -4181.2f, -166.7f, 0.9f);
  325.                     break;
  326.          case GOSSIP_ACTION_INFO_DEF + 46:
  327.     pPlayer->CLOSE_GOSSIP_MENU();                   //Gruul's Lair
  328.     pPlayer->TeleportTo(530, 3530.06f, 5104.08f, 4.3f, 5.5f);
  329.                     break;
  330.          case GOSSIP_ACTION_INFO_DEF + 47:
  331.     pPlayer->CLOSE_GOSSIP_MENU();                   //Magtheridon's Lair
  332.     pPlayer->TeleportTo(530, -312.7f, 3087.2f, -115.8f, 5.1f);
  333.                     break;
  334.          case GOSSIP_ACTION_INFO_DEF + 48:
  335.     pPlayer->CLOSE_GOSSIP_MENU();                   //Serpentshrine Cavern
  336.     pPlayer->TeleportTo(530, 731.3f, 6865.7f, -69.4f, 6.2f);
  337.                     break;
  338.          case GOSSIP_ACTION_INFO_DEF + 49:
  339.     pPlayer->CLOSE_GOSSIP_MENU();                   //The Eye
  340.     pPlayer->TeleportTo(530, 3090.3f, 1406.1f, 189.9f, 4.5f);
  341.                     break;
  342.          case GOSSIP_ACTION_INFO_DEF + 50:
  343.     pPlayer->CLOSE_GOSSIP_MENU();                   //Black Temple
  344.     pPlayer->TeleportTo(530, -3648.1f, 316.7f, 35.7f, 2.99f);
  345.                     break;
  346.             case GOSSIP_ACTION_INFO_DEF + 51:
  347.                            pPlayer->CastSpell(pPlayer, BUFF, true);
  348.                            pPlayer->CLOSE_GOSSIP_MENU();                           //Buff
  349.                     break;
  350.   case GOSSIP_ACTION_INFO_DEF + 52:
  351.                  pPlayer->SetHealth(pPlayer->GetMaxHealth());
  352.                     pPlayer->SetPower(POWER_MANA, pPlayer->GetMaxPower(POWER_MANA));
  353.                            pPlayer->CLOSE_GOSSIP_MENU();                           //Regenerate
  354.           break;
  355.   case GOSSIP_ACTION_INFO_DEF + 53:
  356.                  pPlayer->RemoveAllSpellCooldown();
  357.                            pPlayer->CLOSE_GOSSIP_MENU();                           //Cooldown
  358.           break;
  359.     }
  360. }
  361.  
  362. bool GossipSelect_teleporter(Player *player, Creature *_Creature, uint32 sender, uint32 action )
  363. {
  364.     switch (sender)
  365.     {
  366.             case MAIN_GOSSIP_MENU:  SendSubMenu_teleporter(player, _Creature, action); break;
  367.          case SUB_GOSSIP_MENU:  SendActionMenu_teleporter(player, _Creature, action); break;
  368.   case DUNGEON_GOSSIP_MENU: SendSubDungeonMenu_teleporter(player, _Creature, action); break;
  369.     }
  370.     return true;
  371. }
  372. void AddSC_teleport_npc()
  373. {
  374.     Script *newscript;
  375. newscript = new Script;
  376. newscript->Name="teleport_npc";
  377. newscript->pGossipHello = &GossipHello_teleporter;
  378. newscript->pGossipSelect = &GossipSelect_teleporter;
  379. newscript->RegisterSelf();
  380. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement