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 открывает редактор предмета, где на странице «Пресыщение едой» задаёт краткое число, условия восстановления и пожизненные пороги. Обычные игроки видят опубликованную сервером информацию в подсказке предмета; конкретное отображение зависит от макета подсказки и переключателей видимости.
/headiet clearaversion <игрок> <ID предмета|hand> (OP2), чтобы удалить пожизненную запись отвращения указанного игрока для этой еды; hand означает основную руку целевого игрока, а не руку исполнителя команды. Это не команда сброса краткого кулдауна.