Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to stop MoveToFinished before it's finished?

Asked by 6 years ago

So this works fine, the only problem I'm having is that the NPC has to finish 100% before going to a new point. This is a pretty big issue.

So my question is how can I stop MoveToFinished before it's finished, is there a way to cancel it out and start over if the player has moved positions and there is a new endpoint?

There aren't too many examples on the new PathfindingService and this is the first time I've used it.

local PathfindingService = game:GetService("PathfindingService")

function find(pos)
    local dis = 10000
    local tor = nil
    for i,v in pairs(game.Players:GetPlayers()) do
        if v.Character then
            if v.Character:FindFirstChild("HumanoidRootPart") and v.Character:FindFirstChild("Humanoid") then
                local hrp,hum = v.Character.HumanoidRootPart,v.Character.Humanoid
                if hum.Health > 0 then
                    if (hrp.Position - pos).magnitude < dis then
                        tor = hrp
                        dis = (hrp.Position - pos).magnitude
                    end
                end
            end
        end
    end
    return tor
end

while wait(.25) do
    local target = find(script.Parent.HumanoidRootPart.Position)
    if target ~= nil then
        local path = PathfindingService:FindPathAsync(script.Parent.HumanoidRootPart.Position, target.Position)
        local waypoints = path:GetWaypoints()
        for currentPoint = 1, #waypoints do
            local waypoint = waypoints[currentPoint]
            script.Parent.Humanoid:MoveTo(waypoint.Position)
            if waypoint.Action == Enum.PathWaypointAction.Jump then
                script.Parent.Humanoid.Jump = true
            end
            script.Parent.Humanoid.MoveToFinished:Wait()
        end
    end
end
0
script.Parent.Humanoid:MoveTo(script.Parent.Position) should stop the humanoid (you many need to inc an offset) and fire MoveToFinished User#5423 17 — 6y
0
i coulda sworn you could just add break and itll stop the code from running. User#19492 0 — 6y

Answer this question