【问题标题】:How do I check for player death? (roblox studio)如何检查玩家死亡? (罗布洛克斯工作室)
【发布时间】:2021-12-03 22:42:33
【问题描述】:

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

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

【问题讨论】:

    标签: lua roblox


    【解决方案1】:

    第一个 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 事件。

    【讨论】:

      【解决方案2】:

      我想通了。这是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
      

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 2021-02-02
        • 2022-01-05
        • 2020-03-06
        • 2021-07-27
        • 2022-01-05
        • 2023-03-03
        • 2020-09-05
        • 1970-01-01
        相关资源
        最近更新 更多