Advertisement
Mordred

Move Path

Sep 9th, 2011
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.63 KB | None | 0 0
  1. --[[
  2. --------------------------------------
  3. ........Move Path..Build 1.1..........
  4. ..........Script by Mordred...........
  5. ______________________________________
  6. requires: LCF.........................
  7. --------------------------------------
  8. ]]
  9.  
  10.  
  11. --[[   How to register.
  12.  
  13. local PathIDs = {
  14. [1] = {x,y,z,delay,flag[,function called, delayed function]},
  15. [2] = {...},
  16. ...
  17. [9] = {...},
  18. [10] = {x,y,z,delay,Restartflag[,function called]}}
  19. MovePath.StartPath(Unit, PathIDs)
  20.  
  21. ]]
  22. -- Flags: 0=Walk; 1=Run; 2=Fly (bugged, never lands again)
  23. -- Restartflag: false/true
  24.  
  25.  
  26. local MovePath = {MPflag = {[0] = 0.39, [1] = 0.172, [2] = 0.13}}
  27.  
  28. function MovePath.StartPath(Unit, Table)
  29.     local x = Table[1][1]; local y = Table[1][2]; local z = Table[1][3]
  30.     Unit:SetMovementFlags(Table[1][5])
  31.     Unit:MoveTo(x,y,z,0)
  32.     local rTime = ((Unit:CalcToDistance(x,y,z)*MovePath.MPflag[Table[1][5]])*1000) - ((Unit:CalcToDistance(x,y,z)*80) - (Unit:CalcToDistance(x,y,z)*5))
  33.     if rTime < 1 then
  34.         MovePath.PathPoints(Unit, Table, 1)
  35.     else
  36.         LCF:RegisterLuaEvent(tostring(Unit),MovePath.PathPoints,rTime,1, Unit, Table, 1)
  37.     end
  38. end
  39.  
  40. function MovePath.PathPoints(Unit, Table, PathNum)
  41.     if (Table[PathNum][6]~=nil) then
  42.         _G[Table[PathNum][6]](Unit, PathNum)
  43.     end
  44.     if (PathNum<table.getn(Table)) and Unit:IsInWorld() then
  45.         if (Table[PathNum][4]~=0) then
  46.             LCF:RegisterLuaEvent(tostring(Unit),MovePath.DelayMove,Table[PathNum][4],1, Unit, Table, PathNum)
  47.         else
  48.             Unit:SetMovementFlags(Table[PathNum][5])
  49.             local x = Table[PathNum+1][1]; local y = Table[PathNum+1][2]; local z = Table[PathNum+1][3]
  50.             Unit:MoveTo(x,y,z,0)
  51.             local rTime = ((Unit:CalcToDistance(x,y,z)*MovePath.MPflag[Table[PathNum][5]])*1000) - ((Unit:CalcToDistance(x,y,z)*80) - (Unit:CalcToDistance(x,y,z)*5))
  52.             if rTime < 1 then
  53.                 MovePath.PathPoints(Unit, Table, PathNum+1)
  54.             else
  55.                 LCF:RegisterLuaEvent(tostring(Unit),MovePath.PathPoints,rTime,1, Unit, Table, PathNum+1)
  56.             end
  57.         end
  58.     elseif Table[PathNum][5] then
  59.         MovePath.StartPath(Unit, Table)
  60.     end
  61. end
  62.  
  63. function MovePath.DelayMove(Unit,Table,PathNum)
  64.     if (Table[PathNum][7]~=nil) then
  65.         _G[Table[PathNum][7]](Unit, PathNum)
  66.     end
  67.     Unit:SetMovementFlags(Table[PathNum][5])
  68.     local x = Table[PathNum+1][1]; local y = Table[PathNum+1][2]; local z = Table[PathNum+1][3]
  69.     Unit:MoveTo(x,y,z,0)
  70.     local rTime = ((Unit:CalcToDistance(x,y,z)*MovePath.MPflag[Table[PathNum][5]])*1000) - ((Unit:CalcToDistance(x,y,z)*80) - (Unit:CalcToDistance(x,y,z)*5))
  71.     if rTime < 1 then
  72.         MovePath.PathPoints(Unit, Table, PathNum+1)
  73.     else
  74.         LCF:RegisterLuaEvent(tostring(Unit),MovePath.PathPoints,rTime,1, Unit, Table, PathNum+1)
  75.     end
  76. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement