Advertisement
Rochet2

Teleporter

Dec 22nd, 2011
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.34 KB | None | 0 0
  1. local npcid = 12 -- Changethis to your NPC Entry
  2.  
  3. local Alliance =  -- Listing alliance race IDs
  4. {
  5.     [1] = true,
  6.     [3] = true,
  7.     [4] = true,
  8.     [7] = true,
  9.     [11] = true,
  10. }
  11.  
  12. local T = -- Teleports
  13. {
  14. --  [intid] = {map, x, y, z, o},
  15.     [300] = {0, -4924, -952, 501, 0},
  16.     [301] = {0, -8839, 639, 95, 0},
  17.     [302] = {1, 9947, 2480, 1316, 0},
  18.     [303] = {530, -4014, -11895, -1, 0},
  19.     [304] = {1, 1553, -4418, 8, 0},
  20.     [305] = {530, 9351, -7278, 14, 0},
  21.     [306] = {0, 1791, 238, 60, 0},
  22.     [307] = {1, -1277, 138, 132, 0},
  23.     [308] = {0, -13192, 289, 21, 0},
  24.     [309] = {530, -2001, 6583, 11, 0},
  25.     [311] = {530, 2869, 5900, 12, 0},
  26.     [312] = {1, -6483, 3011, 8, 0},
  27.     [313] = {1, 4629, 3836, 943, 0},
  28.     [314] = {1, 5225, -1233, 1374, 0},
  29.     -- [315] = {map, x, y, z, o},
  30.     [316] = {1, -6699, -2898, 8, 0},
  31.     [317] = {0, -1853, -4114, 12, 0},
  32.     -- [318] = {map, x, y, z, o},
  33.    
  34.     -- [320] = {map, x, y, z, o},
  35.    
  36.     [900] = {1, -7172, -3801, 8, 0},
  37.     [901] = {1, -6725, -4650, 720, 0},
  38.     [902] = {0, -14297, 526, 8, 0},
  39.     [903] = {530, -1887, 5417, -12, 0},
  40.     [904] = {530, 12898, -6925, 3, 0},
  41. }
  42.  
  43. local function WarpNPC_OnGossipTalk(pUnit, event, player)
  44.     if (player:IsInCombat()) then
  45.         player:SendAreatriggerMessage("You are in combat!")
  46.     else
  47.         pUnit:GossipCreateMenu(3544, player, 0)
  48.         if (Alliance[player:GetPlayerRace()]) then
  49.             pUnit:GossipMenuAddItem(3, "Cities", 1, 0)
  50.         else
  51.             pUnit:GossipMenuAddItem(3, "Cities", 2, 0)
  52.         end
  53.         pUnit:GossipMenuAddItem(3, "Arenas", 3, 0)
  54.         pUnit:GossipMenuAddItem(3, "Leveling Zones", 4, 0)
  55.         pUnit:GossipMenuAddItem(3, "Lvl 255", 5, 0)
  56.         pUnit:GossipMenuAddItem(3, "VIP", 6, 0)
  57.         if(player:IsInGuild()) then
  58.             pUnit:GossipMenuAddItem(3, "Guilds", 7, 0)
  59.         end
  60.         pUnit:GossipMenuAddItem(3, "Special Events", 8, 0)
  61.         pUnit:GossipMenuAddItem(3, "Instance Lvl 1-60", 9, 0)
  62.         pUnit:GossipMenuAddItem(3, "Instance Lvl 60+", 10, 0)
  63.         pUnit:GossipMenuAddItem(3, "Instance Lvl 70+", 11, 0)
  64.         pUnit:GossipSendMenu(player)
  65.     end
  66. end
  67.  
  68. local function WarpNPC_OnGossipSelect(pUnit, event, player, id, intid, code)
  69.     if(intid == 999) then
  70.         WarpNPC_OnGossipTalk(pUnit, event, player)
  71.         return
  72.     elseif(intid == 1) then
  73.         pUnit:GossipCreateMenu(99, player, 0)
  74.         pUnit:GossipMenuAddItem(1, "Ironforge", 300, 0)
  75.         pUnit:GossipMenuAddItem(1, "Stormwind", 301, 0)
  76.         pUnit:GossipMenuAddItem(1, "Darnassus", 302, 0)
  77.         pUnit:GossipMenuAddItem(1, "Exodar", 303, 0)
  78.         pUnit:GossipMenuAddItem(1, "Gadgetzan", 900, 0)
  79.         pUnit:GossipMenuAddItem(1, "Everlook", 901, 0)
  80.         pUnit:GossipMenuAddItem(1, "Booty Bay", 902, 0)
  81.         pUnit:GossipMenuAddItem(1, "Shattrath", 903, 0)
  82.         pUnit:GossipMenuAddItem(1, "Isle of Quel'Danas", 904, 0)
  83.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  84.         pUnit:GossipSendMenu(player)
  85.         return
  86.     elseif(intid == 2) then
  87.         pUnit:GossipCreateMenu(99, player, 0)
  88.         pUnit:GossipMenuAddItem(1, "Orgrimmar", 304, 0)
  89.         pUnit:GossipMenuAddItem(1, "Silvermoon", 305, 0)
  90.         pUnit:GossipMenuAddItem(1, "Undercity", 306, 0)
  91.         pUnit:GossipMenuAddItem(1, "Thunder Bluff", 307, 0)
  92.         pUnit:GossipMenuAddItem(1, "Gadgetzan", 900, 0)
  93.         pUnit:GossipMenuAddItem(1, "Everlook", 901, 0)
  94.         pUnit:GossipMenuAddItem(1, "Booty Bay", 902, 0)
  95.         pUnit:GossipMenuAddItem(1, "Shattrath", 903, 0)
  96.         pUnit:GossipMenuAddItem(1, "Isle of Quel'Danas", 904, 0)
  97.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  98.         pUnit:GossipSendMenu(player)
  99.         return
  100.     elseif(intid == 3) then
  101.         pUnit:GossipCreateMenu(99, player, 0)
  102.         pUnit:GossipMenuAddItem(1, "Gurubashi Arena", 308, 0)
  103.         pUnit:GossipMenuAddItem(1, "The Ring Of Trials", 309, 0)
  104.         pUnit:GossipMenuAddItem(1, "The Maul", 310, 0)
  105.         pUnit:GossipMenuAddItem(1, "Circle of Blood Arena", 311, 0)
  106.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  107.         pUnit:GossipSendMenu(player)
  108.         return
  109.     elseif(intid == 4)then
  110.         pUnit:GossipCreateMenu(99, player, 0)
  111.         pUnit:GossipMenuAddItem(1, "The Insle of Horror (1-100)", 312, 0)
  112.         pUnit:GossipMenuAddItem(1, "Hyjal Road 1 (100-150)", 313, 0)
  113.         pUnit:GossipMenuAddItem(1, "Hyjal Road 2 (150-180)", 314, 0)
  114.         pUnit:GossipMenuAddItem(1, "Azhara Crater (180-225)", 315, 0)
  115.         pUnit:GossipMenuAddItem(1, "Acnun's Lair (225-255)", 316, 0)
  116.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  117.         pUnit:GossipSendMenu(player)
  118.         return
  119.     elseif(intid == 5)then
  120.         pUnit:GossipCreateMenu(99, player, 0)
  121.         pUnit:GossipMenuAddItem(1, "PVP Area", 317, 0)
  122.         pUnit:GossipMenuAddItem(1, "X", 318, 0)
  123.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  124.         pUnit:GossipSendMenu(player)
  125.         return
  126.     elseif(intid == 6)then
  127.         if (player:CanUseCommand("a")) then -- Not sure what you wanted here
  128.             pUnit:GossipCreateMenu(99, player, 0)
  129.             pUnit:GossipMenuAddItem(3, "Buff", 319, 0)
  130.             pUnit:GossipMenuAddItem(3, "Boss Teleport", 320, 0)
  131.             pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  132.             pUnit:GossipSendMenu(player)
  133.             return
  134.         end
  135.     elseif(intid == 7)then
  136.         if (player:GetGuildId() == 2)then
  137.             pUnit:GossipCreateMenu(99, player, 0)
  138.             pUnit:GossipMenuAddItem(3, "Guild House", 321, 0)
  139.             pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  140.             pUnit:GossipSendMenu(player)
  141.             return
  142.         end
  143.     elseif(intid == 8)then
  144.         pUnit:GossipCreateMenu(99, player, 0)
  145.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  146.         pUnit:GossipSendMenu(player)
  147.         return
  148.     elseif(intid == 9)then
  149.         pUnit:GossipCreateMenu(99, player, 0)
  150.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  151.         pUnit:GossipSendMenu(player)
  152.         return
  153.     elseif(intid == 10)then
  154.         pUnit:GossipCreateMenu(99, player, 0)
  155.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  156.         pUnit:GossipSendMenu(player)
  157.         return
  158.     elseif(intid == 11)then
  159.         pUnit:GossipCreateMenu(99, player, 0)
  160.         pUnit:GossipMenuAddItem(0, "[Main Menu]", 999, 0)
  161.         pUnit:GossipSendMenu(player)
  162.         return
  163.     elseif(intid == 319) then
  164.         pUnit:CastSpellOnTarget(33077, player)
  165.         pUnit:CastSpellOnTarget(33078, player)
  166.         pUnit:CastSpellOnTarget(33079, player)
  167.         pUnit:CastSpellOnTarget(33080, player)
  168.         pUnit:CastSpellOnTarget(33081, player)
  169.         pUnit:CastSpellOnTarget(33082, player)
  170.     elseif(intid == 321) then
  171.         if(player:GetGuildId() == 2) then
  172.             player:Teleport(1, -10734, 2475, 6)
  173.         end
  174.     elseif(T[intid]) then
  175.         player:Teleport(T[intid][1], T[intid][2], T[intid][3], T[intid][4], T[intid][5])
  176.     end
  177.     player:GossipComplete()
  178. end
  179.  
  180. RegisterUnitGossipEvent(npcid, 1, "WarpNPC_OnGossipTalk") -- Using string form for old cores
  181. RegisterUnitGossipEvent(npcid, 2, "WarpNPC_OnGossipSelect")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement