So what I'm trying to create here is that the dummy will generate blood parts while walking to the waypoint, after 100 seconds it destroys it, and then after 10 seconds it will bring back the blood parts again, but that's just one of the few things I want the script to do. Here's all of them.
What I'm trying to achieve: 1. Print the time of a waypoint completed by using os.time but I don't know how to end the os time when the humanoid already finished 2. Humanoid will change state to climbing when there's a truss part 3. Print finished and then after a few seconds, It will print that the humanoid is already finished 4. Cframing if not completed on the variable cframe time.
Code:
local pathfindingService = game:GetService("PathfindingService") local Finished = false local humanoid = script.Parent.Humanoid local body = script.Parent:FindFirstChild("HumanoidRootPart") or script.Parent:FindFirstChild("Torso") local destination = game.Workspace.Destination.Position local path = pathfindingService:CreatePath() local root = script.Parent:FindFirstChildWhichIsA("HumanoidRootPart") local timecframe = 200 path:ComputeAsync(body.Position, destination) local waypoints = path:GetWaypoints() for i, v in pairs(waypoints) do local waypointpart = Instance.new("Part", workspace) waypointpart.Color = BrickColor.new("Really red") waypointpart.Size = Vector3.new(math.random(1, 6),math.random(1, 4),math.random(1, 2)) waypointpart.Transparency = 0.88 waypointpart.Anchored = true waypointpart.CanCollide = true wait(100) waypointpart:Destroy() wait(10) waypointpart(workspace) end for _, waypoint in pairs(waypoints) do humanoid:MoveTo(waypoint.Position) if waypoint.Action == Enum.PathWaypointAction.Jump then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end if waypoint.Action == Enum.PathWaypointAction.Climbing then humanoid:ChangeState(Enum.HumanoidChangeState.Climbing) end humanoid.MoveToFinished:Wait() destination.Touch:Connect(function(hit) local finished = hit and script.Parent.HumanoidRootPart.Position == destination.Position if wait(timecframe) and not finished(script.Parent.HumanoidRootPart) then root.CFrame = destination.CFrame else if finished(script.Parent.HumanoidRooPart) then print('Finished Destination') wait(10) Finished = true while Finished == true do task.wait(1) print(script.Parent.Name" Already Finished Waypoint!") end while Finished == false do task.wait(1) print(os.clock() - os.clock()," "..script.Parent.Name.." is still trying to pathfind waypoint.") end end end end) end