如何在 Roblox Studio 中制作可以改变您的团队的零件

How to make a part that changes your team in Roblox Studio

我正在努力做到当你在我的 Roblox 游戏中重生时,你在一个房间里。如果你穿过其中一扇门,它会传送你并改变你的团队。到目前为止,这是我的代码:

function onTouched(m)
    p = m.Parent:findFirstChild("Humanoid")
    if p ~= nil then
        p.Torso.CFrame = CFrame.new(0,8,9) --Change to coordinates.
    end
end
script.Parent.Touched:connect(onTouched)

我制作它是为了让它可以传送你,但我不知道如何制作它所以它也会改变你的团队。这是我的团队

当您第一次加入时,您是 Citizen 团队的一员。当你穿过门时,你会去城堡队。

有谁知道如何进行这项工作?

您可以使用'GetPlayerFromCharacter'功能,然后从那里更改玩家的球队

function onTouched(m)
    p = m.Parent:FindFirstChildOfClass("Humanoid")
    if p ~= nil and p:FindFirstChild("Torso") then
        p.Torso.CFrame = CFrame.new(0,8,9) --Change to coordinates.

        if game.Players:GetPlayerFromCharacter(m.Parent) ~= nil then
            game.Players:GetPlayerFromCharacter(m.Parent).Team = game.Teams["Castle Team"] --Change to desired team.
        end
    end
end
script.Parent.Touched:connect(onTouched)

编辑:Taazar 的脚本更好,请用那个代替我的

在我开始介绍团队更改器之前,您应该注意更改玩家 "Torso" 的 CFrame 会杀死他们。相反,您应该更改名为 "HumanoidRootPart" 的部分的 CFrame,该部分在角色中排序并且与玩家的 "Torso".

具有相同的位置

另一点是,当创建一个只有三个坐标的新 CFrame 位置时,您需要将其从 Vector3 转换而来。所以按照所有你的传送线将变成:

p.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(0,8,9))

然后,对于更改团队,我会查看 Crabway 的回答,因为我没有发现团队更改部分有任何问题。因此,您的最终结果代码将如下所示:

function onTouched(m)
    p = m.Parent:FindFirstChildOfClass("Humanoid")
    if p ~= nil and p:FindFirstChild("Torso") then
        p.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(0,8,9)) --Change to coordinates.

        if game.Players:GetPlayerFromCharacter(m.Parent) ~= nil then
            game.Players:GetPlayerFromCharacter(m.Parent).Team = game.Teams["Castle Team"] --Change to desired team.
        end
    end
end
script.Parent.Touched:connect(onTouched)

不写代码的解决方法:

在您的初始房间放置 2 个 SpawnLocations。 像这样设置第一个 SpawnLocation 的属性:

  • AllowTeamChangeOnTouch: true
  • 中性:错误
  • TeamColor: Red(根据你的队伍颜色设置)

第二个 SpawnLocation 如下:

  • AllowTeamChangeOnTouch: true
  • 中性:错误
  • TeamColor:Blue(根据您的团队颜色设置)

在资源管理器 (Roblox Studio Explorer) 的 TEAMS 文件夹中,将您的两个团队 "AutoAssignable" 设置为 FALSE

将这些 SpawnLocations 放在你的 2 个门前,这样玩家在进门之前必须触摸它们(踩在上面)。

工作原理:

如果有新玩家加入游戏,他会出现在你房间的中央,同时他还没有分配团队。

然后他必须走过你的一个 SpawnLocations,这会为他分配一个团队(取决于他踩到哪个 SpawnLocation)。

之后他就可以继续到门口了

下一次该玩家重生到游戏中(在他死后)。他将直接在他的团队的 SpawnLocation 上生成,并且可以直接进入门。