01短期クールダウン
食べ物に foodCooldown を設定すると、プレイヤーが摂取に成功するたびに回数が加算され、maxUses に達するとその食べ物はクールダウン状態になります。
このフィールドのデフォルト上限は 5 回 です。これはこの設定を有効にしてフィールドを変更していない場合の値で、すべての食べ物に共通の制限ではありません。クールダウン中でもアイテムは食べられますが、その回は通常の栄養や効果が付与されません。restoreHunger でクールダウン中の満腹度の最低回復量を設定でき、デフォルトは 0 です。
最初の5回は通常どおり食べるたびにカウントされます。5回目を食べ終えるとクールダウンに入り、6回目からクールダウンのルールで処理されます。クールダウン中に再度食べても生涯摂取回数は増えず、他の食べ物の回復カウントも進みません。「しきい値に達した」を「5回目は食べられない」と誤解しないでください。
ItemConfig.FoodCooldownConfig、PlayerNutritionTracker.processEating。02クールダウンの解除方法
cooldownCount のデフォルトは 3 で、しきい値に達するとリセットされます。除外リストの食べ物はこのカウントに含まれません。cooldownMinutes が正の値のとき、時間による回復が有効になります。デフォルトの -1 は時間で自動解除しない設定です。計測はプレイヤーのプレイ時間に基づき、現実のオフライン時間ではありません。2つの回復経路は実際の設定に準拠します。どちらかを満たせばクールダウンは終了します。クールダウンは生涯の食物嫌悪とは別物で、解除しても生涯摂取記録は削除されません。
対象の食べ物がクールダウンに入った後、他の除外されていない食べ物を3回食べると、その食べ物のクールダウンが解除されます。3回がそれぞれ別の ID である必要はありません。fatigue/fatigue_exempt.json でカウントしない食べ物を除外できます。cooldownCount=-1 で「他の食べ物を食べる」経路を無効にできますが、その場合は回復不能にならないよう正の分数を設定してください。
PlayerNutritionTracker.onOtherFoodEaten、tick、FoodCooldownConfig。03長期的な栄養減少と食物嫌悪
foodFatigue を有効にすると、食べ物の生涯摂取回数から栄養取得倍率を計算できます。lossStart と aversionCount の両方を設定した場合にのみ、その間で線形に減少します。
- 1回数が
lossStart以下の場合:栄養取得係数は 100%。 - 22つのしきい値の間:係数は生涯摂取回数に応じて線形に低下し、その食べ物の栄養取得、満腹度、隠し満腹度の回復も相応に減少します。
- 3回数が
aversionCountに達した場合:係数は 0% になり、その食べ物は食物嫌悪状態になります。他の食べ物を食べたり、クールダウンを待ったりしても自動回復しません。
たとえば生涯記録が6回、開始が5回、嫌悪しきい値が10回の場合、倍率は (10 - 6) / (10 - 5) = 80% です。嫌悪しきい値だけを設定して減少開始点を設定しない場合、途中で線形減少は起きませんが、しきい値に達すると食物嫌悪になります。逆に開始点だけを設定して嫌悪しきい値がない場合も、線形減少は始まりません。ここでの回数はサーバーの記録であり、Web ページのスライダーがプレイヤーの値を変更するものではありません。
lossStart=5、aversionCount=10 のみをシミュレートしています。既定の食べ物の値ではありません。PlayerNutritionTracker.getLifetimeDecayFactor、isAversed。04編集と管理
管理者が食べ物を持って /hdui でアイテムエディターを開き、「食べ飽き」ページで短期回数、回復条件、生涯しきい値を設定します。一般プレイヤーはアイテムツールチップでサーバーが公開している食べ飽き情報を確認できます。表示の詳細はツールチップのレイアウトと表示スイッチで決まります。
/headiet clearaversion <プレイヤー> <アイテムID|hand> (OP2) で、指定プレイヤーのその食べ物の生涯食物嫌悪記録を削除できます。hand は対象プレイヤーのメインハンドを指し、コマンド実行者自身のメインハンドではありません。これは短期クールダウンのリセットコマンドではありません。