Advertisement
Guest User

Untitled

a guest
Mar 13th, 2018
600
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 27.88 KB | None | 0 0
  1. /*
  2. * Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/>
  3. *
  4. * This program is free software; you can redistribute it and/or modify it
  5. * under the terms of the GNU General Public License as published by the
  6. * Free Software Foundation; either version 2 of the License, or (at your
  7. * option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. * You should have received a copy of the GNU General Public License along
  15. * with this program. If not, see <http://www.gnu.org/licenses/>.
  16. */
  17.  
  18. /* --[[ Tenchuu 2018 || Do not remove this Copyright || Script for GoD - Network 1008 - 2018.]]-- */
  19.  
  20. #include "Chat.h"
  21. #include "ScriptMgr.h"
  22. #include "Player.h"
  23. #include "ScriptedCreature.h"
  24. #include "ScriptedGossip.h"
  25. #include "Object.h"
  26. #include "Item.h"
  27. #include "Config.h"
  28. #include <cstring>
  29. #include "GossipDef.h"
  30. #include "CreatureAI.h"
  31. #include "Log.h"
  32.  
  33. class npc_teleporter : public CreatureScript
  34. {
  35. public:
  36.     npc_teleporter() : CreatureScript("npc_teleporter") { }
  37.  
  38.     struct npc_teleporterAI : public ScriptedAI
  39.     {
  40.         npc_teleporterAI(Creature* creature) : ScriptedAI(creature) { }
  41.  
  42.         bool GossipHello(Player* player) override
  43.         {
  44.             SendDefaultMenu(player, me, 5005);
  45.             return true;
  46.         }
  47.  
  48.         void SendDefaultMenu(Player* player, Creature* creature, uint32 action)
  49.         {
  50.             if (player->IsInCombat())
  51.             {
  52.                 CloseGossipMenuFor(player);
  53.                 ChatHandler(player->GetSession()).SendSysMessage("Ich kann dir nicht helfen wenn du im Kampf bist!");
  54.                 return;
  55.             }
  56.  
  57.             switch (action)
  58.             {
  59.             case 1000: //Alliance Town
  60.                 AddGossipItemFor(player, 10, "Darnassus", GOSSIP_SENDER_MAIN, 1001);
  61.                 AddGossipItemFor(player, 10, "Exodar", GOSSIP_SENDER_MAIN, 1005);
  62.                 AddGossipItemFor(player, 10, "Ironforge", GOSSIP_SENDER_MAIN, 1010);
  63.                 AddGossipItemFor(player, 10, "Stormwind", GOSSIP_SENDER_MAIN, 1015);
  64.                 AddGossipItemFor(player, 4, "<- Main Menu", GOSSIP_SENDER_MAIN, 5005);
  65.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  66.                 break;
  67.             case 2000: //Horde Town
  68.                 AddGossipItemFor(player, 10, "Orgrimmar", GOSSIP_SENDER_MAIN, 2001);
  69.                 AddGossipItemFor(player, 10, "Silvermoon", GOSSIP_SENDER_MAIN, 2005);
  70.                 AddGossipItemFor(player, 10, "Thunder Bluff", GOSSIP_SENDER_MAIN, 2010);
  71.                 AddGossipItemFor(player, 10, "Undercity", GOSSIP_SENDER_MAIN, 2015);
  72.                 AddGossipItemFor(player, 4, "<- Main Menu", GOSSIP_SENDER_MAIN, 5005);
  73.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  74.                 break;
  75.             case 3000: //Neutral Town
  76.                 if (player->getClass() == 6)
  77.                 {
  78.                     AddGossipItemFor(player, 10, "Ebon Hold", GOSSIP_SENDER_MAIN, 3001);
  79.                     AddGossipItemFor(player, 10, "Booty Bay", GOSSIP_SENDER_MAIN, 3005);
  80.                     AddGossipItemFor(player, 10, "Dalaran", GOSSIP_SENDER_MAIN, 3010);
  81.                     AddGossipItemFor(player, 10, "Everlook", GOSSIP_SENDER_MAIN, 3015);
  82.                     AddGossipItemFor(player, 10, "Gadegetzan", GOSSIP_SENDER_MAIN, 3020);
  83.                     AddGossipItemFor(player, 10, "Mudsprocket", GOSSIP_SENDER_MAIN, 3025);
  84.                     AddGossipItemFor(player, 10, "Ratchet", GOSSIP_SENDER_MAIN, 3030);
  85.                     AddGossipItemFor(player, 10, "Shattrath City", GOSSIP_SENDER_MAIN, 3035);
  86.                     AddGossipItemFor(player, 10, "Isle Of Quel'Danas", GOSSIP_SENDER_MAIN, 3040);
  87.                     AddGossipItemFor(player, 4, "Dungeons ->", GOSSIP_SENDER_MAIN, 5000);
  88.                     AddGossipItemFor(player, 4, "<- Main Menu", GOSSIP_SENDER_MAIN, 5005);
  89.                 }
  90.                 else
  91.                 {
  92.                     AddGossipItemFor(player, 10, "Booty Bay", GOSSIP_SENDER_MAIN, 3005);
  93.                     AddGossipItemFor(player, 10, "Dalaran", GOSSIP_SENDER_MAIN, 3010);
  94.                     AddGossipItemFor(player, 10, "Everlook", GOSSIP_SENDER_MAIN, 3015);
  95.                     AddGossipItemFor(player, 10, "Gadegetzan", GOSSIP_SENDER_MAIN, 3020);
  96.                     AddGossipItemFor(player, 10, "Mudsprocket", GOSSIP_SENDER_MAIN, 3025);
  97.                     AddGossipItemFor(player, 10, "Ratchet", GOSSIP_SENDER_MAIN, 3030);
  98.                     AddGossipItemFor(player, 10, "Shattrath City", GOSSIP_SENDER_MAIN, 3035);
  99.                     AddGossipItemFor(player, 10, "Isle Of Quel'Danas", GOSSIP_SENDER_MAIN, 3040);
  100.                     AddGossipItemFor(player, 4, "Dungeons ->", GOSSIP_SENDER_MAIN, 5000);
  101.                     AddGossipItemFor(player, 4, "<- Main Menu", GOSSIP_SENDER_MAIN, 5005);
  102.                 }
  103.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  104.                 break;
  105.             case 5000: //Dungeons
  106.                 AddGossipItemFor(player, 4, "Kalimdor ->", GOSSIP_SENDER_MAIN, 5010);
  107.                 AddGossipItemFor(player, 4, "Eastern Kingdoms ->", GOSSIP_SENDER_MAIN, 5015);
  108.                 AddGossipItemFor(player, 4, "Outland ->", GOSSIP_SENDER_MAIN, 5025);
  109.                 AddGossipItemFor(player, 4, "Northrend ->", GOSSIP_SENDER_MAIN, 5030);
  110.                 AddGossipItemFor(player, 4, "<- Main Menu", GOSSIP_SENDER_MAIN, 5005);
  111.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  112.                 break;
  113.             case 5005: //Back To Main Menu
  114.                 if (player->GetTeam() == ALLIANCE)
  115.                 {
  116.                     AddGossipItemFor(player, 4, "Alliance Cities", GOSSIP_SENDER_MAIN, 1000);
  117.                     AddGossipItemFor(player, 4, "Zum Playertreff", GOSSIP_SENDER_MAIN, 10000);
  118.                     AddGossipItemFor(player, 4, "Neutral Cities", GOSSIP_SENDER_MAIN, 3000);
  119.                     AddGossipItemFor(player, 4, "Dungeons", GOSSIP_SENDER_MAIN, 5000);
  120.                 }
  121.                 else // Main Menu for Horde
  122.                 {
  123.                     AddGossipItemFor(player, 4, "Horde Cities", GOSSIP_SENDER_MAIN, 2000);
  124.                     AddGossipItemFor(player, 4, "Zum Playertreff", GOSSIP_SENDER_MAIN, 20000);
  125.                     AddGossipItemFor(player, 4, "Neutral Cities", GOSSIP_SENDER_MAIN, 3000);
  126.                     AddGossipItemFor(player, 4, "Dungeons", GOSSIP_SENDER_MAIN, 5000);
  127.                 }
  128.                 AddGossipItemFor(player, 9, "SWV Instance (Custom instance)", GOSSIP_SENDER_MAIN, 30000);
  129.                 AddGossipItemFor(player, 9, "Gurbashi Arena - PvP", GOSSIP_SENDER_MAIN, 3500);
  130.                 AddGossipItemFor(player, 10, "Remove Resurrection Sickness", GOSSIP_SENDER_MAIN, 4020);
  131.                 AddGossipItemFor(player, 10, "Max My Skills", GOSSIP_SENDER_MAIN, 6776);
  132.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  133.                 break;
  134.             case 5010: //Kalimdor
  135.                 AddGossipItemFor(player, 10, "Blackfathom Deeps", GOSSIP_SENDER_MAIN, 6001);
  136.                 AddGossipItemFor(player, 10, "Caverns of Time", GOSSIP_SENDER_MAIN, 6005);
  137.                 AddGossipItemFor(player, 10, "Dire Maul", GOSSIP_SENDER_MAIN, 6010);
  138.                 AddGossipItemFor(player, 10, "Maraudon", GOSSIP_SENDER_MAIN, 6015);
  139.                 AddGossipItemFor(player, 10, "Onyxia's Lair", GOSSIP_SENDER_MAIN, 6020);
  140.                 AddGossipItemFor(player, 10, "Ragefire Chasm", GOSSIP_SENDER_MAIN, 6025);
  141.                 AddGossipItemFor(player, 10, "Razorfen Downs", GOSSIP_SENDER_MAIN, 6030);
  142.                 AddGossipItemFor(player, 10, "Razorfen Kraul", GOSSIP_SENDER_MAIN, 6035);
  143.                 AddGossipItemFor(player, 10, "Ruins of Ahn'Qiraj", GOSSIP_SENDER_MAIN, 6040);
  144.                 AddGossipItemFor(player, 10, "Temple of Ahn'Qiraj", GOSSIP_SENDER_MAIN, 6045);
  145.                 AddGossipItemFor(player, 10, "Wailing Caverns", GOSSIP_SENDER_MAIN, 6050);
  146.                 AddGossipItemFor(player, 10, "Zul'Farrak", GOSSIP_SENDER_MAIN, 6055);
  147.                 AddGossipItemFor(player, 4, "<- Back", GOSSIP_SENDER_MAIN, 5000);
  148.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  149.                 break;
  150.             case 5015: //Eastern Kingdoms 1
  151.                 AddGossipItemFor(player, 10, "Blackrock Depths", GOSSIP_SENDER_MAIN, 7001);
  152.                 AddGossipItemFor(player, 10, "Blackrock Spire", GOSSIP_SENDER_MAIN, 7005);
  153.                 AddGossipItemFor(player, 10, "Blackwing Lair", GOSSIP_SENDER_MAIN, 7010);
  154.                 AddGossipItemFor(player, 10, "Deadmines", GOSSIP_SENDER_MAIN, 7015);
  155.                 AddGossipItemFor(player, 10, "Gnomeregan", GOSSIP_SENDER_MAIN, 7020);
  156.                 AddGossipItemFor(player, 10, "Isle Of Quel'Danas", GOSSIP_SENDER_MAIN, 7025);
  157.                 AddGossipItemFor(player, 10, "Karazhan", GOSSIP_SENDER_MAIN, 7030);
  158.                 AddGossipItemFor(player, 10, "Molten Core", GOSSIP_SENDER_MAIN, 7035);
  159.                 AddGossipItemFor(player, 4, "More ->", GOSSIP_SENDER_MAIN, 5020);
  160.                 AddGossipItemFor(player, 4, "<- Back", GOSSIP_SENDER_MAIN, 5000);
  161.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  162.                 break;
  163.             case 5020: //Eastern Kingdoms 2
  164.                 AddGossipItemFor(player, 10, "Scarlet Monastery", GOSSIP_SENDER_MAIN, 7040);
  165.                 AddGossipItemFor(player, 10, "Scholomance", GOSSIP_SENDER_MAIN, 7045);
  166.                 AddGossipItemFor(player, 10, "Shadowfang Keep", GOSSIP_SENDER_MAIN, 7050);
  167.                 AddGossipItemFor(player, 10, "Stratholme", GOSSIP_SENDER_MAIN, 7055);
  168.                 AddGossipItemFor(player, 10, "Sunken Temple", GOSSIP_SENDER_MAIN, 7060);
  169.                 AddGossipItemFor(player, 10, "The Stockade", GOSSIP_SENDER_MAIN, 7065);
  170.                 AddGossipItemFor(player, 10, "Uldaman", GOSSIP_SENDER_MAIN, 7070);
  171.                 AddGossipItemFor(player, 10, "Zul'Aman", GOSSIP_SENDER_MAIN, 7075);
  172.                 AddGossipItemFor(player, 10, "Zul'Gurub", GOSSIP_SENDER_MAIN, 7080);
  173.                 AddGossipItemFor(player, 4, "<- Back", GOSSIP_SENDER_MAIN, 5015);
  174.                 AddGossipItemFor(player, 4, "<- Main Menu", GOSSIP_SENDER_MAIN, 5005);
  175.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  176.                 break;
  177.             case 5025: //Outland
  178.                 AddGossipItemFor(player, 10, "Auchindoun", GOSSIP_SENDER_MAIN, 8001);
  179.                 AddGossipItemFor(player, 10, "Black Temple", GOSSIP_SENDER_MAIN, 8005);
  180.                 AddGossipItemFor(player, 10, "Coilfang Reservoir", GOSSIP_SENDER_MAIN, 8010);
  181.                 AddGossipItemFor(player, 10, "Gruul's Lair", GOSSIP_SENDER_MAIN, 8015);
  182.                 AddGossipItemFor(player, 10, "Hellfire Citadel", GOSSIP_SENDER_MAIN, 8020);
  183.                 AddGossipItemFor(player, 10, "Tempest Keep", GOSSIP_SENDER_MAIN, 8025);
  184.                 AddGossipItemFor(player, 4, "<- Back", GOSSIP_SENDER_MAIN, 5000);
  185.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  186.                 break;
  187.             case 5030: //Northrend
  188.                 AddGossipItemFor(player, 10, "Ahn'Kahet", GOSSIP_SENDER_MAIN, 9001);
  189.                 AddGossipItemFor(player, 10, "Azjol-Nerub", GOSSIP_SENDER_MAIN, 9005);
  190.                 AddGossipItemFor(player, 10, "Drak'Tharon Keep", GOSSIP_SENDER_MAIN, 9010);
  191.                 AddGossipItemFor(player, 10, "Gun'Drak", GOSSIP_SENDER_MAIN, 9015);
  192.                 AddGossipItemFor(player, 10, "Icecrown Citadel", GOSSIP_SENDER_MAIN, 9020);
  193.                 AddGossipItemFor(player, 10, "Naxxramas", GOSSIP_SENDER_MAIN, 9025);
  194.                 AddGossipItemFor(player, 10, "The Nexus", GOSSIP_SENDER_MAIN, 9030);
  195.                 AddGossipItemFor(player, 10, "The Obsidian Sanctum", GOSSIP_SENDER_MAIN, 9035);
  196.                 AddGossipItemFor(player, 10, "Utgarde Keep", GOSSIP_SENDER_MAIN, 9040);
  197.                 AddGossipItemFor(player, 10, "Utgarde Pinnacle", GOSSIP_SENDER_MAIN, 9045);
  198.                 AddGossipItemFor(player, 10, "Ulduar", GOSSIP_SENDER_MAIN, 9050);
  199.                 AddGossipItemFor(player, 10, "Violet Hold", GOSSIP_SENDER_MAIN, 9055);
  200.                 AddGossipItemFor(player, 4, "<- Back", GOSSIP_SENDER_MAIN, 5000);
  201.                 SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me->GetGUID());
  202.                 break;
  203.                 //////////////////////////////////////////////////ALLIANCE///////////////////////////////////////////////////////////////
  204.             case 1001: // Darnassus
  205.                 CloseGossipMenuFor(player);
  206.                 player->TeleportTo(1, 9947.52f, 2482.73f, 1316.21f, 0.0f);
  207.                 break;
  208.             case 1005: // Exodar
  209.                 CloseGossipMenuFor(player);
  210.                 player->TeleportTo(530, -3954.20f, -11656.54f, -138.69f, 0.0f);
  211.                 break;
  212.             case 1010: // Ironforge
  213.                 CloseGossipMenuFor(player);
  214.                 player->TeleportTo(0, -4924.07f, -951.95f, 501.55f, 5.40f);
  215.                 break;
  216.             case 1015: // Stormwind
  217.                 CloseGossipMenuFor(player);
  218.                 player->TeleportTo(0, -8960.14f, 516.266f, 96.3568f, 0.0f);
  219.                 break;
  220.                 //////////////////////////////////////////////////HORDE///////////////////////////////////////////////////////////////
  221.             case 2001: // Orgrimmar
  222.                 CloseGossipMenuFor(player);
  223.                 player->TeleportTo(1, 1552.5f, -4420.66f, 8.94802f, 0.0f);
  224.                 break;
  225.             case 2005: // Silvermoon
  226.                 CloseGossipMenuFor(player);
  227.                 player->TeleportTo(530, 9338.74f, -7277.27f, 13.7895f, 0.0f);
  228.                 break;
  229.             case 2010: // Thunder Bluff
  230.                 CloseGossipMenuFor(player);
  231.                 player->TeleportTo(1, -1290.0f, 147.033997f, 129.682007f, 4.919000f);
  232.                 break;
  233.             case 2015: // Undercity
  234.                 CloseGossipMenuFor(player);
  235.                 player->TeleportTo(0, 1819.71f, 238.79f, 60.5321f, 0.0f);
  236.                 break;
  237.                 //////////////////////////////////////////////////NEUTRAL///////////////////////////////////////////////////////////////
  238.             case 3001:// Ebon Hold
  239.                 CloseGossipMenuFor(player);
  240.                 player->TeleportTo(0, 2353.530029f, -5665.819824f, 426.028015f, 0.596f);
  241.                 break;
  242.             case 3005:// Booty Bay
  243.                 CloseGossipMenuFor(player);
  244.                 player->TeleportTo(0, -14438.2f, 472.22f, 15.32f, 0.65f);
  245.                 break;
  246.             case 3010: //Dalaran
  247.                 CloseGossipMenuFor(player);
  248.                 player->TeleportTo(571, 5819.08f, 643.99f, 647.80f, 3.32f);
  249.                 break;
  250.             case 3015: //Everlook
  251.                 CloseGossipMenuFor(player);
  252.                 player->TeleportTo(1, 6724.77f, -4610.68f, 720.78f, 4.78f);
  253.                 break;
  254.             case 3020: //Gadgetzan
  255.                 CloseGossipMenuFor(player);
  256.                 player->TeleportTo(1, -7173.26f, -3785.60f, 8.37f, 6.13f);
  257.                 break;
  258.             case 3025: //Mudsprocket
  259.                 CloseGossipMenuFor(player);
  260.                 player->TeleportTo(1, -4564.79f, -3172.38f, 33.93f, 3.21f);
  261.                 break;
  262.             case 3030: //Ratchet
  263.                 CloseGossipMenuFor(player);
  264.                 player->TeleportTo(1, -956.664f, -3754.71f, 5.33239f, 0.996637f);
  265.                 break;
  266.             case 3035:// Shattrath City
  267.                 CloseGossipMenuFor(player);
  268.                 player->TeleportTo(530, -1850.209961f, 5435.821777f, -10.961435f, 3.403913f);
  269.                 break;
  270.             case 3040:// Isle Of Quel'Danas
  271.                 CloseGossipMenuFor(player);
  272.                 player->TeleportTo(530, 12947.4f, -6893.31f, 5.68398f, 3.09154f);
  273.                 break;
  274.                 //////////////////////////////////////////////////KALIMDOR///////////////////////////////////////////////////////////////
  275.             case 6001:// Blackfathom Deeps
  276.                 CloseGossipMenuFor(player);
  277.                 player->TeleportTo(1, 4248.72f, 744.35f, -24.67f, 1.34f);
  278.                 break;
  279.             case 6005:// Caverns of Time
  280.                 CloseGossipMenuFor(player);
  281.                 player->TeleportTo(1, -8173.66f, -4746.36f, 33.84f, 4.94f);
  282.                 break;
  283.             case 6010:// Dire Maul
  284.                 CloseGossipMenuFor(player);
  285.                 player->TeleportTo(1, -3960.95f, 1130.64f, 161.05f, 0.0f);
  286.                 break;
  287.             case 6015:// Maraudon
  288.                 CloseGossipMenuFor(player);
  289.                 player->TeleportTo(1, -1431.33f, 2962.34f, 98.23f, 4.74f);
  290.                 break;
  291.             case 6020:// Onyxia's Lair
  292.                 CloseGossipMenuFor(player);
  293.                 player->TeleportTo(1, -4707.44f, -3726.82f, 54.6723f, 3.8f);
  294.                 break;
  295.             case 6025:// Ragefire Chasm
  296.                 CloseGossipMenuFor(player);
  297.                 player->TeleportTo(1, 1814.47f, -4419.46f, -18.78f, 5.28f);
  298.                 break;
  299.             case 6030:// Razorfen Downs
  300.                 CloseGossipMenuFor(player);
  301.                 player->TeleportTo(1, -4657.88f, -2525.59f, 81.4f, 4.16f);
  302.                 break;
  303.             case 6035:// Razorfen Kraul
  304.                 CloseGossipMenuFor(player);
  305.                 player->TeleportTo(1, -4463.6f, -1664.53f, 82.26f, 0.85f);
  306.                 break;
  307.             case 6040:// Ruins of Ahn'Qiraj
  308.                 CloseGossipMenuFor(player);
  309.                 player->TeleportTo(1, -8413.33f, 1501.27f, 29.64f, 2.61f);
  310.                 break;
  311.             case 6045:// Temple of Ahn'Qiraj
  312.                 CloseGossipMenuFor(player);
  313.                 player->TeleportTo(1, -8245.837891f, 1983.736206f, 129.071686f, 0.936195f);
  314.                 break;
  315.             case 6050:// Wailing Caverns
  316.                 CloseGossipMenuFor(player);
  317.                 player->TeleportTo(1, -722.53f, -2226.30f, 16.94f, 2.71f);
  318.                 break;
  319.             case 6055:// Zul'Farrak
  320.                 CloseGossipMenuFor(player);
  321.                 player->TeleportTo(1, -6801.9f, -2890.22f, 8.88f, 6.25f);
  322.                 break;
  323.                 //////////////////////////////////////////////////EASTERN KINGDOMS///////////////////////////////////////////////////////////////
  324.             case 7001:// Blackrock Depths
  325.                 CloseGossipMenuFor(player);
  326.                 player->TeleportTo(0, -7180.57f, -920.04f, 165.49f, 5.02f);
  327.                 break;
  328.             case 7005:// Blackrock Spire
  329.                 CloseGossipMenuFor(player);
  330.                 player->TeleportTo(0, -7526.77f, -1225.64f, 285.73f, 5.31f);
  331.                 break;
  332.             case 7010:// Blackwing Lair
  333.                 CloseGossipMenuFor(player);
  334.                 player->TeleportTo(469, -7672.61f, -1107.21f, 396.65f, 3.75f);
  335.                 break;
  336.             case 7015:// Deadmines
  337.                 CloseGossipMenuFor(player);
  338.                 player->TeleportTo(0, -11208.2f, 1675.92f, 24.57f, 1.48f);
  339.                 break;
  340.             case 7020:// Gnomeregan
  341.                 CloseGossipMenuFor(player);
  342.                 player->TeleportTo(0, -5163.32f, 927.18f, 257.158f, 1.44f);
  343.                 break;
  344.             case 7025:// Isle Of Quel'Danas
  345.                 CloseGossipMenuFor(player);
  346.                 player->TeleportTo(530, 13010.00f, -6907.64f, 9.58f, 4.58f);
  347.                 break;
  348.             case 7030:// Karazhan
  349.                 CloseGossipMenuFor(player);
  350.                 player->TeleportTo(0, -11119.6f, -2011.42f, 47.09f, 0.65f);
  351.                 break;
  352.             case 7035:// Molten Core
  353.                 CloseGossipMenuFor(player);
  354.                 player->TeleportTo(230, 1114.85f, -457.76f, -102.81f, 3.83f);
  355.                 break;
  356.             case 7040:// Scarlet Monastery
  357.                 CloseGossipMenuFor(player);
  358.                 player->TeleportTo(0, 2843.89f, -693.74f, 139.32f, 5.11f);
  359.                 break;
  360.             case 7045:// Scholomance
  361.                 CloseGossipMenuFor(player);
  362.                 player->TeleportTo(0, 1273.06f, -2574.01f, 92.66f, 2.06f);
  363.                 break;
  364.             case 7050:// Shadowfang Keep
  365.                 CloseGossipMenuFor(player);
  366.                 player->TeleportTo(0, -239.54f, 1550.8f, 76.89f, 1.18f);
  367.                 break;
  368.             case 7055:// Stratholme
  369.                 CloseGossipMenuFor(player);
  370.                 player->TeleportTo(0, 3370.76f, -3343.63f, 142.26f, 5.23f);
  371.                 break;
  372.             case 7060:// Sunken Temple
  373.                 CloseGossipMenuFor(player);
  374.                 player->TeleportTo(0, -10346.92f, -3851.90f, -43.41f, 6.09f);
  375.                 break;
  376.             case 7065:// The Stockade
  377.                 CloseGossipMenuFor(player);
  378.                 player->TeleportTo(0, -8766.89f, 844.6f, 88.43f, 0.69f);
  379.                 break;
  380.             case 7070:// Uldaman
  381.                 CloseGossipMenuFor(player);
  382.                 player->TeleportTo(0, -6070.72f, -2955.33f, 209.78f, 0.05f);
  383.                 break;
  384.             case 7075:// Zul'Aman
  385.                 CloseGossipMenuFor(player);
  386.                 player->TeleportTo(530, 6851.09f, -7979.71f, 183.54f, 4.72f);
  387.                 break;
  388.             case 7080:// Zul'Gurub
  389.                 CloseGossipMenuFor(player);
  390.                 player->TeleportTo(0, -11916.4f, -1216.23f, 92.28f, 4.75f);
  391.                 break;
  392.                 //////////////////////////////////////////////////OUTLAND///////////////////////////////////////////////////////////////
  393.             case 8001:// Auchindoun
  394.                 CloseGossipMenuFor(player);
  395.                 player->TeleportTo(530, -3322.92f, 4931.02f, -100.56f, 1.86f);
  396.                 break;
  397.             case 8005:// Black Temple
  398.                 CloseGossipMenuFor(player);
  399.                 player->TeleportTo(530, -3649.1f, 317.33f, 35.19f, 2.97f);
  400.                 break;
  401.             case 8010:// Coilfang Reservoir
  402.                 CloseGossipMenuFor(player);
  403.                 player->TeleportTo(530, 721.08f, 6846.77f, -68.75f, 0.34f);
  404.                 break;
  405.             case 8015:// Gruul's Lair
  406.                 CloseGossipMenuFor(player);
  407.                 player->TeleportTo(530, 3539.01f, 5082.36f, 1.69f, 0.0f);
  408.                 break;
  409.             case 8020:// Hellfire Citadel
  410.                 CloseGossipMenuFor(player);
  411.                 player->TeleportTo(530, -292.71f, 3146.77f, 31.60f, 2.05f);
  412.                 break;
  413.             case 8025:// Tempest Keep
  414.                 CloseGossipMenuFor(player);
  415.                 player->TeleportTo(530, 3087.62f, 1376.27f, 184.8f, 4.63f);
  416.                 break;
  417.                 //////////////////////////////////////////////////NORTHREND///////////////////////////////////////////////////////////////
  418.             case 9001:// Ahn'Kahet
  419.                 CloseGossipMenuFor(player);
  420.                 player->TeleportTo(571, 3646.76f, 2045.17f, 1.79f, 4.37f);
  421.                 break;
  422.             case 9005:// Azjol-Nerub
  423.                 CloseGossipMenuFor(player);
  424.                 player->TeleportTo(571, 3675.43f, 2169.00f, 35.90f, 2.29f);
  425.                 break;
  426.             case 9010:// Drak'Tharon Keep
  427.                 CloseGossipMenuFor(player);
  428.                 player->TeleportTo(571, 4450.86f, -2045.25f, 162.83f, 0.00f);
  429.                 break;
  430.             case 9015:// Gun'Drak
  431.                 CloseGossipMenuFor(player);
  432.                 player->TeleportTo(571, 6937.54f, -4455.98f, 450.68f, 1.00f);
  433.                 break;
  434.             case 9020:// Icecrown Citadel
  435.                 CloseGossipMenuFor(player);
  436.                 player->TeleportTo(571, 6139.24f, 2233.72f, 510.79f, 3.56f);
  437.                 break;
  438.             case 9025:// Naxxramas
  439.                 CloseGossipMenuFor(player);
  440.                 player->TeleportTo(571, 3668.72f, -1262.46f, 243.622f, 4.785f);
  441.                 break;
  442.             case 9030:// The Nexus
  443.                 CloseGossipMenuFor(player);
  444.                 player->TeleportTo(571, 3789.95f, 6961.48f, 104.23f, 0.28f);
  445.                 break;
  446.             case 9035:// The Obsidian Sanctum
  447.                 CloseGossipMenuFor(player);
  448.                 player->TeleportTo(571, 3625.78f, 280.4f, -120.14f, 3.25f);
  449.                 break;
  450.             case 9040:// Ulduar
  451.                 CloseGossipMenuFor(player);
  452.                 player->TeleportTo(571, 1219.72f, -4865.28f, 41.25f, 0.31f);
  453.                 break;
  454.             case 9045:// Utgarde Keep
  455.                 CloseGossipMenuFor(player);
  456.                 player->TeleportTo(571, 1245.69f, -4856.59f, 216.86f, 3.45f);
  457.                 break;
  458.             case 9050:// Utgarde Pinnacle
  459.                 CloseGossipMenuFor(player);
  460.                 player->TeleportTo(571, 8976.24f, -1281.33f, 1059.01f, 0.58f);
  461.                 break;
  462.             case 9055:// Violet Hold
  463.                 CloseGossipMenuFor(player);
  464.                 player->TeleportTo(571, 5679.82f, 486.80f, 652.40f, 4.08f);
  465.                 break;
  466.                 //////////////////////////////////////////Player Tools////////////////////////////////////////////////////////
  467.             case 4020://Remove Res Sickness
  468.                 if (player->HasAura(15007))
  469.                 {
  470.                     me->CastSpell(player, 38588, false); // Healing effect
  471.                     ChatHandler(player->GetSession()).SendSysMessage("You are now cleaned.");
  472.                     player->RemoveAurasDueToSpell(15007);
  473.                     CloseGossipMenuFor(player);
  474.                 }
  475.                 ChatHandler(player->GetSession()).SendSysMessage("Du hast keine Nachwirkungen.");
  476.                 GossipHello(player);
  477.                 CloseGossipMenuFor(player);
  478.                 return;
  479.                 break;
  480.                 // PLAYER TOOLS
  481.             case 3500: // Arena PvP Option
  482.                 CloseGossipMenuFor(player);
  483.                 player->TeleportTo(0, -13277.4f, 127.372f, 26.1418f, 1.11878f);
  484.                 break;
  485.             case 6776:
  486.             {
  487.                 player->UpdateSkillsForLevel();
  488.                 ChatHandler(player->GetSession()).SendSysMessage("Deine Ferigkeiten wurden angepasst auf dein entsprechendes Level.");
  489.                 CloseGossipMenuFor(player);
  490.             }
  491.             break;
  492.             //////////////////////////////////////////Player Tools////////////////////////////////////////////////////////
  493.             case 10000:// Allianz Playertreff
  494.                 CloseGossipMenuFor(player);
  495.                 player->TeleportTo(0, 2918.74f, -1437.36f, 150.782f, 4.28161f);
  496.                 break;
  497.             case 20000:// Horde Playertreff
  498.                 CloseGossipMenuFor(player);
  499.                 player->TeleportTo(1, 7447.3f, -1693.77f, 194.899f, 2.43468f);
  500.                 break;
  501.             case 30000:// SWV instanz
  502.                 CloseGossipMenuFor(player);
  503.                 player->TeleportTo(0, -8645.188477f, 595.820679f, 95.705704f, 2.238403f);
  504.                 break;
  505.             }
  506.         }
  507.  
  508.         bool GossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
  509.         {
  510.             TC_LOG_ERROR("scripts", "GossipSelect (gossipListId: %u )", gossipListId);
  511.             uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
  512.             ClearGossipMenuFor(player);
  513.  
  514.             if (action)
  515.             {
  516.                 TC_LOG_ERROR("scripts", "GossipSelect (MenuId: %u Action %u)", menuId, action);
  517.                 SendDefaultMenu(player, me, action);
  518.             }
  519.  
  520.             return true;
  521.         }
  522.     };
  523.  
  524.     CreatureAI* GetAI(Creature* creature) const override
  525.     {
  526.         return new npc_teleporterAI(creature);
  527.     };
  528.  
  529. };
  530.  
  531. void AddSC_Teleporter()
  532. {
  533.     new npc_teleporter();
  534. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement