Healthy DietFEATURE GUIDE繁體中文
02 / FOOD FATIGUE

食物厭倦:暫時冷卻與長期厭食。

同一種食物的短期重複食用和終身食用次數分別記錄。兩種限制可以獨立設定,恢復方式也不同。

依食物記錄短期冷卻終身衰減
設定邊界:以下閾值是設定欄位的預設值或明確標註的計算範例,不表示每種食物都啟用了厭倦;以伺服器為該食物提供的設定為準。

01短期冷卻

為某食物設定 foodCooldown 後,玩家每次成功食用會累加次數;達到 maxUses 即進入該食物的冷卻狀態。

此欄位的預設上限是 5 次;這是開啟此設定但未改欄位時的數值,不是所有食物的全域限制。冷卻生效時,物品仍可被吃掉,但這次不按正常進食發放營養和效果;restoreHunger 可設定冷卻期間的飢餓值保底恢復量,預設為 0。

次數示意 · 已啟用且 maxUses=5

前五次正常吃下時逐次計數;第五次吃完進入冷卻,第六次起才依冷卻規則結算。冷卻中再次吃它不會增加終身食用次數,也不會推進其他食物的恢復計數;不要把「達到閾值」誤讀為第五次不能吃。

成功食用計入該食物次數
達到閾值進入短期冷卻
滿足恢復條件重設冷卻
原始碼依據:ItemConfig.FoodCooldownConfig、PlayerNutritionTracker.processEating。

02怎樣解除冷卻

改吃其他食物每成功吃下一份不同於冷卻目標的食物,恢復計數增加。cooldownCount 預設 3;達到閾值後重設。豁免清單中的食物不參與該計數。
依線上遊玩時間cooldownMinutes 為正數時啟用時間恢復。預設值 -1 代表不依時間自動解除;計時依據玩家遊玩時間,而不是現實離線時長。

兩種恢復路徑以實際設定為準;達成任一路徑即可結束冷卻。冷卻不等於終身厭食:解除冷卻不會刪除終身食用記錄。

恢復示意 · cooldownCount=3

目標食物進入冷卻後,正常吃下三份其他非豁免食物即可清除這份食物的冷卻;不要求三份分別是三種 ID。fatigue/fatigue_exempt.json 可排除不應計數的食物;cooldownCount=-1 可關閉「改吃其他食物」路徑,但此時須設定正數分鐘以免無路可恢復。

原始碼依據:PlayerNutritionTracker.onOtherFoodEaten、tick 與 FoodCooldownConfig。

03終身營養衰減與厭食

啟用 foodFatigue 後,食物的終身食用次數可用於計算營養取得倍率。只有同時設定 lossStart 與 aversionCount,兩者之間才發生線性衰減。

  • 1次數不超過 lossStart:營養取得係數為 100%。
  • 2兩閾值之間:係數隨終身食用次數線性下降;這份食物的營養取得、飢餓值與飽和度恢復相應縮減。
  • 3次數達到 aversionCount:係數為 0%,該食物進入厭食狀態,不會靠吃其他食物或等待冷卻自動恢復。

例如終身記錄為 6 次、起點 5 次、厭食閾值 10 次時,倍率為 (10 - 6) / (10 - 5) = 80%。若只設定厭食閾值而不設定衰減起點,中途不會線性下降,但達到閾值仍會厭食;反過來只設定起點而沒有厭食閾值,也不會啟動線性衰減。這裡的次數指伺服器記錄,不是網頁滑桿替玩家改值。

已食用 6 次 · 本次營養取得係數 80%僅模擬 lossStart=5、aversionCount=10;不是預設的食物數值。
原始碼依據:PlayerNutritionTracker.getLifetimeDecayFactor、isAversed。

04編輯與管理

管理員手持食物透過 /hdui 進入物品編輯器,在「食物厭倦」頁設定短期次數、恢復條件和終身閾值。一般玩家可透過物品提示檢視伺服器公開的厭倦資訊;具體顯示由 Tooltip 版面和可見性開關決定。

恢復終身記錄:有權限的管理員可用 /headiet clearaversion <玩家> <物品ID|hand> (OP2) 移除指定玩家對該食物的終身厭食記錄;hand 指目標玩家的主手,不是指令執行者的主手。這不是短期冷卻重設指令。
繼續閱讀營養取得倍率、提示排版與厭倦顏色分別見對應章節。
檢視營養值 →