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

I was wondering where I should put these scripts In my pathfinding script?

Asked by 2 years ago

Earlier (In yesterday In Nevada Time) I asked a question on how to modify the pathfinding script so It targets players but not you, basically like a dog tool that summons a dog that defends you, currently I got my answer but I don't where where I should place It

Script:

local NPC = script.Parent
local Pathfinding = game:GetService("PathfindingService")
local player

game.Players.PlayerAdded:Connect(function(client)
    player = client
end)

repeat wait() until player ~= nil

while wait() do
    local path = Pathfinding:CreatePath()

    path:ComputeAsync(NPC.Torso.Position, player.Character.PrimaryPart.Position)

    if path.Status == Enum.PathStatus.Success then

        local Positions = path:GetWaypoints()

        for i,v in pairs(Positions) do

            local position = Instance.new("Part")

            position.Parent = game.Workspace

            position.Size = Vector3.new(1,1,1)

            position.Position = v.Position

            position.Transparency = 1

            NPC.Humanoid:MoveTo(position.Position)

            NPC.Humanoid.MoveToFinished:Wait(2)

            position:Destroy()

        end

    end
end

The Script I should place It:

Script 1: I think this Is used to detect If the dog/Defensive NPC Is Its owner or not

if torso == thisplayerstorso then return end 

Script 2:

local Creator = script.Parent.Creator
function GetPlayerNames()
    local players = game:GetService('Players'):GetChildren()
    local name = nil
    for _, v in pairs(players) do
        if v:IsA'Player' then
            name = tostring(v.Name)
        end
    end
    return name
end
function GetTorso(part)
    local chars = game.Workspace:GetChildren()
    local torso = nil
    for _, v in pairs(chars) do
        if v:IsA'Model' and v ~= script.Parent and v.Name == GetPlayerNames() and not v.Name == Creator.Value then
            local charRoot = v:FindFirstChild'HumanoidRootPart'
            if (charRoot.Position - part).magnitude < SearchDistance then
                torso = charRoot
            end
        end
    end
    return torso
end
while wait() do
    local path = Pathfinding:CreatePath()

    path:ComputeAsync(NPC.Torso.Position, GetTorso(NPC.Torso.Position))

    if path.Status == Enum.PathStatus.Success then

        local Positions = path:GetWaypoints()

        for i,v in pairs(Positions) do

            local position = Instance.new("Part")

            position.Parent = game.Workspace

            position.Size = Vector3.new(1,1,1)

            position.Position = v.Position

            position.Transparency = 1

            NPC.Humanoid:MoveTo(position.Position)

            NPC.Humanoid.MoveToFinished:Wait(2)

            position:Destroy()

        end

    end
end
0
this should be placed inside of the dog/npc and the Creator is the dog/npc spawner's name Puppynniko 1059 — 2y
0
I don't get It, can you just simply add all of these together? imnotaguest1121 362 — 2y

Answer this question