所以我有这个脚本可以传送“ 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
答案 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)