我试图让玩家传送到地图上的某些物体,但是那根本不能!
我不知道该怎么做
local items = {"Coal Chunk Tool", "Diamon Tool", "Iron Ingot Tool",
"RokakakaFruit Tool", "Gold Ingot Tool"}
for _, v in pairs(game.Workspace:GetChildren()) do
for _, d in pairs(items) do
if v.Name == d then
wait(1)
game.Players.LocalPlayer.Character:MoveTo(v.Position)
print("tped")
end
end
end
我的播放器不动
答案 0 :(得分:1)
在不查看其余代码的情况下,MoveTo函数将仅尝试使您的播放器在那走过去。您要做的就是更改玩家角色的CFrame。
game.Players.LocalPlayer.Character.Head.CFrame = CFrame.new(v.Position)
答案 1 :(得分:1)
使用:MoveTo()
方法时,应注意以下几点(以防其他人混淆了您):
:MoveTo()
将导致玩家的角色朝其给定的目的地行走:MoveTo()
将传送玩家的角色然后要传送他们的角色,您将必须在他们的角色模型上调用此方法。此外,无需将第二个for
循环嵌套在第一个循环中。只需检查表中的给定值即可。
local items = {"Coal Chunk Tool", "Diamon Tool", "Iron Ingot Tool", "RokakakaFruit Tool", "Gold Ingot Tool"}
for _, v in pairs(game.Workspace:GetChildren()) do
if items[v.Name] then
wait(1)
game.Players.LocalPlayer.Character:MoveTo(v.Position)
print("tped")
end
end
答案 2 :(得分:1)
尝试使用CFrame移动播放器,我们将需要使用HumanoidRootPart,以便它移动身体的其余部分!
查看此脚本是否有所不同;
local items = {"Coal Chunk Tool", "Diamon Tool", "Iron Ingot Tool",
"RokakakaFruit Tool", "Gold Ingot Tool"}
for _, v in pairs(game.Workspace:GetChildren()) do
for _, d in pairs(items) do
if v.Name == d then
wait(1)
game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = v.CFrame
print("tped")
end
end
end
如果您需要任何帮助,请在评论部分中发布问题。
罗斯。