Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- --------------------------------------
- ........Move Path..Build 1.1..........
- ..........Script by Mordred...........
- ______________________________________
- requires: LCF.........................
- --------------------------------------
- ]]
- --[[ How to register.
- local PathIDs = {
- [1] = {x,y,z,delay,flag[,function called, delayed function]},
- [2] = {...},
- ...
- [9] = {...},
- [10] = {x,y,z,delay,Restartflag[,function called]}}
- MovePath.StartPath(Unit, PathIDs)
- ]]
- -- Flags: 0=Walk; 1=Run; 2=Fly (bugged, never lands again)
- -- Restartflag: false/true
- local MovePath = {MPflag = {[0] = 0.39, [1] = 0.172, [2] = 0.13}}
- function MovePath.StartPath(Unit, Table)
- local x = Table[1][1]; local y = Table[1][2]; local z = Table[1][3]
- Unit:SetMovementFlags(Table[1][5])
- Unit:MoveTo(x,y,z,0)
- 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))
- if rTime < 1 then
- MovePath.PathPoints(Unit, Table, 1)
- else
- LCF:RegisterLuaEvent(tostring(Unit),MovePath.PathPoints,rTime,1, Unit, Table, 1)
- end
- end
- function MovePath.PathPoints(Unit, Table, PathNum)
- if (Table[PathNum][6]~=nil) then
- _G[Table[PathNum][6]](Unit, PathNum)
- end
- if (PathNum<table.getn(Table)) and Unit:IsInWorld() then
- if (Table[PathNum][4]~=0) then
- LCF:RegisterLuaEvent(tostring(Unit),MovePath.DelayMove,Table[PathNum][4],1, Unit, Table, PathNum)
- else
- Unit:SetMovementFlags(Table[PathNum][5])
- local x = Table[PathNum+1][1]; local y = Table[PathNum+1][2]; local z = Table[PathNum+1][3]
- Unit:MoveTo(x,y,z,0)
- 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))
- if rTime < 1 then
- MovePath.PathPoints(Unit, Table, PathNum+1)
- else
- LCF:RegisterLuaEvent(tostring(Unit),MovePath.PathPoints,rTime,1, Unit, Table, PathNum+1)
- end
- end
- elseif Table[PathNum][5] then
- MovePath.StartPath(Unit, Table)
- end
- end
- function MovePath.DelayMove(Unit,Table,PathNum)
- if (Table[PathNum][7]~=nil) then
- _G[Table[PathNum][7]](Unit, PathNum)
- end
- Unit:SetMovementFlags(Table[PathNum][5])
- local x = Table[PathNum+1][1]; local y = Table[PathNum+1][2]; local z = Table[PathNum+1][3]
- Unit:MoveTo(x,y,z,0)
- 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))
- if rTime < 1 then
- MovePath.PathPoints(Unit, Table, PathNum+1)
- else
- LCF:RegisterLuaEvent(tostring(Unit),MovePath.PathPoints,rTime,1, Unit, Table, PathNum+1)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement