游戏版本 756039
首页 › 游戏机制 › 饥饿

饥饿 Hunger

机制三维生存 又名 饥饿值又名 饥饿度

饥饿是角色三维之一。角色会持续消耗饥饿值;降到 0 后不再继续扣饥饿,而是按饥饿伤害率持续损失生命,因此应在归零前进食。

概述

饥饿组件由 scripts/components/hunger.lua 管理。角色的当前值会被限制在 0 与最大值之间;进食、某些效果和外部脚本可以增加饥饿,消耗则由角色的饥饿速率决定。以威尔逊为例,最大饥饿为 150,基础消耗速率为 0.156/秒。

数值与状态

饥饿百分比 = 当前饥饿 ÷ 最大饥饿。游戏一天为 480 秒。组件每秒更新一次,周期来自 hunger.lua 的 UPDATE_PERIOD = 1。饥饿值尚未达到下限时,正常消耗量为:

hungerrate × dt × burnrate × burnratemodifiers

其中角色的 hungerrate 可由角色设定,burnrate 是旧式倍率,burnratemodifiers 是可叠加的修正列表。组件可以暂停和恢复消耗;暂停时不会执行周期扣减。只要当前饥饿尚未达到下限,就按上述公式消耗;达到下限后进入饥饿状态。

饥饿归零后的效果

当饥饿降到下限,组件发送 startstarving 事件并进入饥饿状态。此后每次消耗更新不再减少饥饿,而是对生命执行饥饿伤害;默认伤害为 hurtrate × dt,伤害来源标记为 hunger。以威尔逊为例,饥饿伤害率由 150 ÷ 120 得出。重新获得正数饥饿后会发送 stopstarving 事件。无敌或传送状态下,普通 DoDelta 不会改变饥饿。

恢复与实用建议

优先食用肉丸等能稳定恢复饥饿的食物;料理的具体恢复量以页面中的烹饪卡和最新快照为准。不要等到饥饿归零才进食:归零后生命会持续下降,且睡眠、战斗或采集期间可能来不及处理。角色、装备和技能可能改变最大值、消耗倍率或食物收益,不能直接套用威尔逊的数值。

代码参考

  • scripts/components/hunger.lua:GetPercent、SetCurrent、DoDelta、DoDec、Pause、Resume
  • scripts/prefabs/player_common.lua:玩家饥饿最大值、消耗率和饥饿伤害率的初始化
  • scripts/tuning.lua:玩家饥饿与饥饿伤害相关常量

相关条目

理智腐烂与保鲜肉丸威尔逊

版本记录

  • 首次收录:build 756039;正文编写:build 756039;核对至:build 756039(当前最新)。数值始终取自当前版本数据。

依据源码:scripts/components/hunger.lua scripts/prefabs/player_common.lua scripts/tuning.lua