Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Droid = script.Parent.Parent
- PFS = game:GetService('PathfindingService')
- Debris = game:GetService('Debris')
- local currentPath
- local function FollowPath(path)
- local distance
- for i, v in pairs(coordinates) do
- repeat
- if path ~= currentPath then
- break
- end
- distance = (v - Droid.Head.Position).magnitude
- wait()
- until distance < 2
- end
- end
- while wait(2.8) do
- path = PFS:ComputeSmoothPathAsync(Droid.Head.Position, Droid.Head.PathTarget.Position, 512)
- currentPath = path
- coordinates = currentPath:GetPointCoordinates()
- for i,v in pairs(coordinates) do
- local Part = Instance.new("Part", Droid.Head)
- Part.CFrame=CFrame.new(v)
- Part.Transparency = 0
- Part.Color = Color3.new(0.2, 0, 1)
- Part.Size = Vector3.new(1, 1, 1)
- Part.Anchored = true
- Part.CanCollide = false
- Part.Locked = true
- Part.Name = 'Path'
- Part.Touched:connect(function(hit)
- Part:Destroy()
- end)
- if path.Status == Enum.PathStatus.Success then
- Part.Color = Color3.new(0, 1, 0) -- green
- elseif path.Status == Enum.PathStatus.ClosestNoPath then
- Part.Color = Color3.new(1, 0, 0) -- red
- elseif path.Status == Enum.PathStatus.ClosestOutOfRange then
- Part.Color = Color3.new(0.5, 0.75, 0) -- yellow
- elseif path.Status == Enum.PathStatus.FailStartNotEmpty then
- Part.Color = Color3.new(0.5, 0, 0.5) -- purple
- elseif path.Status == Enum.PathStatus.FailFinishNotEmpty then
- Part.Color = Color3.new(0.5, 0, 0.5) -- purple
- end
- Debris:AddItem(Part, 20.8)
- end
- FollowPath(path)
- end
- for i, v in pairs(coordinates) do
- Droid.Humanoid:MoveTo(v)
- repeat
- distance = (v - Droid.Head.Position).magnitude
- wait()
- until distance < 2
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement