01短期冷卻
為某食物設定 foodCooldown 後,玩家每次成功食用會累加次數;達到 maxUses 即進入該食物的冷卻狀態。
此欄位的預設上限是 5 次;這是開啟此設定但未改欄位時的數值,不是所有食物的全域限制。冷卻生效時,物品仍可被吃掉,但這次不按正常進食發放營養和效果;restoreHunger 可設定冷卻期間的飢餓值保底恢復量,預設為 0。
前五次正常吃下時逐次計數;第五次吃完進入冷卻,第六次起才依冷卻規則結算。冷卻中再次吃它不會增加終身食用次數,也不會推進其他食物的恢復計數;不要把「達到閾值」誤讀為第五次不能吃。
ItemConfig.FoodCooldownConfig、PlayerNutritionTracker.processEating。02怎樣解除冷卻
cooldownCount 預設 3;達到閾值後重設。豁免清單中的食物不參與該計數。cooldownMinutes 為正數時啟用時間恢復。預設值 -1 代表不依時間自動解除;計時依據玩家遊玩時間,而不是現實離線時長。兩種恢復路徑以實際設定為準;達成任一路徑即可結束冷卻。冷卻不等於終身厭食:解除冷卻不會刪除終身食用記錄。
目標食物進入冷卻後,正常吃下三份其他非豁免食物即可清除這份食物的冷卻;不要求三份分別是三種 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%。若只設定厭食閾值而不設定衰減起點,中途不會線性下降,但達到閾值仍會厭食;反過來只設定起點而沒有厭食閾值,也不會啟動線性衰減。這裡的次數指伺服器記錄,不是網頁滑桿替玩家改值。
lossStart=5、aversionCount=10;不是預設的食物數值。PlayerNutritionTracker.getLifetimeDecayFactor、isAversed。04編輯與管理
管理員手持食物透過 /hdui 進入物品編輯器,在「食物厭倦」頁設定短期次數、恢復條件和終身閾值。一般玩家可透過物品提示檢視伺服器公開的厭倦資訊;具體顯示由 Tooltip 版面和可見性開關決定。
/headiet clearaversion <玩家> <物品ID|hand> (OP2) 移除指定玩家對該食物的終身厭食記錄;hand 指目標玩家的主手,不是指令執行者的主手。這不是短期冷卻重設指令。