Advertisement
yvoms

Teleporter

Mar 21st, 2013
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.96 KB | None | 0 0
  1. /*
  2.   _____                        ____              
  3.  |  ___| __ ___ _______ _ __  / ___|___  _ __ ___
  4.  | |_ | '__/ _ \_  / _ \ '_ \| |   / _ \| '__/ _ \
  5.  |  _|| | | (_) / /  __/ | | | |__| (_) | | |  __/
  6.  |_|  |_|  \___/___\___|_| |_|\____\___/|_|  \___|
  7.      Lightning speed and strength
  8.          conjured directly from the depths of logic!  
  9.             Infusion-WoW 2011 - 2012 (C)
  10. <--------------------------------------------------------------------------->
  11.  - Developer(s): Ghostcrawler & Yvoms
  12.  - Complete: 100%
  13.  - ScriptName: 'teleporter'
  14.  - Comment: Untested
  15. <--------------------------------------------------------------------------->
  16. */
  17. #include "ScriptPCH.h"
  18. #include "Chat.h"
  19.  
  20. class global_teleporter : public CreatureScript
  21. {
  22. public:
  23.     global_teleporter() : CreatureScript("global_teleporter") { }
  24.  
  25.     bool OnGossipHello(Player* pPlayer, Creature* pCreature)
  26.     {
  27.         if (pPlayer->isInCombat())
  28.         {
  29.             pPlayer->GetSession()->SendNotification("You are in combat");
  30.             return false;
  31.         }
  32.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Starter Area", GOSSIP_SENDER_MAIN, 0);
  33.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Main Cities", GOSSIP_SENDER_MAIN, 1);
  34.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Dungeons", GOSSIP_SENDER_MAIN, 2);
  35.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Raids", GOSSIP_SENDER_MAIN, 3);
  36.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Player Tools", GOSSIP_SENDER_MAIN, 4);
  37.         pPlayer->ADD_GOSSIP_ITEM(4, "Never mind", GOSSIP_SENDER_MAIN, 100);
  38.         pPlayer->PlayerTalkClass->SendGossipMenu(10, pCreature->GetGUID());      
  39.         return true;
  40.     }
  41.  
  42.     bool OnGossipSelect(Player* pPlayer, Creature* pCreature,uint32 uiSender, uint32 uiAction)
  43.     {
  44.  
  45.         pPlayer->PlayerTalkClass->ClearMenus();
  46.  
  47.         switch (uiAction)
  48.         {
  49.         case 0:
  50.             {
  51.                   pCreature->CastSpell(pPlayer,35517,false);
  52.                   pPlayer->TeleportTo(169, -111.677f, 1655.95f, 92.0078f, 4.72747f);
  53.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Starter Area!", pPlayer->GetName());
  54.             }
  55.  
  56.           case 1: // Main Citys
  57.                   {
  58.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Dalaran", GOSSIP_SENDER_MAIN, 10);
  59.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Shattrath", GOSSIP_SENDER_MAIN, 11);
  60.                       if (pPlayer->GetTeam() == ALLIANCE) {
  61.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Stormwind", GOSSIP_SENDER_MAIN, 12);
  62.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Ironforge", GOSSIP_SENDER_MAIN, 13);
  63.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Darnassus", GOSSIP_SENDER_MAIN, 14);
  64.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Exodar", GOSSIP_SENDER_MAIN, 15);
  65.                       pPlayer->ADD_GOSSIP_ITEM(0, "Nevermind", GOSSIP_SENDER_MAIN, 5000);
  66.                       pPlayer->PlayerTalkClass->SendGossipMenu(10, pCreature->GetGUID());
  67.                   }else  //Horde Citys
  68.                   {
  69.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Orgrimmar", GOSSIP_SENDER_MAIN, 16);
  70.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Undercity", GOSSIP_SENDER_MAIN, 17);
  71.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Thunderbluff", GOSSIP_SENDER_MAIN, 18);
  72.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Silvermoon", GOSSIP_SENDER_MAIN, 19);
  73.                       pPlayer->ADD_GOSSIP_ITEM(0, "Nevermind", GOSSIP_SENDER_MAIN, 5000);
  74.                       pPlayer->PlayerTalkClass->SendGossipMenu(10, pCreature->GetGUID());  
  75.                       return true;
  76.                   }break;
  77.  
  78.            case 10: // Dalaran
  79.               {
  80.                   pCreature->CastSpell(pPlayer,35517,false);
  81.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  82.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Dalaran!", pPlayer->GetName());
  83.               }break;
  84.  
  85.           case 11: // Shattarth
  86.               {
  87.                   pCreature->CastSpell(pPlayer,35517,false);
  88.                   pPlayer->TeleportTo(230, 990.414f, -218.775f, -61.7892f, 5.49272f);
  89.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Shattarth!", pPlayer->GetName());
  90.               }break;
  91.  
  92.           case 12: // Stormwind
  93.               {
  94.                   pCreature->CastSpell(pPlayer,35517,false);
  95.                   pPlayer->TeleportTo(0, -8833.379883f, 628.627991f, 95.826599f, 1.065350f);
  96.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been niggered to Stormwind!", pPlayer->GetName());
  97.               }break;
  98.  
  99.           case 13: // Ironforge
  100.               {
  101.                   pCreature->CastSpell(pPlayer,35517,false);
  102.                   pPlayer->TeleportTo(0, -4918.879883f, -940.406006f, 504.854126f, 5.423470f);
  103.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Ironforge!", pPlayer->GetName());
  104.               }break;
  105.  
  106.           case 14: // Darnassus
  107.               {
  108.                   pCreature->CastSpell(pPlayer,35517,false);
  109.                   pPlayer->TeleportTo(1, 9949.559570f, 2284.20996f, 1342.969482f, 1.595870f);
  110.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Darnassus!", pPlayer->GetName());
  111.               }break;
  112.  
  113.           case 15: // Exodar
  114.               {
  115.                   pCreature->CastSpell(pPlayer,35517,false);
  116.                   pPlayer->TeleportTo(530, -3965.699951f, -11653.599609f, -137.184998f, 0.852154f);
  117.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Exodar!", pPlayer->GetName());
  118.               }break;
  119.  
  120.           case 16: // Orgrimmar
  121.               {
  122.                   pCreature->CastSpell(pPlayer,35517,false);
  123.                   pPlayer->TeleportTo(1, 1629.359985f, -4373.390137f, 33.097401f, 3.548390f);
  124.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Orgrimmar!", pPlayer->GetName());
  125.               }break;
  126.  
  127.           case 17: // Undercity
  128.               {
  129.                   pCreature->CastSpell(pPlayer,35517,false);
  130.                   pPlayer->TeleportTo(0, 1584.069946f, 241.987000f, -51.075413f, 1.296860f);
  131.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Undercity!", pPlayer->GetName());
  132.               }break;
  133.  
  134.           case 18: // Thunderbluff
  135.               {
  136.                   pCreature->CastSpell(pPlayer,35517,false);
  137.                   pPlayer->TeleportTo(1, -1277.369995f, 124.804001f, 134.094009f, 5.222740f);
  138.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Thunderbluff!", pPlayer->GetName());
  139.               }break;
  140.  
  141.           case 19: // Silvermoon
  142.               {
  143.                   pCreature->CastSpell(pPlayer,35517,false);
  144.                   pPlayer->TeleportTo(530, 9482.883789f, -7278.637207f, 18.480778f, 6.040224f);
  145.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Silvermoon!", pPlayer->GetName());
  146.               }break;
  147.  
  148.  
  149.            case 2
  150.            {
  151.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Hellfire Ramparts", GOSSIP_SENDER_MAIN, 21);
  152.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Blood Furnace", GOSSIP_SENDER_MAIN, 22);
  153.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Shattered Halls", GOSSIP_SENDER_MAIN, 23);
  154.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Auchenai Crypts", GOSSIP_SENDER_MAIN, 24);
  155.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Mana tombs", GOSSIP_SENDER_MAIN, 25);
  156.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Sethekk halls", GOSSIP_SENDER_MAIN, 26);
  157.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Mechanar", GOSSIP_SENDER_MAIN, 27);
  158.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Botanica", GOSSIP_SENDER_MAIN, 28);
  159.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Arcatraz", GOSSIP_SENDER_MAIN, 29);
  160.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The underbog", GOSSIP_SENDER_MAIN, 30);
  161.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Slavepens", GOSSIP_SENDER_MAIN, 31);
  162.                       pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Steamvaults", GOSSIP_SENDER_MAIN, 32);
  163.            }break;
  164.  
  165.               case 21: // Hellfire Ramparts
  166.               {
  167.                   pCreature->CastSpell(pPlayer,35517,false);
  168.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  169.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Hellfire Ramparts!", pPlayer->GetName());
  170.               }break;
  171.  
  172.               case 22: // Blood Furnace
  173.               {
  174.                   pCreature->CastSpell(pPlayer,35517,false);
  175.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  176.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Blood Furnace!", pPlayer->GetName());
  177.               }break;
  178.  
  179.               case 23: // Shattered Halls
  180.               {
  181.                   pCreature->CastSpell(pPlayer,35517,false);
  182.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  183.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Shattered Halls!", pPlayer->GetName());
  184.               }break;
  185.  
  186.               case 24: // Auchenai Crypts
  187.               {
  188.                   pCreature->CastSpell(pPlayer,35517,false);
  189.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  190.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Auchenai Crypts!", pPlayer->GetName());
  191.               }break;
  192.  
  193.               case 25: // Mana tombs
  194.               {
  195.                   pCreature->CastSpell(pPlayer,35517,false);
  196.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  197.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Manatombs!", pPlayer->GetName());
  198.               }break;
  199.  
  200.               case 26: // Setthek Halls
  201.               {
  202.                   pCreature->CastSpell(pPlayer,35517,false);
  203.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  204.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Setthek Halls!", pPlayer->GetName());
  205.               }break;
  206.  
  207.               case 27: // The mechanar
  208.               {
  209.                   pCreature->CastSpell(pPlayer,35517,false);
  210.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  211.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Mechanar!", pPlayer->GetName());
  212.               }break;
  213.  
  214.               case 28: // The Botanica
  215.               {
  216.                   pCreature->CastSpell(pPlayer,35517,false);
  217.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  218.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Botanica!", pPlayer->GetName());
  219.               }break;
  220.  
  221.               case 29: // The Arcatraz
  222.               {
  223.                   pCreature->CastSpell(pPlayer,35517,false);
  224.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  225.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Arcatraz!", pPlayer->GetName());
  226.               }break;
  227.  
  228.               case 30: // The Underbog
  229.               {
  230.                   pCreature->CastSpell(pPlayer,35517,false);
  231.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  232.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Underbog!", pPlayer->GetName());
  233.               }break;
  234.  
  235.               case 31: // The Slavepens
  236.               {
  237.                   pCreature->CastSpell(pPlayer,35517,false);
  238.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  239.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Slavepens!", pPlayer->GetName());
  240.               }break;
  241.  
  242.               case 32: // The Steamvaults
  243.               {
  244.                   pCreature->CastSpell(pPlayer,35517,false);
  245.                   pPlayer->TeleportTo(571, 5804.149902f, 624.770996f,648.747009f, 1.640000f);
  246.                   ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Steamvaults", pPlayer->GetName());
  247.               }break;
  248.  
  249.           case 100:
  250.               {
  251.               pPlayer->PlayerTalkClass->SendCloseGossip();
  252.               }break;
  253.               {
  254.                 return true;
  255.               }
  256.  
  257.               }
  258.         }
  259.         return true;
  260.     }
  261.  
  262. };
  263.  
  264. void AddSC_global_teleporter()
  265. {
  266.     new global_teleporter();
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement