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

Overhauled Damage

Полная переработка нескольких механик, связанных с уроном. Включая стихийный урон и парирование щитом.

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
7,5 тыс.
Подписчиков на Modrinth
28
версий
19
Обновлён
6 мая 20266 мая
Опубликован
в 2024
Это библиотека — она нужна другим модам и сама ничего не добавляет в игруНужна 2 модам. Скачайте её, если этого требует другой мод.

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

Библиотека — нужна другим модам: её требуют 2
Работает на Fabric
Для Minecraft 1.21–1.21.1, 26.1–26.1.2 …
Нужен и в игре, и на сервере
Последняя версия — 3.1.0 от 6 мая 2026
Нужен Fabric API и Resource Bar API
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

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

Overhauled Damage

Полная переработка нескольких механик, связанных с уроном. Вдохновлена такими играми, как Dark Souls и Valheim, и призвана углубить боевую систему Minecraft.

Накопление эффектов

Накопление эффектов — это ресурс (как здоровье), по умолчанию равный нулю. Определённые события (например, получение урона) увеличивают или уменьшают эти ресурсы. Накопление также медленно снижается со временем.

Если накопление достигает определённого порога, применяется соответствующий статусный эффект, а накопление снова сбрасывается до нуля.

На данный момент существуют следующие накопления эффектов:

  • Кровотечение
  • Горение
  • Заморозка
  • Отравление
  • Электрошок
  • Оглушение

Накопление эффектов отображается в HUD.

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

Статусные эффекты

Overhauled Damage добавляет несколько статусных эффектов, которые используются накоплением эффектов. Их можно настроить в конфигурации сервера.

Некоторые из этих эффектов на данный момент не имеют игрового эффекта, так как необходимые сторонние API ещё не обновлены.

Накопление эффектов также можно настроить на использование других эффектов.

Статусные эффекты, добавленные Overhauled Damage:

  • "overhauleddamage:bleeding" — наносит урон в размере процента от максимального здоровья сущности. Урон удваивается, когда сущность движется.
  • "overhauleddamage:burning" — наносит урон. Этот эффект пытается воссоздать захардкоженный флаг сущности "on_fire" в виде статусного эффекта.
  • "overhauleddamage:chilled" — снижает скорость атаки и передвижения.
  • "overhauleddamage:frozen" — на данный момент не имеет игрового эффекта. Планируется обездвиживать сущность и запрещать любые действия. Сейчас ожидается обновление сторонних модов.
  • "overhauleddamage:poison" — настраиваемая версия ванильного статусного эффекта. В отличие от ванильного аналога, этот эффект может убить.
  • "overhauleddamage:shocked" — на данный момент не имеет игрового эффекта. Планируется увеличивать урон, наносимый сущности. Сейчас ожидается обновление сторонних модов.
  • "overhauleddamage:staggered" — на данный момент не имеет игрового эффекта. Планируется обездвиживать сущность и запрещать любые действия. Сейчас ожидается обновление сторонних модов.
  • "overhauleddamage:hit_stun" — снижает скорость атаки и передвижения.

Переработанный расчёт урона

Каждый случай урона, наносимого сущности в Minecraft, имеет "тип урона". Он определяет сообщение о смерти и такие механики, как сопротивления.

Overhauled Damage расширяет эту систему. Каждая включённая переработка, естественно, отключает соответствующую ванильную реализацию.

Когда сущность получает урон, это больше не просто уменьшает здоровье. В зависимости от типа урона может быть множество эффектов. Это по-прежнему может включать уменьшение здоровья, но также может быть увеличение накопления эффектов и даже изменение маны/выносливости.

Что именно происходит, определяется типом урона или, точнее, к какой категории (или типу атаки) относится тип урона.

Типы атак

Каждый "тип урона" принадлежит к одной или нескольким категориям (называемым "типами атак"). Это определяется списком значений с плавающей точкой (называемых множителями), по одному для каждого типа атаки.

Типы атак:

  • Generic
  • Bashing
  • Piercing
  • Slashing
  • Poison
  • Fire
  • Frost
  • Lightning

По умолчанию каждый тип урона имеет множитель 1.0 для Generic и 0.0 для остальных. Исключения из этого определяются в конфигурации сервера.

Первый шаг нового расчёта урона — определить количество каждого типа атаки, используя количество урона, нанесённого сущности.

attack_type_amount = damage_amount * attack_type_multiplier

Истинный урон

Типы урона в теге типов урона "overhauleddamage:is_true_damage" игнорируют пользовательский расчёт урона. На них не влияют блокирование щитом, броня или сопротивление. Они не применяют накопление эффектов. Они просто наносят урон здоровью (и/или мане/выносливости, если применимо).


Блокированный урон

Эта часть расчёта выполняется только если:

  • атакуемая сущность в данный момент блокирует щитом
  • тип урона может быть заблокирован экипированным щитом (определяется компонентом данных "minecraft:blocks_attacks")
  • установлен мод "Blocking Overhaul"
  • в конфиге сервера включена версия "Blocking Overhaul" для Overhauled Damage
  • если установлен "Stamina Attributes", у сущности также должно быть хотя бы одно очко выносливости (или параметр конфига сервера "blocking_requires_stamina" должен быть установлен в false)

Парирование

Парирование заменяет обычное блокирование и увеличивает parry_multiplier, если выполнены определённые условия:

  • сущность входит в тег типов сущностей "blockingoverhaul:can_parry"
  • время блокирования (количество тиков с момента начала блокирования) меньше или равно атрибуту "blockingoverhaul:parry_window" сущности
  • атака исходит от LivingEntity
  • предмет, используемый для блокирования, имеет компонент данных "blockingoverhaul:parries_attacks"

parry_multiplier = (если парирование) ? (атрибут "blockingoverhaul:parry_multiplier") : 1

Применение затрат выносливости

Если установлен Stamina Attributes, применяется затрата выносливости на блокирование/парирование атаки. Если после этого выносливость сущности становится ниже нуля, попытка заблокировать/спарировать атаку проваливается, и количество урона не снижается.

Расчёт блокированного урона

Количество блокированного урона больше не определяется компонентом данных "minecraft:blocks_attacks", а теперь зависит от damage_type атаки (точнее, от её attack_types) и от нескольких атрибутов сущности. Есть 2 разных режима: фиксированное снижение урона и снижение урона в процентах.

  • Режим фиксированного значения:

blocked_attack_type_amount = blocked_attack_type_damage_attribute * parry_multiplier

  • Режим на основе процентов:

blocked_attack_type_amount = attack_type_amount * blocked_attack_type_damage_attribute * parry_multiplier / 100

Применение оглушения

Сумма всех attack_type_stagger_amount затем применяется к накоплению оглушения атакованной сущности. Если сущность оглушается от этого, попытка блокирования/парирования проваливается, и урон не блокируется.

attack_type_stagger_amount = (attack_type_amount - blocked_attack_type_amount) * attack_type_stagger_multiplier

Снижение урона

Если попытка блокирования/парирования была успешной, то количество атаки снижается.

new_attack_type_amount = old_attack_type_amount - blocked_attack_type_amount

Дополнительные эффекты

Если у атаки был атакующий, то блокирование/парирование имеет дополнительные последствия. Если атака была спарирована, атакующий мгновенно оглушается.

Если атака была заблокирована обычным образом, то либо атакующая, либо защищающаяся сущность отбрасывается на переменную величину.

additional_attack_type_knockback = old_attack_type_amount * attack_type_negative_block_force_multiplier

applied_knock_back = ((атрибут "blockingoverhaul:block_force" защищающегося) * parry_multiplier) - (атрибут "minecraft:attack_knockback" атакующего) + (сумма всех additional_attack_type_knockback) * total_applied_blocking_knockback_multiplier_config_option

Если applied_knock_back больше нуля, он применяется к атакующей сущности.

Если applied_knock_back меньше нуля, его абсолютное значение применяется к блокирующей сущности.


Снижение урона бронёй

