Roblox 脚本只能工作一次

Roblox Script only works onetimes

我正在编写一个脚本,可以改变你的团队并在你死后打开一个 Gui,但它只能工作一次。

这是我的脚本,我把它放到了ServerScriptSevice:

game:GetService('Players').PlayerAdded:connect(function(player)
player.CharacterAdded:connect(function(character)
character:WaitForChild("Humanoid").Died:connect(function()
        
 local gui = player.PlayerGui:FindFirstChild("TeamGUI"):WaitForChild("Background") 

        player.TeamColor = game.Teams:findFirstChild("Choosing").TeamColor
        
        wait(3)

        gui.Visible = true
                
        end)
    end)
end)

我不知道为什么,但只有 Teamcolor 工作了几次,而 Gui 工作了一次。

因为你的活动只有在玩家加入后才会生效

你的脚本是这样的: 玩家加入 AND 死亡然后 gui 出现

你需要做的:

玩家加入死亡

在 LocalScript 中像这样

local plr = game:GetService('Players').LocalPlayer
plr.CharacterAdded:Connect(function() -- when character loads (Player Joins or Die) your gui should appear
   local gui = player.PlayerGui:FindFirstChild("TeamGUI"):WaitForChild("Background")
   plr.TeamColor = game.Teams:findFirstChild("Choosing").TeamColor
   wait(3)
   gui.Visible = true
end)

尝试这个,如果它不起作用然后评论

在这里试试这个,它应该有效

local plr = game.Players.LocalPlayer    
local character = plr.LocalPlayer.Character or plr.LocalPlayer.CharacterAdded:Wait()

character.Humanoid.Died:Connect(function()
  local gui = plr.PlayerGui:FindFirstChild("TeamGUI"):WaitForChild("Background")
  plr.TeamColor = game.Teams:FindFirstChild("Choosing").TeamColor
  wait(3)
  gui.Visible = true
end)

基本上我所做的是设置一个事件,每当你的角色死亡时监听