Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- script.Parent.PrimaryPart:SetNetworkOwner(nil)
- local RunS = game:GetService('RunService')
- local PFS = game:GetService('PathfindingService')
- --local debris = game:GetService("Debris")
- local bot = script.Parent -- bot stuff
- local bhum = bot:WaitForChild('Humanoid')
- local bhrp = bot:WaitForChild('HumanoidRootPart')
- local findPath = PFS:CreatePath({WaypointSpacing = math.huge})
- local actPath = PFS:CreatePath({WaypointSpacing = math.huge})
- local followedChar -- the one we are already following
- local char -- the one which we follow
- local function nearestChar()
- while wait() do
- local nearChar, nearDist = nil, nil
- local distance
- local firstPos
- for i,v in pairs(workspace:GetChildren()) do
- if v:FindFirstChild('Humanoid') and v ~= bot and not (v:FindFirstChild('Nextbot') or v:FindFirstChild('NPC')) and v.Humanoid.Health > 0 and v:FindFirstChild('HumanoidRootPart') then
- findPath:ComputeAsync(bhrp.Position, v.HumanoidRootPart.Position)
- if findPath.Status == Enum.PathStatus.Success then
- distance = 0
- for i,waypoint in ipairs(findPath:GetWaypoints()) do
- if i ~= 1 then
- distance = distance + (waypoint.Position - firstPos).Magnitude
- end
- firstPos = waypoint.Position
- end
- if nearDist == nil then
- nearDist = distance
- nearChar = v
- else
- if distance < nearDist then
- nearDist = distance
- nearChar = v
- end
- end
- end
- end
- end
- char = nearChar
- end
- end
- spawn(nearestChar)
- local count = 0
- RunS.Heartbeat:Connect(function()
- if count >= 3 then
- count = 0
- if char ~= nil and char:FindFirstChild('HumanoidRootPart') then
- actPath:ComputeAsync(bhrp.Position, char.HumanoidRootPart.Position)
- for i,v in ipairs(actPath:GetWaypoints()) do
- if i ~= 1 then
- bhum:MoveTo(v.Position)
- bhum.MoveToFinished:Wait()
- end
- end
- end
- else
- count = count + 1
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment