Roblox传送脚本可用,但是随机传送

我正在尝试传送玩家,但每次运行脚本时,它会将玩家传送到(使用经典风格角色)0,0,0:

Character.Torso.CFrame = CFrame.new(-7000, 3467, -2380.982 + (g * -10));
Character:SetPrimaryPartCFrame(CFrame.Angles(math.rad(0), math.rad(-90), math.rad(0)));

(g = 1,角色已经定义)

@Universal Link,我尝试了你的方法(添加更多的参数),结果得到了:

Character.Torso.CFrame = CFrame.new(Character.Torso.Position, Vector3.new(-10000, 30467, -2380.982 + (g * -10)));
Character:SetPrimaryPartCFrame(CFrame.Angles(math.rad(0), math.rad(-90), math.rad(0)));

然而,角色仍然被传送到0,0,0。我试着通过将第二行代码注释来删除它:

Character.Torso.CFrame = CFrame.new(Character.Torso.Position, Vector3.new(-10000, 30467, -2380.982 + (g * -10)));
--Character:SetPrimaryPartCFrame(CFrame.Angles(math.rad(0), math.rad(-90), math.rad(0)));

但是,这时角色就不会被传送到任何地方了。还有,你说的CFrame引用是什么意思?

点赞
用户10450122
用户10450122

可能有几个问题在这里...

1: 在你的第一条语句(第一行)中,你没有为 CFrame 提供足够的参数。请考虑一下 Roblox Wiki 上的这条语句:

game.Workspace.Part.CFrame = CFrame.new(Workspace.Part.Position, Vector3.new(0, 75, 75))

Vector3 允许 Lua 引擎知道你想要在工作区的任何地方三维移动对象。否则,Lua 引擎会忽略你在末尾放置的任何内容,并将零件移动到游戏中心(因为它不知道该做什么)。

2: 脚本可能没有直接引用 CFrame。在我动画工作区内的零件的经验中,我需要引用 CFrame。你可以通过从 serviceprovider 调用函数来实现这一点。

请查看 Wiki 了解更多信息: http://wiki.roblox.com/index.php?title=CFrame#Quick_Reference

2018-10-22 07:49:45