Перейти к содержимому

One Enough Damage

Свободно настраивай урон мобов, зашитый в код урон и множество видов урона, зависящего от навыков.

FabricNeoForgeForge
Загрузчики
FabricNeoForgeForge
Скачиваний на Modrinth
277
Подписчиков на Modrinth
1
версий
9
Обновлён
23 сентября 202623 сент.
Опубликован
в 2026

Коротко о моде

Работает на Fabric, NeoForge и Forge
Для Minecraft 1.21.1, 26.1 …
Ставится только на сервер; игрокам ставить не нужно
Последняя версия — 1.0.4 от 23 сентября 2026
Лицензия GPL-3.0-only — бесплатно
Где нужен
В игрене нуженНа сервереобязателен

Ставится только на сервер; игрокам ставить не нужно

Версии игры1.20.1–1.20.6, 1.21.1, 26.1
Описание переведено автоматическиПоказать оригинал (EN)

OneEnoughDamage

Сталкивались ли вы когда-нибудь с жёстко прописанными значениями урона, которые нельзя изменить? Приходилось ли вам мучиться с балансировкой урона от снарядов, клыков, магии, призывов или атак по области, потому что не было удобной точки входа? Знали ли вы, что у Левиафана 11 различных значений урона, а у Игниса — 17? В вашем модпаке сотни мобов, чей урон нужно сбалансировать? С OED настройка урона становится простой. Жёстко прописанный урон из каждого мода сканируется при запуске, и для соответствующих мобов автоматически регистрируются подходящие записи атрибутов. Вы также можете редактировать значения по умолчанию прямо в конфигурационных файлах, включая ванильные атрибуты урона, с перезагрузкой за одну секунду — для авторов модпаков, которым нужно сбалансировать урон любого вида.

Автоматическая регистрация атрибутов

По умолчанию этот мод сканирует жёстко прописанный урон в самом Minecraft и во всех установленных модах при запуске, а затем регистрирует любой урон, который можно привязать к конкретному мобу, как атрибут. Принадлежность отслеживается через статический анализ. Например, клыки, призванные вызывателем, привязываются к вызывателю, и большинство случаев урона от призывов, урона от эффектов и подобных ситуаций также корректно привязываются к каждому возможному мобу-источнику. Пример ID атрибута: oneenoughdamage:fuzs/illagerinvasion/world/entity/monster/invoker_fangs/damage/2/r Правило именования — это точный путь до точки урона, порядок и режим расчёта. r означает фиксированный урон, а m — множительный урон. Множительные атрибуты используются только для динамических случаев, например урона, меняющегося в зависимости от сложности, и по умолчанию равны 1.0. Чем больше у вас модов, тем дольше длится сканирование. Модпак примерно с 200 модами, как ожидается, будет сканироваться около десяти секунд. После первого запуска вы можете включить readCache в конфиге, чтобы последующие запуски читали кэш напрямую и пропускали этап сканирования.

Быстрая настройка урона

После установки этого мода у вас есть два способа настроить урон мобов: редактировать значения урона по умолчанию прямо в конфигурационных файлах или динамически изменять атрибуты через такие инструменты, как KubeJS. Под config/OED/ создаются следующие файлы:

  • damage_points-cache.json: кэш сканирования, предназначен для машинного чтения. Может быть большим, обычно его можно спокойно игнорировать.
  • damage-point-dictionary.md: словарь привязанных точек урона со встроенными китайско-английскими названиями и уроном, сгруппированным по мобам, для удобного поиска.
  • damage-point-dictionary.toml: редактируемый конфигурационный файл с макетом в виде словаря. Он также включает ванильный minecraft:generic.attack_damage.
  • damage-point-unattributed.md: точки урона, которые в настоящее время нельзя безопасно привязать к мобу.
  • oneenoughdamage.toml: конфиг поведения мода. Изменение значения атрибута в damage-point-dictionary.toml напрямую меняет значение по умолчанию, используемое при регистрации атрибута, но для вступления в силу игру нужно перезапустить. Это хорошо подходит для простой балансировки, не требующей динамического изменения урона. Если вы всё ещё тестируете, можете включить debugMode в конфиге. Тогда изменения значений по умолчанию в файле будут отслеживаться и сразу применяться в игре. Редактируемые записи включают ванильный minecraft:generic.attack_damage, так что даже если жёстко прописанный урон не является вашей основной заботой, вы всё равно можете быстро настраивать и тестировать урон для многих мобов. damage-point-dictionary.toml обновляется постепенно. Когда вы добавляете или удаляете моды, существующий конфиг сохраняется в резервной копии, а записи добавляются или удаляются с сохранением ваших изменений значений атрибутов.

Динамическая настройка урона

Если вам нужно настраивать урон динамически, рекомендуется использовать KubeJS для вызова методов, связанных с атрибутами, или использовать команды. Рекомендуемые руководства:

// server_scripts
EntityEvents.hurt(event => {
    if (event.getEntity().is("cataclysm:amethyst_crab")) {
        /** @type {Internal.LivingEntity} */
        let entity = event.getEntity();
        let attr = `oneenoughdamage:com/github/l_ender/cataclysm/entity/animation_monster/boss_monsters/amethyst_crab_entity/area_attack/1/m`;
        entity.modifyAttribute(attr, "oneenoughdamage:example", 1, 'addition');
    }
});

Покрытие

Большинство урона, заданного сырыми числами или простыми комбинациями переменных, можно просканировать. Поскольку у некоторых авторов модов свои подходы к реализации, 100% покрытие невозможно. На данный момент ванильный Minecraft, Cataclysm и Illager Invasion протестированы с очень высоким покрытием. У последних двух модов почти весь урон жёстко прописан. У Cataclysm своя динамическая система урона, поэтому многие зарегистрированные атрибуты используют множительную форму со значением по умолчанию 1.0. Эта часть не может быть гарантированно определена идеально и потребует дальнейшей доработки. Для Cataclysm основной сценарий использования этого мода — балансировка разных значений урона у одного и того же моба. Например, у Левиафана 11 различных значений урона, а у Игниса — 17, тогда как ванильная игра предоставляет лишь единственный minecraft:generic.attack_damage, которого явно недостаточно. На практике всё ещё есть некоторые жёстко прописанные случаи, которые этот мод пока не может решить. Например, моб может призвать сущность-снаряд без поля owner, и этот снаряд может нанести игроку урон с пустым DamageSource. С некоторыми ухищрениями можно отследить, какой тип моба нанёс этот урон. К сожалению, когда одновременно присутствует несколько мобов одного типа, отследить точного моба-цель очень сложно. Для этого есть запасной вариант с поиском поблизости, который работает достаточно хорошо:

  • inferAttributeHolder: если у урона нет прямого атакующего LivingEntity, попытаться определить сущность-владельца поблизости.
  • inferAttributeHolderSearchRadius: радиус поиска для определения владельца, измеряется в блоках. Буду рад отзывам, если столкнётесь с другими проблемами покрытия.

Планы

  • Продолжать улучшать покрытие
  • Добавить внутриигровое визуальное редактирование значений атрибутов по умолчанию
  • Портировать на другие версии

Частые вопросы

Как установить One Enough Damage?

Установите Fabric под свою версию Minecraft, скачайте One Enough Damage под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть One Enough Damage?

У One Enough Damage есть сборки для Minecraft 1.20.1–1.20.6, 1.21.1, 26.1.

Нужен ли One Enough Damage на сервере?

Ставится только на сервер; игрокам ставить не нужно

Лицензия и источник
GNU General Public License v3.0 onlyможно использовать и распространять; изменённые версии — под той же лицензией и с исходным кодом
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее