Пользовательский датапак сущностей
Обычно Epic Fight не совместим с другими модами, особенно с сущностями. Поэтому вам придется вручную определить модель сущности, анимации и другие атрибуты. Это можно сделать с помощью датапака.
💡 Создание JSON-файла -
Прежде чем создавать JSON-файл, вам следует получить регистрационное имя существа, которое вы хотите сделать совместимым. В Minecraft вы можете просмотреть список зарегистрированных существ с помощью команды "/summon".

Большинство регистрационных имен состоят из "modid:entityname". Если вы получили регистрационное имя, вы можете создать JSON-файл по следующему пути: data/modid/epicfight_mobpatch/entityname.json
💡 Путь для моделей и анимаций -
💡 Простая установка -
📘 Используя пресет
Для существ, у которых действия аналогичны ванильным, вы можете использовать предустановленный вариант. Это очень просто, как показано ниже.
Вам следует знать, что это не будет работать должным образом, если нужная вам сущность не использует код, идентичный ванильной версии, даже если они визуально похожи. Разрешенными значениями являются регистрационные имена всех сущностей, зарегистрированных в code
❌ Отключение анимаций сущностей
Вы также можете отключить существующую анимированную сущность. Это можно сделать с помощью простой строки кода.
💡 Добавление функций -
Ниже приведен простой пример создания зомби, который использует удары кулаком.
{
"model": "epicfight:entity/biped_old_texture",
"renderer": "minecraft:zombie",
"isHumanoid": false,
"faction": "neutral",
"attributes": {
"impact": 0.5,
"armor_negation": 0.0,
"max_strikes": 1,
"chasing_speed": 1.0,
"scale": 1.0
},
"default_livingmotions": {
"idle": "epicfight:biped/living/idle",
"walk": "epicfight:biped/living/walk",
"chase": "epicfight:biped/living/walk",
"mount": "epicfight:biped/living/mount",
"fall": "epicfight:biped/living/fall",
"death": "epicfight:biped/living/death"
},
"stun_animations": {
"short": "epicfight:biped/combat/hit_short",
"long": "epicfight:biped/combat/hit_long",
"knockdown": "epicfight:biped/combat/knockdown",
"fall": "epicfight:biped/living/landing"
},
"combat_behavior": [
{
"weight": 100.0,
"canBeInterrupted": true,
"looping": false,
"behaviors": [
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
],
"animation": "epicfight:zombie/attack1"
},
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
],
"animation": "epicfight:zombie/attack2"
},
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
],
"animation": "epicfight:zombie/attack3"
}
]
}
]
}
model: Модель сущности. Допустимые значения можно найти here
renderer: All the entity's registry names that are registered in the code
isHumanoid: Определяет, является ли сущность гуманоидной. Гуманоидные существа меняют анимации в зависимости от предмета, который они держат.
faction: Существа, принадлежащие к одной группе, не будут атаковать друг друга в ближнем бою. Допустимыми значениями являются:enderman, piglins, wither, neutral, undead, illager, villager
attributes:
| Ключ | Функция |
|---|---|
| impact | Увеличивает время оглушения атаки по цели |
| armor_negation | Обходит защитные очки на % |
| max_strikes | Определяет, сколько сущностей может быть поражено одним ударом |
| chasing_speed | Для существ, атакующих в ближнем бою, определяет, насколько быстро существо преследует врага |
| scale | Определяет размер сущности |
default_livingmotions:
| Ключ | Функция |
|---|---|
| idle | Когда сущность стоит неподвижно |
| walk | Когда сущность движется |
| chase | Когда сущность движется и имеет цель |
| fall | Когда сущность падает из-за гравитации |
| death | Когда сущность умирает |
| mount | Когда сущность находится в седле |
stun_animations:
| Ключ | Функция |
|---|---|
| short | Каждая обычная атака |
| long | Для некоторых специальных атак |
| knockdown | Удар по земле Драконом Края |
| fall | Урон от падения |
combat_behavior: определяет атакующие движения сущности.
| Ключ | Функция |
|---|---|
| weight | Выбирается возможность этого поведения. Она будет рассчитана как (weight/total weight sum) |
| canBeInterrupted | Определяет, может ли эта последовательность движений быть прервана |
| looping | Определяет, должно ли текущее поведение быть сохранено при прерывании |
| cooldown | Определяет, через сколько "тиков" поведение может быть использовано снова |
| behaviors | Определение условий и анимации атаки |
behaviors:
| Ключ | Функция |
|---|---|
| conditions | Условия, которые должны быть выполнены, чтобы быть выбранными |
| animation | Путь анимации |
conditions:
| Ключ | Функция | Аргументы |
|---|---|---|
| random_chance | Проверяет, превышает ли случайное значение заданный аргумент | "chance": double |
| within_eye_height | Проверяет, является ли вертикальное "Y" расстояние между целью и атакующим меньше высоты глаз атакующего | - |
| within_distance | Проверяет расстояние между целью и атакующим, если они находятся в пределах заданных аргументов | "min": double, "max": double |
| within_angle | Проверяет, находится ли угол к цели в пределах заданного аргумента. | "min": double, "max": double |
| within_angle_horizontal | Проверяет, находится ли угол по оси Y к цели в пределах заданного аргумента. | "min": double, "max": double |
| health | Проверяет здоровье сущности. | "health": double, "comparator": enum:(greater_absolute, less_absolute, greater_ratio, less_ratio) |
💡 Изменение анимации в зависимости от оружия, которое существо держит -
Для гуманоидных мобов вы можете установить различные наборы анимаций в зависимости от оружия, которое они держат. В этом случае формат "combat_behaviors" немного изменяется. Сначала убедитесь, что вы установили значение "isHumanoid" в true.
Ниже приведен пример создания зомби, держащего меч, как Визер-скелет в состоянии покоя и при ходьбе, атакующего мечем или бьющий кулаками.
{
"model": "epicfight:entity/biped_old_texture",
"renderer": "minecraft:zombie",
"isHumanoid": true,
"faction": "neutral",
"attributes": {
"impact": 0.5,
"armor_negation": 0.0,
"max_strikes": 1,
"chasing_speed": 1.0,
"scale": 1.0
},
"default_livingmotions": {
"idle": "epicfight:biped/living/idle",
"walk": "epicfight:biped/living/walk",
"chase": "epicfight:biped/living/walk",
"mount": "epicfight:biped/living/mount",
"fall": "epicfight:biped/living/fall",
"death": "epicfight:biped/living/death"
},
"humanoid_weapon_motions": [
{
"weapon_categories": ["sword"],
"style":"one_hand",
"livingmotions": {
"walk": "epicfight:wither_skeleton/walk",
"chase": "epicfight:wither_skeleton/chase"
}
}
],
"stun_animations": {
"short": "epicfight:biped/combat/hit_short",
"long": "epicfight:biped/combat/hit_long",
"knockdown": "epicfight:biped/combat/knockdown",
"fall": "epicfight:biped/living/landing"
},
"combat_behavior": [
{
"weapon_categories": ["axe", "hoe", "pickaxe", "shovel", "sword"],
"style": "one_hand",
"behavior_series": [
{
"weight": 100.0,
"canBeInterrupted": true,
"looping": true,
"behaviors": [
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.2}
],
"animation": "epicfight:biped/combat/mob_onehand1"
},
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.2}
],
"animation": "epicfight:biped/combat/mob_onehand2"
}
]
}
]
},
{
"weapon_categories": ["fist"],
"style": "common",
"behavior_series": [
{
"weight": 100.0,
"canBeInterrupted": true,
"looping": false,
"behaviors": [
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
],
"animation": "epicfight:zombie/attack1"
},
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
],
"animation": "epicfight:zombie/attack2"
},
{
"conditions": [
{"predicate":"within_eye_height"}, {"predicate":"within_distance", "min": 0.0, "max": 2.0}
],
"animation": "epicfight:zombie/attack3"
}
]
}
]
}
]
}
humanoid_weapon_motions: Список измененных движений для каждой категории оружия.
weapon_categories: Какое оружие должно иметь одинаковую серию движений. Допустимые значения:
public enum WeaponCategory {
NOT_WEAON, AXE, FIST, GREATSWORD, HOE, PICKAXE, SHOVEL, SWORD, KATANA, SPEAR, TACHI, TRIDENT, LONGSWORD, DAGGER, SHIELD, RANGED
}
style: Стиль держания оружия. Допустимые значения: one_hand, two_hand, common.