如何将同名的所有零件(对象)传送到我的角色?

时间:2019-02-22 08:26:41

标签: lua roblox

所以我有这个脚本可以传送“ Object1.Object1 ”,“ Object1.Object2 ”。和“ Object3.Object3 ”,但是在其父级“ Spawns ”中有数十个“ Object1.Object1 ”完全一样的名字。

我该如何对脚本进行移植,以使其每个 Object1.Object1 ”,“ Object2.Object2 ”,和“ Object3.Object3 ”添加到我的角色,而不只是第一个角色,这就是当前的角色?

while true do
function teleport ()
game.Workspace.Spawns.Object1.Object1.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
game.Workspace.Spawns.Object2.Object2.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
game.Workspace.Spawns.Object3.Object3.CFrame = game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame
    end
pcall( teleport )
wait()
end

1 个答案:

答案 0 :(得分:1)

这是一个简单的场景。如果您想传送一切,我首先要做的是,将您想传送的所有对象分离到一个Directroy中,可能是game.ServerStorage之类。然后,我将执行以下操作:

game:GetService("RunService").RenderStepped:connect(function()
    local objects = game.ServerStorage.Objects:GetChildren()
    for i = 1,#objects do
        if objects[i]:IsA("BasePart") then
            objects[i].Parent = workspace
            objects[i].CFrame = CFrame.new(player.Character.HumanoidRootPart.Position)
        end
    end
end)

现在,因为您的确切情况会有些棘手,因为它不是很好地性高潮,但是如果您不想更改任何内容,我会做的是这个(请注意,我没有访问权限目前无法访问Roblox Studio,因此它可能无法正常运行,但我会对其进行测试,以便为您提供更好的响应):

 game:GetService("RunService").RenderStepped:connect(function()
    local objects = game.Workspace.Spawns:GetChildren()
    for i = 1,#objects do
        if objects[i]:IsA("BasePart") then
            if string.sub(objects[i].Name,1,6) == "Object" then
                local child = objects[i]:GetChildren()
                for b = 1,#child do
                    if child[b] then
                        child[b].CFrame = CFrame.new(game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame.p)
                    end
                end
            end
        end
    end
end)