我如何检查玩家是否死亡? (罗布洛克斯工作室)

How do I check for player death? (roblox studio)

我有这个脚本,我用它来控制玩家何时死于饥饿和/或口渴。当玩家没有食物或水时,我正在使用 while 语句来控制健康减少。我还有另一个 while 语句,用于在玩家小于或等于零 Health 时重置饥饿和口渴。但是当我 运行 脚本时它什么都不做。

local data = require(workspace.playerStats)
local player = script.Parent
local humanoid = player:WaitForChild("Humanoid");

data.hunger = 0
data.thirst = 0

while data.hunger or data.thirst <= 0 do
    wait(0.1)
    humanoid.Health-=1
end

while humanoid.Health <= 0 do
    data.hunger = 100
    data.thirst = 100
end

如果它很重要,我把这个脚本放在 StarterPlayer.StarterCharacterScripts

第一个 while 语句产生,不允许代码到达另一个 while 语句。使用 spawn 创建一个新线程并允许代码继续。

local data = require(workspace.playerStats)
local player = script.Parent
local humanoid = player:WaitForChild("Humanoid");

data.hunger = 0
data.thirst = 0

task.spawn(function()
    while data.hunger or data.thirst <= 0 do
        wait(0.1)
        humanoid.Health-=1
    end
end)

while humanoid.Health <= 0 do
    data.hunger = 100
    data.thirst = 100
end

为了检测死亡,我建议使用 Humanoid.Dead 事件。

我明白了。这是 I suck at everything 说的我做错了什么的混合体。在我写的 while 语句中

while data.hunger or data.thirst <= 0 do
-- code here
end

我做错的是我没有在or

两边加上<=

所以这是正确的代码

while data.hunger <= 0 or data.thirst <= do
-- code here
end