Advertisement
yvoms

Teleporter

Mar 21st, 2013
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 13.37 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); //done
  33.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Main Cities", GOSSIP_SENDER_MAIN, 1); //done
  34.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Dungeons", GOSSIP_SENDER_MAIN, 2); //done
  35.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Raids", GOSSIP_SENDER_MAIN, 3); //done
  36.         pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Player Tools", GOSSIP_SENDER_MAIN, 4); //Nu doen
  37.         pPlayer->ADD_GOSSIP_ITEM(4, "Never mind", GOSSIP_SENDER_MAIN, 100); //done
  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 teleported 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, 20);
  152.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Blood Furnace", GOSSIP_SENDER_MAIN, 21);
  153.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Shattered Halls", GOSSIP_SENDER_MAIN, 22);
  154.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Auchenai Crypts", GOSSIP_SENDER_MAIN, 23);
  155.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Mana tombs", GOSSIP_SENDER_MAIN, 24);
  156.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Sethekk halls", GOSSIP_SENDER_MAIN, 25);
  157.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Mechanar", GOSSIP_SENDER_MAIN, 26);
  158.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Botanica", GOSSIP_SENDER_MAIN, 27);
  159.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Arcatraz", GOSSIP_SENDER_MAIN, 28);
  160.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The underbog", GOSSIP_SENDER_MAIN, 29);
  161.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Slavepens", GOSSIP_SENDER_MAIN, 30);
  162.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "The Steamvaults", GOSSIP_SENDER_MAIN, 31);
  163.             }break;
  164.  
  165.         case 20: // Hellfire Ramparts
  166.             {
  167.                 pCreature->CastSpell(pPlayer,35517,false);
  168.                 pPlayer->TeleportTo(530, -360.883118f, 3072.533447f, -15.093476f, 1.893890f);
  169.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Hellfire Ramparts!", pPlayer->GetName());
  170.             }break;
  171.  
  172.         case 21: // Blood Furnace
  173.             {
  174.                 pCreature->CastSpell(pPlayer,35517,false);
  175.                 pPlayer->TeleportTo(530, -295.249725f, 3150.676270f, 31.551857f, 2.271470f);
  176.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Blood Furnace!", pPlayer->GetName());
  177.             }break;
  178.  
  179.         case 22: // Shattered Halls
  180.             {
  181.                 pCreature->CastSpell(pPlayer,35517,false);
  182.                 pPlayer->TeleportTo(530, -308.603027f, 3072.02661f, -3.650236f, 1.888880f);
  183.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Shattered Halls!", pPlayer->GetName());
  184.             }break;
  185.  
  186.         case 23: // Auchenai Crypts
  187.             {
  188.                 pCreature->CastSpell(pPlayer,35517,false);
  189.                 pPlayer->TeleportTo(530, -3359.523438f, 5208.140625f, -101.049301f, 1.547178f);
  190.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to Auchenai Crypts!", pPlayer->GetName());
  191.             }break;
  192.  
  193.         case 24: // Mana tombs
  194.             {
  195.                 pCreature->CastSpell(pPlayer,35517,false);
  196.                 pPlayer->TeleportTo(530, -3104.993164f, 4946.600586f, -101.521210f, 4.916537f);
  197.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Manatombs!", pPlayer->GetName());
  198.             }break;
  199.  
  200.         case 25: // Setthek Halls
  201.             {
  202.                 pCreature->CastSpell(pPlayer,35517,false);
  203.                 pPlayer->TeleportTo(530, -3361.233643f, 4673.360352f, -101.049149f, 4.716270f);
  204.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Setthek Halls!", pPlayer->GetName());
  205.             }break;
  206.  
  207.         case 26: // The mechanar
  208.             {
  209.                 pCreature->CastSpell(pPlayer,35517,false);
  210.                 pPlayer->TeleportTo(530, 2884.034180f, 1561.143677f, 248.892197f, 3.606196f);
  211.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Mechanar!", pPlayer->GetName());
  212.             }break;
  213.  
  214.         case 27: // The Botanica
  215.             {
  216.                 pCreature->CastSpell(pPlayer,35517,false);
  217.                 pPlayer->TeleportTo(530, 3397.392334f, 1499.322144f, 179.564270ff, 5.59550f);
  218.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Botanica!", pPlayer->GetName());
  219.             }break;
  220.  
  221.         case 28: // The Arcatraz
  222.             {
  223.                 pCreature->CastSpell(pPlayer,35517,false);
  224.                 pPlayer->TeleportTo(530, 3303.712158f, 1353.727661f, 502.284485f, 4.946860f);
  225.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Arcatraz!", pPlayer->GetName());
  226.             }break;
  227.  
  228.         case 29: // The Underbog
  229.             {
  230.                 pCreature->CastSpell(pPlayer,35517,false);
  231.                 pPlayer->TeleportTo(530, 777.088989f, 6763.450195f, -72.066200f, 5.029677f);
  232.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Underbog!", pPlayer->GetName());
  233.             }break;
  234.  
  235.         case 30: // The Slavepens
  236.             {
  237.                 pCreature->CastSpell(pPlayer,35517,false);
  238.                 pPlayer->TeleportTo(530, 719.507996f, 6999.339844f, -73.074303f, 4.527020f);
  239.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Slavepens!", pPlayer->GetName());
  240.             }break;
  241.  
  242.         case 31: // The Steamvaults
  243.             {
  244.                 pCreature->CastSpell(pPlayer,35517,false);
  245.                 pPlayer->TeleportTo(530, 816.590027f, 6934.669922f, -80.544601f, 0.159089f);
  246.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Steamvaults", pPlayer->GetName());
  247.             }break;
  248.  
  249.         case 3:
  250.             {
  251.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Serpentshrine Caverns", GOSSIP_SENDER_MAIN, 32);
  252.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Black temple", GOSSIP_SENDER_MAIN, 33);
  253.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Sunwell Plateau", GOSSIP_SENDER_MAIN, 34);
  254.  
  255.             }break;
  256.  
  257.         case 32: // SerpentShrine Caverns
  258.             {
  259.                 pCreature->CastSpell(pPlayer,35517,false);
  260.                 pPlayer->TeleportTo(530, 808.600586f, 6865.366211f, -67.603935f, 0.057295f);
  261.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The SerpentShrine Caverns", pPlayer->GetName());
  262.             }break;
  263.  
  264.         case 33: // Black Temple
  265.             {
  266.                 pCreature->CastSpell(pPlayer,35517,false);
  267.                 pPlayer->TeleportTo(530, -3653.510010f, 317.493011f, 36.167088f, 2.942850f);
  268.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Black Temple", pPlayer->GetName());
  269.             }break;
  270.  
  271.         case 34: // Sunwell Plateau
  272.             {
  273.                 pCreature->CastSpell(pPlayer,35517,false);
  274.                 pPlayer->TeleportTo(530, 12577.687500f, -6775.914551f, 15.091022f, 3.137880f);
  275.                 ChatHandler(pPlayer->GetSession()).PSendSysMessage("You have been teleported to The Sunwell Plateau", pPlayer->GetName());
  276.             }break;
  277.  
  278.         case 4:
  279.             {
  280.         case HEAL_MENU:
  281.             {
  282.                 uint32 currentHp = player->GetHealth();
  283.                 uint32 maximumHp = player->GetMaxHealth();
  284.  
  285.                 if (currentHp == maximumHp)
  286.                     creature->MonsterWhisper("Bah, you have full health. Dont waste my time!", player->GetGUID());
  287.                 else{
  288.                     player->SetHealth(maximumHp);
  289.                     player->SetPower(POWER_MANA, player->GetMaxPower(POWER_MANA));
  290.                     creature->MonsterWhisper("You have been healed!", player->GetGUID());
  291.                 }
  292.                 player->PlayerTalkClass->SendCloseGossip();
  293.             }break;
  294.  
  295.         case BUFF_MENU:
  296.             {
  297.                 creature->MonsterWhisper("Do you feel any more buff?", player->GetGUID());
  298.                 player->PlayerTalkClass->SendCloseGossip();
  299.                 player->CastSpell(player, 35874, true);
  300.                 player->CastSpell(player, 35912, true);
  301.                 player->CastSpell(player, 38734, true);
  302.             }break;
  303.  
  304.         case REZ_MENU:
  305.             {
  306.                 if (player->HasAura(15007))
  307.                 {
  308.                     player->RemoveAura(15007);
  309.                     creature->MonsterWhisper("You have been cured.", player->GetGUID());
  310.                 }else
  311.                     creature->MonsterWhisper("You would have to be sick first...", player->GetGUID());
  312.                 player->PlayerTalkClass->SendCloseGossip();
  313.             }break;
  314.             }break;
  315.  
  316.         case 100:
  317.             {
  318.                 pPlayer->PlayerTalkClass->SendCloseGossip();
  319.             }break;
  320.             {
  321.                 return true;
  322.             }
  323.  
  324.             }
  325.         }
  326.         return true;
  327.     }
  328.  
  329. };
  330.  
  331. void AddSC_global_teleporter()
  332. {
  333.     new global_teleporter();
  334. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement