Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local NPC = game.Workspace.Dummy
- local pathfinding_service = game:GetService("PathfindingService")
- function getClosestPlayer()
- local closest_player, closest_distance = nil, 200
- for i, player in pairs(workspace:GetChildren()) do
- if player:FindFirstChild("Humanoid") and player ~= NPC then
- local distance = (NPC.PrimaryPart.Position - player.PrimaryPart.Position).Magnitude
- if distance < closest_distance then
- closest_player = player
- closest_distance = distance
- end
- end
- end
- return closest_player, closest_distance
- end
- while true do
- local path = pathfinding_service:CreatePath()
- local player, distance = getClosestPlayer()
- if player and distance > 10 then
- path:ComputeAsync(NPC.HumanoidRootPart.Position, player.PrimaryPart.Position)
- local waypoints = path:GetWaypoints()
- for _, waypoint in pairs(waypoints) do
- NPC.Humanoid:MoveTo(waypoint.Position)
- while true do
- local distance = (NPC.PrimaryPart.Position - waypoint.Position).Magnitude
- local distance_from_player = (NPC.PrimaryPart.Position - player.PrimaryPart.Position).Magnitude
- if distance < 5 then
- break
- end
- if distance_from_player < 10 then
- NPC.Humanoid:MoveTo((NPC.HumanoidRootPart.CFrame*CFrame.new(0,0,-3)).p)
- break
- end
- wait()
- end
- end
- end
- wait()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement