Advertisement
Rochet2

GOMove ~ Gossip edition

Dec 20th, 2011
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 15.98 KB | None | 0 0
  1. -- set item on use spellid 36177
  2. local ITEM_ENTRY = 6948 -- currently set to hearthstone, please change this before using!! Else everyone can use this script.
  3. -- Favourites:
  4. -- Note: Favourites only last until the luaengine restarts (server restarted or luaengine), only the GOs in the GameObjects list will be permanent.
  5. local Save_all_used = false -- use false to save only saved gameobjects to the gameobject fav list, true to save all used gameobjects.
  6. local GameObjects = -- A list of gameobjects that you can spawn without searching ingame or searching for entry. Just add the name and the entry to the list.
  7. {
  8. --  {"NAME", ENTRY},
  9.     {"Wooden Chair", 101779},
  10.     {"Party Table", 180698},
  11.     {"Circle of calling", 178670},
  12.     {"Orgrim's Hammer", 192241},
  13. }
  14.  
  15.  
  16.  
  17. -- Do not touch anything below
  18. local T =
  19. {
  20.     Saved = {},
  21.     Spawned = {},
  22.     Used = {},
  23.     Last = {},
  24.     Options = 25 -- amount of favourites on a page
  25. }
  26.  
  27. function T.GO(e,x,y,z,o,s,p,pPlayer,obj)
  28.     local GO = pPlayer:SpawnGameObject(e,x,y,z,o, 0, s*100, p, 0)
  29.     if(T.IsGO(obj) and T.IsGO(GO)) then
  30.         if(T.Spawned[tostring(obj)] ~= nil) then
  31.             T.Spawned[tostring(GO)] = 1
  32.             T.Spawned[tostring(obj)] = nil
  33.         end
  34.         if(T.Saved[tostring(pPlayer)][tostring(obj)] ~= nil) then
  35.             T.Saved[tostring(pPlayer)][tostring(GO)] = T.Saved[tostring(pPlayer)][tostring(obj)]
  36.             T.Saved[tostring(pPlayer)][tostring(obj)] = nil
  37.         end
  38.     elseif(obj == nil and T.IsGO(GO)) then
  39.         T.Spawned[tostring(GO)] = 1
  40.     else
  41.         return nil
  42.     end
  43.     return GO
  44. end
  45.  
  46. function T.SaveUsed(obj, str, Saved)
  47.     if((Save_all_used or Saved) and T.IsGO(obj)) then
  48.         local S = true
  49.         for k,v in ipairs(T.Used[str]) do
  50.             if(v[2] == obj:GetEntry()) then
  51.                 S = false
  52.                 break
  53.             end
  54.         end
  55.         if(S) then
  56.             T.Used[str][#T.Used[str]+1] = {obj:GetName(), obj:GetEntry()}
  57.         end
  58.     end
  59. end
  60.  
  61. function T.RFW(Unit, str) -- remove from world
  62.     if(Unit ~= nil) then
  63.         T.Saved[str][tostring(Unit)] = nil
  64.         T.Spawned[tostring(Unit)] = nil
  65.         Unit:Despawn(0, 0)
  66.     end
  67. end
  68.  
  69. function T.IsGO(Unit)
  70.     if(Unit ~= nil and type(Unit) == "userdata" and Unit:GetName() ~= nil) then -- Check that the unit is not nil, is an unit and its is actually in the world.
  71.         return true
  72.     end
  73.     return false
  74. end
  75.  
  76. function T.Count(Page)
  77.     if(not Page or Page < 1) then
  78.         return 1
  79.     else
  80.         return (Page*T.Options)
  81.     end
  82. end
  83.  
  84. function T.Max(Count, LData)
  85.     if(LData - Count >= T.Options) then
  86.         return Count+T.Options-1, true
  87.     else
  88.         return LData, false
  89.     end
  90. end
  91.  
  92. function T.GetMenu(pUnit, e, pPlayer, pMisc, intid)
  93.     local str = tostring(pPlayer)
  94.     if(T[str] == nil) then
  95.         T[str] = {false, 0.3, false, false, 0}
  96.         T.Used[str] = GameObjects
  97.         T.Saved[str] = {}
  98.     end
  99.     if(T.IsGO(T[str][1])) then
  100.         pUnit:GossipCreateMenu(100, pPlayer, 0)
  101.         if(T[str][4]) then
  102.             pUnit:GossipMenuAddItem(4, "Use player X", 19, 0, '', 0)
  103.             pUnit:GossipMenuAddItem(4, "Use player Y", 20, 0, '', 0)
  104.             pUnit:GossipMenuAddItem(4, "Use player Z", 17, 0, '', 0)
  105.             pUnit:GossipMenuAddItem(4, "Use player facing", 18, 0, '', 0)
  106.         else
  107.             pUnit:GossipMenuAddItem(2, "Move North", 4, 0, '', 0)
  108.             pUnit:GossipMenuAddItem(2, "Move South", 6, 0, '', 0)
  109.             pUnit:GossipMenuAddItem(2, "Move East", 5, 0, '', 0)
  110.             pUnit:GossipMenuAddItem(2, "Move West", 7, 0, '', 0)
  111.             pUnit:GossipMenuAddItem(2, "Up", 8, 0, '', 0)
  112.             pUnit:GossipMenuAddItem(2, "Down", 9, 0, '', 0)
  113.             pUnit:GossipMenuAddItem(2, "Turn right", 10, 0, '', 0)
  114.             pUnit:GossipMenuAddItem(2, "Turn left", 11, 0, '', 0)
  115.         end
  116.         pUnit:GossipMenuAddItem(2, "Grow", 12, 0, '', 0)
  117.         pUnit:GossipMenuAddItem(2, "Shrink", 13, 0, '', 0)
  118.         -- pUnit:GossipMenuAddItem(2, "Set phase", 14, 1, '', 0)
  119.         pUnit:GossipMenuAddItem(3, "SAVE", 2, 0, '', 0)
  120.         pUnit:GossipMenuAddItem(9, "DELETE", 1, 0, 'Sure?', 0)
  121.         pUnit:GossipMenuAddItem(4, "Change multiplier: "..T[str][2], 3, 1, '', 0)
  122.         pUnit:GossipMenuAddItem(4, "Toggle move commands", 21, 0, '', 0)
  123.         -- pUnit:GossipMenuAddItem(4, "Face north: "..tostring(T[str][3]), 15, 0, '', 0)
  124.         pUnit:GossipMenuAddItem(4, "Selection", 100, 0, '', 0)
  125.         pUnit:GossipSendMenu(pPlayer)
  126.     else
  127.         T.SelectTarget(pUnit, pPlayer, false)
  128.     end
  129. end
  130.  
  131. function T.SelectTarget(pUnit, pPlayer, Back)
  132.     local str = tostring(pPlayer)
  133.     pUnit:GossipCreateMenu(100, pPlayer, 0)
  134.     if(T.IsGO(T[str][1])) then
  135.         pUnit:GossipMenuAddItem(8, "Selected: "..T[str][1]:GetName().." Multiplier: "..T[str][2], 0, 0, '', 0)
  136.         pUnit:GossipMenuAddItem(2, "Go to current selection", 16, 0, '', 0)
  137.         pUnit:GossipMenuAddItem(4, "Duplicate selected", 61, 0, '', 0)
  138.     else
  139.         pUnit:GossipMenuAddItem(8, "Selected: None", 0, 0, '', 0)
  140.     end
  141.     if(T.Last[str] ~= nil) then
  142.         pUnit:GossipMenuAddItem(4, "Respawn last used", 62, 0, '', 0)
  143.     end
  144.     pUnit:GossipMenuAddItem(4, "Spawn GO", 55, 1, '', 0)
  145.     pUnit:GossipMenuAddItem(4, "Select .gob sel", 60, 0, '', 0)
  146.     pUnit:GossipMenuAddItem(4, "Duplicate .gob sel", 58, 0, '', 0)
  147.     if(#T.Used[str] > 0) then
  148.         pUnit:GossipMenuAddItem(3, "Used objects", 101, 0, '', 0)
  149.     end
  150.     if(Back) then
  151.         pUnit:GossipMenuAddItem(7, "Back..", 0, 0, '', 0)
  152.     end
  153.     pUnit:GossipSendMenu(pPlayer)
  154. end
  155.  
  156. function T.Select(pUnit, e, pPlayer, id, intid, code)
  157.     local str = tostring(pPlayer)
  158.     if(T.IsGO(T[str][1]) and T[str][1]:GetMapId() ~= pPlayer:GetMapId()) then
  159.         pPlayer:SendBroadcastMessage("You are on a different map with the selected object.")
  160.         T.GetMenu(pUnit, e, pPlayer, pMisc, intid)
  161.         return
  162.     elseif(code ~= nil) then
  163.         if(intid == 3) then
  164.             local code = (tonumber(code))
  165.             if(code <= 0) then
  166.                 pPlayer:SendBroadcastMessage("Only numbers above 0.")
  167.             else
  168.                 T[str][2] = code
  169.             end
  170.         else
  171.             local code = math.ceil(tonumber(code))
  172.             if(code < 1) then
  173.                 pPlayer:SendBroadcastMessage("Only numbers above 1")
  174.             else
  175.                 if(intid == 55) then
  176.                     local x,y,z,o = pPlayer:GetLocation()
  177.                     local Sel = T.GO(code,x,y,z,o,1,pPlayer:GetPhase(),pPlayer)
  178.                     if (Sel == nil) then
  179.                         pPlayer:SendBroadcastMessage("non-existing unit")
  180.                     else
  181.                         T[str][1] = Sel
  182.                         T.SaveUsed(Sel, str)
  183.                     end
  184.                 elseif(intid == 14) then
  185.                     if(T.IsGO(T[str][1])) then
  186.                         local Target = T[str][1]
  187.                         local x,y,z,o = Target:GetLocation()
  188.                         T[str][1] = T.GO(Target:GetEntry(),x,y,z,o,Target:GetScale(),code,pPlayer,Target)
  189.                         T.RFW(Target, str)
  190.                     else
  191.                         pPlayer:SendBroadcastMessage("non-existing unit")
  192.                     end
  193.                 end
  194.             end
  195.         end
  196.     elseif(intid == 0) then
  197.         -- T.GetMenu(pUnit, e, pPlayer, pMisc, intid)
  198.     elseif(intid == 58) then
  199.         local Target = pPlayer:GetSelectedGO()
  200.         if(Target == nil) then
  201.             pPlayer:SendBroadcastMessage("Nothing selected currently with .gob sel")
  202.         else
  203.             local x,y,z,o = Target:GetLocation()
  204.             T[str][1] = T.GO(Target:GetEntry(),x,y,z,o,Target:GetScale(),Target:GetPhase(),pPlayer)
  205.             pPlayer:SendBroadcastMessage(T[str][1]:GetName().." copied")
  206.             T.SaveUsed(Target, str)
  207.         end
  208.     elseif(intid == 60) then
  209.         local Target = pPlayer:GetSelectedGO()
  210.         if(Target == nil) then
  211.             pPlayer:SendBroadcastMessage("Nothing selected currently with .gob sel")
  212.         else
  213.             if(T.Spawned[tostring(Target)] ~= nil) then
  214.                 local tstr = tostring(Target)
  215.                 if(T.Saved[str][tstr] ~= nil) then
  216.                     WorldDBQuery("DELETE FROM gameobject_spawns WHERE id = "..T.Saved[str][tstr]..";")
  217.                     T.Saved[str][tstr] = nil
  218.                 end
  219.                 T[str][1] = Target
  220.                 pPlayer:SendBroadcastMessage(Target:GetName().." selected")
  221.                 T.SaveUsed(Target, str)
  222.             else
  223.                 pPlayer:SendBroadcastMessage("Object not spawned with GOmove or in this session. Duplicate instead. This avoids non-temporary GOs to appear on restart")
  224.             end
  225.         end
  226.     elseif(intid == 1) then
  227.         if(T.IsGO(T[str][1]) and T.Spawned[tostring(T[str][1])]) then
  228.             local tstr = tostring(T[str][1])
  229.             if(T.Saved[str][tstr] ~= nil) then
  230.                 WorldDBQuery("DELETE FROM gameobject_spawns WHERE id = "..T.Saved[str][tstr]..";")
  231.                 T.Saved[str][tstr] = nil
  232.             end
  233.             T.Spawned[tstr] = nil
  234.             T[str][1]:Despawn(0, 0)
  235.             T[str][1] = false
  236.             pPlayer:SendBroadcastMessage("Gameobject deleted")
  237.         else
  238.             pPlayer:SendBroadcastMessage("Object not spawned with GOmove or in this session. Delete with .gob sel .gob del instead")
  239.         end
  240.     elseif(intid == 2) then
  241.         if(T.IsGO(T[str][1])) then
  242.             local Q = WorldDBQuery("SELECT id FROM gameobject_spawns ORDER BY id DESC LIMIT 1;")
  243.             local I = 1
  244.             if(Q) then
  245.                 I = Q:GetColumn(0):GetLong()+1
  246.             end
  247.             T.Saved[str][tostring(T[str][1])] = I
  248.             WorldDBQuery("INSERT INTO `gameobject_spawns` (`id`, `Entry`, `map`, `position_x`, `position_y`, `position_z`, `Facing`, `orientation1`, `orientation2`, `orientation3`, `orientation4`, `State`, `Flags`, `Faction`, `Scale`, `stateNpcLink`, `phase`, `overrides`) VALUES ("..I..", "..T[str][1]:GetEntry()..", "..T[str][1]:GetMapId()..", "..T[str][1]:GetX()..", "..T[str][1]:GetY()..", "..T[str][1]:GetZ()..", "..T[str][1]:GetO()..", 0, 0, 0, 0, 1, 0, 0, "..T[str][1]:GetScale()..", 0, "..T[str][1]:GetPhase()..", 0);")
  249.             T.SaveUsed(T[str][1], str, true)
  250.             T[str][1] = false
  251.             pPlayer:SendBroadcastMessage("Unit saved")
  252.         else
  253.             pPlayer:SendBroadcastMessage("non-existing unit")
  254.         end
  255.     elseif(intid >= 4 and intid <= 7) then
  256.         if(T.IsGO(T[str][1])) then
  257.             local Target = T[str][1]
  258.             local x,y,z,o = Target:GetLocation()
  259.             if(intid == 4) then
  260.                 T[str][1] = T.GO(Target:GetEntry(),x+T[str][2],y,z,o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  261.                 T.RFW(Target, str)
  262.             elseif(intid == 5) then
  263.                 T[str][1] = T.GO(Target:GetEntry(),x,y-T[str][2],z,o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  264.                 T.RFW(Target, str)
  265.             elseif(intid == 6) then
  266.                 T[str][1] = T.GO(Target:GetEntry(),x-T[str][2],y,z,o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  267.                 T.RFW(Target, str)
  268.             elseif(intid == 7) then
  269.                 T[str][1] = T.GO(Target:GetEntry(),x,y+T[str][2],z,o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  270.                 T.RFW(Target, str)
  271.             end
  272.             if(T[str][3]) then
  273.                 pPlayer:SetPosition(pPlayer:GetX(), pPlayer:GetY(), pPlayer:GetZ(), 0)
  274.             end
  275.         end
  276.     elseif(intid == 8) then
  277.         if(T.IsGO(T[str][1])) then
  278.             local Target = T[str][1]
  279.             local x,y,z,o = Target:GetLocation()
  280.             T[str][1] = T.GO(Target:GetEntry(),x,y,z+T[str][2],o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  281.             T.RFW(Target, str)
  282.         else
  283.             pPlayer:SendBroadcastMessage("non-existing unit")
  284.         end
  285.     elseif(intid == 9) then
  286.         if(T.IsGO(T[str][1])) then
  287.             local Target = T[str][1]
  288.             local x,y,z,o = Target:GetLocation()
  289.             T[str][1] = T.GO(Target:GetEntry(),x,y,z-T[str][2],o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  290.             T.RFW(Target, str)
  291.         else
  292.             pPlayer:SendBroadcastMessage("non-existing unit")
  293.         end
  294.     elseif(intid == 12) then
  295.         if(T.IsGO(T[str][1])) then
  296.             local Target = T[str][1]
  297.             local x,y,z,o = Target:GetLocation()
  298.             T[str][1] = T.GO(Target:GetEntry(),x,y,z,o,Target:GetScale()+T[str][2],Target:GetPhase(),pPlayer,Target)
  299.             T.RFW(Target, str)
  300.         else
  301.             pPlayer:SendBroadcastMessage("non-existing unit")
  302.         end
  303.     elseif(intid == 13) then
  304.         if(T.IsGO(T[str][1])) then
  305.             local Target = T[str][1]
  306.             if(Target:GetScale()-T[str][2] > 0.1) then
  307.                 local x,y,z,o = Target:GetLocation()
  308.                 T[str][1] = T.GO(Target:GetEntry(),x,y,z,o,Target:GetScale()-T[str][2],Target:GetPhase(),pPlayer,Target)
  309.                 T.RFW(Target, str)
  310.             end
  311.         else
  312.             pPlayer:SendBroadcastMessage("non-existing unit")
  313.         end
  314.     elseif(intid == 15) then
  315.         if(T[str][3]) then
  316.             T[str][3] = false
  317.         else
  318.             T[str][3] = true
  319.             pPlayer:SetPosition(pPlayer:GetX(), pPlayer:GetY(), pPlayer:GetZ(), 0)
  320.         end
  321.     elseif(intid == 100) then
  322.         T.SelectTarget(pUnit, pPlayer, true)
  323.         return
  324.     elseif(intid == 16) then
  325.         if(T.IsGO(T[str][1])) then
  326.             local Target = T[str][1]
  327.             pPlayer:Teleport(Target:GetMapId(), Target:GetX(), Target:GetY(), Target:GetZ(), Target:GetO())
  328.             T.SelectTarget(pUnit, pPlayer, true)
  329.             return
  330.         else
  331.             pPlayer:SendBroadcastMessage("non-existing unit")
  332.             T.SelectTarget(pUnit, pPlayer, true)
  333.             return
  334.         end
  335.     elseif(intid == 10) then
  336.         if(T.IsGO(T[str][1])) then
  337.             local Target = T[str][1]
  338.             local x,y,z,o = Target:GetLocation()
  339.             T[str][1] = T.GO(Target:GetEntry(),x,y,z,o-T[str][2],Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  340.             T.RFW(Target, str)
  341.         else
  342.             pPlayer:SendBroadcastMessage("non-existing unit")
  343.         end
  344.     elseif(intid == 11) then
  345.         if(T.IsGO(T[str][1])) then
  346.             local Target = T[str][1]
  347.             local x,y,z,o = Target:GetLocation()
  348.             T[str][1] = T.GO(Target:GetEntry(),x,y,z,o+T[str][2],Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  349.             T.RFW(Target, str)
  350.         else
  351.             pPlayer:SendBroadcastMessage("non-existing unit")
  352.         end
  353.     elseif(intid == 17) then
  354.         if(T.IsGO(T[str][1])) then
  355.             local Target = T[str][1]
  356.             local x,y,z,o = Target:GetLocation()
  357.             T[str][1] = T.GO(Target:GetEntry(),x,y,pPlayer:GetZ(),o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  358.             T.RFW(Target, str)
  359.         else
  360.             pPlayer:SendBroadcastMessage("non-existing unit")
  361.         end
  362.     elseif(intid == 18) then
  363.         if(T.IsGO(T[str][1])) then
  364.             local Target = T[str][1]
  365.             local x,y,z,o = Target:GetLocation()
  366.             T[str][1] = T.GO(Target:GetEntry(),x,y,z,pPlayer:GetO(),Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  367.             T.RFW(Target, str)
  368.         else
  369.             pPlayer:SendBroadcastMessage("non-existing unit")
  370.         end
  371.     elseif(intid == 19) then
  372.         if(T.IsGO(T[str][1])) then
  373.             local Target = T[str][1]
  374.             local x,y,z,o = Target:GetLocation()
  375.             T[str][1] = T.GO(Target:GetEntry(),pPlayer:GetX(),y,z,o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  376.             T.RFW(Target, str)
  377.         else
  378.             pPlayer:SendBroadcastMessage("non-existing unit")
  379.         end
  380.     elseif(intid == 20) then
  381.         if(T.IsGO(T[str][1])) then
  382.             local Target = T[str][1]
  383.             local x,y,z,o = Target:GetLocation()
  384.             T[str][1] = T.GO(Target:GetEntry(),x,pPlayer:GetY(),z,o,Target:GetScale(),Target:GetPhase(),pPlayer,Target)
  385.             T.RFW(Target, str)
  386.         else
  387.             pPlayer:SendBroadcastMessage("non-existing unit")
  388.         end
  389.     elseif(intid == 21) then
  390.         if(T[str][4]) then
  391.             T[str][4] = false
  392.         else
  393.             T[str][4] = true
  394.         end
  395.     elseif(intid == 101) then --  Favourites / used list
  396.         if(not T[str][5] or T[str][5] < 1) then
  397.             T[str][5] = 0
  398.         end
  399.         local Page = T[str][5]
  400.         pUnit:GossipCreateMenu(100, pPlayer, 0)
  401.         local Count = T.Count(Page)
  402.         local Max, Next = T.Max(Count, #T.Used[str])
  403.         for i = Count, Max do
  404.             pUnit:GossipMenuAddItem(4, (T.Used[str][i][1]).." Entry: "..(T.Used[str][i][2]), 500+i, 0, '', 0)
  405.         end
  406.         if(Next) then
  407.             pUnit:GossipMenuAddItem(7, "Next page", 490, 0, '', 0)
  408.         end
  409.         if(Page > 0) then
  410.             pUnit:GossipMenuAddItem(7, "Previous page", 491, 0, '', 0)
  411.         end
  412.         pUnit:GossipMenuAddItem(7, "Back..", 0, 0, '', 0)
  413.         pUnit:GossipSendMenu(pPlayer)
  414.         return
  415.     elseif(intid >= 500) then
  416.         local Target = pPlayer
  417.         local x,y,z,o = Target:GetLocation()
  418.         local Sel = T.GO(T.Used[str][intid-500][2],x,y,z,o,1,Target:GetPhase(),pPlayer)
  419.         if (Sel == nil) then
  420.             pPlayer:SendBroadcastMessage("non-existing unit")
  421.         else
  422.             T[str][1] = Sel
  423.             T.SaveUsed(Sel, str)
  424.         end
  425.     elseif(intid == 61) then
  426.         local Target = T[str][1]
  427.         if(T.IsGO(T[str][1])) then
  428.             local x,y,z,o = Target:GetLocation()
  429.             T[str][1] = T.GO(Target:GetEntry(),x,y,z,o,Target:GetScale(),Target:GetPhase(),pPlayer)
  430.             pPlayer:SendBroadcastMessage(T[str][1]:GetName().." copied")
  431.             T.SaveUsed(Target, str)
  432.         else
  433.             pPlayer:SendBroadcastMessage("non-existing unit")
  434.         end
  435.     elseif(intid == 62) then
  436.         local Sel = T.GO(T.Last[str][1],T.Last[str][2],T.Last[str][3],T.Last[str][4],T.Last[str][5],T.Last[str][6],T.Last[str][7],pPlayer)
  437.         if (Sel == nil) then
  438.             pPlayer:SendBroadcastMessage("non-existing unit")
  439.         else
  440.             T[str][1] = Sel
  441.         end
  442.     elseif(intid == 490) then
  443.         T[str][5] = T[str][5] + 1
  444.         T.Select(pUnit, e, pPlayer, id, 101)
  445.         return
  446.     elseif(intid == 491) then
  447.         T[str][5] = T[str][5] - 1
  448.         T.Select(pUnit, e, pPlayer, id, 101)
  449.         return
  450.     -- elseif(intid == 0) then
  451.     end
  452.     if(T.IsGO(T[str][1])) then
  453.         local x,y,z,o = T[str][1]:GetLocation()
  454.         T.Last[str] = {T[str][1]:GetEntry(),x,y,z,o,T[str][1]:GetScale(), T[str][1]:GetPhase()}
  455.     end
  456.     T.GetMenu(pUnit, e, pPlayer, pMisc, intid)
  457. end
  458.  
  459. RegisterItemGossipEvent(ITEM_ENTRY, 1, T.GetMenu)
  460. RegisterItemGossipEvent(ITEM_ENTRY, 2, T.Select)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement