我如何检查玩家是否死亡? (罗布洛克斯工作室)
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
我有这个脚本,我用它来控制玩家何时死于饥饿和/或口渴。当玩家没有食物或水时,我正在使用 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