Roblox传送脚本工作正常,但随机传送

时间:2018-10-21 20:33:13

标签: lua 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)));

但是角色不会被传送到任何地方。另外,用serviceprovider引用CFrame是什么意思?

1 个答案:

答案 0 :(得分:0)

这里可能发生了几件事...

1: 在第一条语句(第1行)中,您没有为CFrame提供足够的参数。考虑到Roblox Wiki上的以下声明:

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

Vector3允许Lua引擎知道您要在工作空间中的任意位置3维移动对象。否则,Lua引擎将忽略您在最后放置的内容,而只是将零件移动到游戏中心(因为它不知道该怎么办)。

2: 该脚本可能未直接引用CFrame。以对工作区中的零件进行动画处理的经验,我需要引用CFrame。您可以通过从serviceprovider调用函数来做到这一点。

有关更多信息,请参阅Wiki: http://wiki.roblox.com/index.php?title=CFrame#Quick_Reference