Оставшиеся значения типов атак снижаются бронёй по следующей формуле:

effective_armor = armor_attribute * armor_toughness_attribute (Это можно отключить в конфиге сервера)

attack_type_armor_damage = attack_type_amount * effective_armor * attack_type_armor_multiplier / 100;

attack_type_amount = attack_type_amount - attack_type_armor_damage

Сумма всех attack_type_armor_damage затем используется для повреждения брони сущности.


Снижение урона сопротивлениями

Каждому типу атаки соответствует свой атрибут сопротивления. Оставшиеся значения типов атак снижаются сопротивлением по следующей формуле:

attack_type_amount = attack_type_amount - (attack_type_amount * attack_type_resistance_attribute) / 100;


Эффекты атаки

Оставшиеся значения типов атак применяют свои эффекты к атакованной сущности.

Накопление кровотечения

Если тип урона входит в тег типов урона "overhauleddamage:applies_bleeding", атака может накапливать кровотечение. Количество рассчитывается умножением значения каждого типа атаки на настраиваемый множитель и сложением результатов.

Накопление горения

Применяемое накопление горения — это просто fire_amount.

Эффект Chilled и накопление заморозки

Урон от холода накладывает эффект Chilled. Длительность эффекта — это frost_amount * настраиваемый множитель.

Применяемое накопление заморозки — это просто frost_amount.

Накопление оглушения

Если не было попытки заблокировать/парировать атаку щитом, то теперь применяется накопление оглушения. Количество рассчитывается умножением значения каждого типа атаки на настраиваемый множитель и сложением результатов.

Накопление отравления

Применяемое накопление отравления — это просто poison_amount.

Накопление разряда

Применяемое накопление разряда — это просто lightning_amount.

Отбрасывание

Если не было попытки заблокировать/парировать атаку щитом и включён Knockback Overhaul, то теперь применяется отбрасывание от атаки. Количество рассчитывается умножением значения каждого типа атаки на настраиваемый множитель и умножением суммы на настраиваемый глобальный множитель.

Урон, применяемый к здоровью/мане/выносливости

Количество "применяемого урона" рассчитывается умножением каждого оставшегося значения типа атаки на настраиваемый множитель и сложением результатов.

Если установлены Mana Attributes и/или Stamina Attributes, часть "применяемого урона" может быть взята из маны/выносливости. Оставшееся количество "применяемого урона" затем вычитается из здоровья сущности.

Интеграция Overhauled Damage в ванильный Minecraft и модпаки

То, как именно Overhauled Damage следует интегрировать в геймплей и баланс модпака, — вопрос крайне субъективный, поэтому большинство функций можно широко настраивать и/или конфигурировать через дата-паки.

У большинства функций есть значения по умолчанию, которые более-менее разумны и могут использоваться как основа для кастомизации.

Если у вас возникнут вопросы или проблемы при настройке Overhauled Damage, вы можете связаться со мной на GitHub или в Discord.

API

Overhauled Damage предоставляет Java API, позволяющий любой сущности-мобу наносить урон с пользовательским типом урона.

Реализуйте интерфейс "UsesCustomDamageType" и переопределите метод "overhauleddamage$getCustomDamageType()".

Встроенные дата-паки

Overhauled Damage также поставляется с несколькими встроенными дата-паками, которые дополнительно интегрируют существующий или добавляют новый контент.

Overhauled Damage Enchantments

Этот дата-пак добавляет несколько новых зачарований:

  • Bleeding Protection
  • Frost Aspect
  • Frost Protection
  • Lightning Aspect
  • Lightning Protection
  • Poison Aspect
  • Poison Protection

Vanilla Enchantments Overhaul

Этот дата-пак перерабатывает некоторые ванильные зачарования, чтобы использовать механики, введённые Overhauled Damage.

В том числе:

  • Blast Protection
  • Fire Aspect
  • Fire Protection
  • Projectile Protection
  • Protection

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

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

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

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

У Overhauled Damage есть сборки для Minecraft 1.20.1, 1.21–1.21.1, 26.1–26.1.2.

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

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

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