Lua Roblox 如何将特定玩家的生命值设置为 0

Lua Roblox How to set spicific players health to 0

我正在尝试在 Roblox 中制作一款游戏,让每个玩家都出现在地图上,他们必须尝试互相残杀。但是我的问题是当最后一个玩家离开时我不知道如何在我的大厅中重生他。我将游戏中的所有玩家都存储在一个数组中,一旦有人死亡,他们就会从数组中移除。我已经尝试将最后一个玩家的生命值设置为 0,但无论玩家以何种方式存储在数组中,都无法获得他们的类人动物。

到目前为止,这是我的代码:

if #plrs == 1 then
    plrs[1].Character.Humanoid.Health = 0
end

我正在制作我的 plrs 数组:

local plrs = {}

for i, player in pairs(game.Players:GetPlayers()) do
    if player then
        table.insert(plrs,player) --Add each player to the Player array
    end
end

感谢您的帮助。

您这里有一个标准的索引错误。在代码中,您总是从 0 开始计数,而您实际上是在请求数组中的 (plrs[1]) second 项。只需将您的代码更改为:

if #plrs == 1 then
    plrs[0].Character.Humanoid.Health = 0
end

我建议使用 player:LoadCharacter() 强制生成新的玩家角色。这种方法的优点是不会显示死亡画面,而是会破坏旧角色并在之后立即生成新角色。

您应该注意,此方法还将清除他们的背包和 playerGui,以防万一它们对您的游戏很重要。


作为旁注,不需要使用 for 循环来获取玩家作为函数 game.Players:GetPlayers() returns 数组,因为它已经是。除非您要对该循环中的玩家进行额外检查,否则您只需要这样做:

local plrs = game.Players:GetPlayers()

谢谢大家的帮助。

经过大量研究和阅读我的代码后,我发现了我自己的问题。

if #plrs == 1 then
    player.Character.Humanoid.Health = 0
end