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

Создание предметов

webapp_banner.jpg

Создание Кастомных предметов

Что такое Кастомные предметы?

Кастомные предметы — это предметы, определённые EliteMobs через конфигурационные файлы. Вы можете настраивать несколько аспектов этих предметов, таких как уровень предмета, зачарования, имя, лор, текстура и многое другое!

Webapp

Вы можете легко и быстро создавать Кастомную добычу здесь!

Прежде чем начать

Куда помещаются Кастомные предметы?

Файлы кастомных предметов помещаются в конфигурационную папку ~/plugins/EliteMobs/customitems

Можно создавать подпапки, такие как ~/plugins/EliteMobs/customitems/myitems. Это рекомендуется для поддержания порядка.

Файлы хранятся в формате файлов .yml, и Notepad++ — рекомендуемое ПО для редактирования файлов при работе с конфигурацией. Один файл определяет одного босса, хотя можно спавнить одного и того же босса несколько раз и даже задавать несколько мест спавна для одного файла босса.

Можно использовать webapp, чтобы быстро и легко создавать кастомных боссов и многое другое.

Минимально возможная конфигурация

Обратите внимание, что минимально возможный конфигурационный файл для Кастомного предмета:

Обратите внимание, что это просто пустой файл. По умолчанию это будет деревянный меч под названием «Default name». Всё на этой странице необязательно!

Пример предмета

Давайте посмотрим на пример того, как выглядит файл предмета.

Пример
isEnabled: true
material: WOODEN_AXE
name: '&4Test item'
lore:
- This is a cool item
- It has cool lore
enchantments:
- DAMAGE_ALL,4
- FLAMETHROWER,1
potionEffects:
- FAST_DIGGING,0,self,onHit
- POISON,0,target,onHit
- GLOWING,0,self,continuous
dropWeight: dynamic
scalability: scalable
itemType: custom

Настройки Кастомного предмета

Ниже приведён список всего, что вы можете настроить для кастомных предметов:


isEnabled

Задаёт, включён ли предмет. Не влияет на уже сгенерированные предметы.

KeyValuesDefault
isEnabledtrue / falsetrue
Пример
isEnabled: true

material

Задаёт материал предмета.

KeyValuesDefault
materialВыберите из этого списка!WOODEN_SWORD
Пример
material: DIAMOND_SWORD

level

Задаёт уровень предмета.

KeyValuesDefault
levelInteger0

Учтите, что эта настройка не релевантна, если вы задаёте scalability предмета равной scalable. Если вы зададите её равной limited, это будет наивысший возможный уровень предмета.

Также у материалов есть минимальный уровень. Железные материалы — 6 уровня, алмазные материалы — 7 уровня. Вы не можете принудительно сделать предметы более низкого уровня, чем уровень материала.

Пример
level: 100

name

Задаёт отображаемое имя предмета.

KeyValuesDefault
nameString с цветовыми кодами"Default name"
Пример
name: "&2Cool item"

create_item_name.jpg


lore

Задаёт лор предмета.

KeyValuesDefault
loreList с цветовыми кодамиnone
Пример
lore:
- "&2This is the coolest sword"
- "&2of all time!"

create_item_lore.jpg


enchantments

Задаёт зачарования на предмете.

KeyValuesDefault
enchantmentsList с зачарованиями Minecraft или Кастомными зачарованиями EliteMobsnone

Учтите, что эти записи следуют формату enchantmentName:enchantmentLevel. Смотрите пример ниже!

Пример
enchantments: 
- "DAMAGE_UNDEAD,8"
- "DURABILITY,4"
- "DAMAGE_ALL,7"
- "LOUD_STRIKES,3"

create_item_enchantments.jpg

Также учтите, что зачарования вроде остроты (sharpness) по умолчанию становятся элитной остротой, если уровень начинает превышать лимиты ванильного Minecraft.


potionEffects

Задаёт эффекты зелий, которые будет иметь предмет. Они могут применяться к игроку или к сущности, получившей урон от игрока.

KeyValuesDefault
potionEffectsList с эффектами зелий Minecraftnone

Кроме того, эффекты зелий используют особый формат, который позволяет администраторам выбирать, на кого и когда влияет эффект:

SettingDescriptionValuesDefault
Уровень эффекта зельяЗадаёт уровень эффекта зелья. Эффекты зелий начинаются с уровня 0!Integernone
Затрагиваемая сущностьЗадаёт, на кого влияет эффект зелья.self (игрок) / target (сущность, по которой ударили)none
Метод примененияЗадаёт, когда применяется эффект зелья.onHit / continuous (постоянно применяется заново)none

Формат для эффектов зелий — potionEffectName,potionEffectLevel,affectedEntity,applicationMethod. Последние два параметра (affectedEntity и applicationMethod) необязательны и по умолчанию равны self и continuous, если не указаны. Смотрите пример ниже!

Длительность эффектов зелий:

  • Постоянные эффекты обновляются каждую секунду, пока предмет держится или надет (каждое применение длится 2 секунды, поэтому эффект никогда не прерывается)
  • Ночное зрение получает особую длительность 15 секунд
  • Эффекты при ударе используют длительности на основе конфигурации сервера

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

  • ☠️ Череп — нацелен на врагов.
  • 🛡️ Щит — нацелен на пользователя/игрока.
  • ⚔️ Мечи — активируется при ударе.
  • 🔄 Повторяющийся круг — применяется постоянно, пока предмет надет или держится.

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

ПРЕДУПРЕЖДЕНИЕ: использование эффекта зелья INSTANT_DAMAGE будет исцелять мобов-нежить при попадании, поскольку это стандартная механика в ванильном Minecraft.

Пример
potionEffects: 
- "POISON,0,target,onHit"
- "HEAL,1,self,onHit"
- "NIGHT_VISION,0,self,continuous"

create_item_potion_effects.jpg

С этим набором эффектов зелий будет происходить следующее:

При ударе эффект зелья яда (уровень 1) будет применён к сущности, по которой ударил игрок. Кроме того, игрок будет затронут эффектом мгновенного исцеления 2-го уровня.

Постоянно игрок будет получать ночное зрение. Это означает, что у игрока будет ночное зрение до тех пор, пока он носит или держит предмет.


scalability

Задаёт, как уровень предмета растёт с уровнем босса, который его роняет.

KeyValuesDefault
scalabilityfixed, limited или scalable. Смотрите ниже!scalable

Изучите этот список, чтобы понять, что делают разные варианты!

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

Учтите, что у предметов с dropWeight всегда будет fixed scalability.

Пример
scalability: "scalable"

itemType

Задаёт, откуда вы можете получить предмет.

KeyValuesDefault
itemTypecustom, unique или droppable. Смотрите ниже!custom

Есть три типа предметов:

SettingDescription
customПредмет сможет выпадать с любого моба EliteMobs, способного ронять добычу, и будет в кастомном магазине.
uniqueПредмет не будет ронять ни один босс, и его не будет в кастомном магазине. Единственный способ получить его — настроить Кастомного босса на его дроп через его uniqueLootList!
droppableПредмет попадает в пул случайного элитного дропа так же, как custom, но исключается из магазинов — игроки могут найти его как обычный элитный дроп, но никогда не могут просто купить. Полезно для предметов, которые должны ощущаться заработанными, но не обязаны быть привязаны к конкретному боссу.
Пример
itemType: "unique"

dropWeight

Задаёт таблицу добычи, в которую попадёт предмет.

KeyValuesDefault
dropWeightdynamic или значение Double.dynamic

В EliteMobs есть 5 разных таблиц добычи для кастомных предметов, не считая тех, что настраиваются напрямую, как uniqueLootList на Кастомных боссах.

Они таковы:

Loot tableDescriptionDefault weight
Процедурно сгенерированные предметыПредметы, генерируемые случайно на основе конфигурационных файлов сервера90.0
Взвешенные предметыПредметы, у которых вес отличается от dynamic1.0
Фиксированные предметыПредметы с фиксированной (fixed) scalability10.0
Ограниченные предметыПредметы с ограниченной (limited) scalability3.0
Масштабируемые предметыПредметы, которые масштабируемы (scalable)6.0

Когда босс умирает, один предмет из этих таблиц выбирается на основе конфигурационного файла ItemSettings.yml. Значения по умолчанию для весов указаны выше в Default weight. Чем выше вес, тем вероятнее, что предмет выпадет.

У Взвешенных предметов маленький Default weight, то есть они будут выпадать не очень часто. Предметы с dropWeight, отличным от dynamic, задуманы редкими и используются только в значениях по умолчанию для оберегов, которые роняют боссы, — предметов, используемых не для прямого боя, а скорее для усиления игроков эффектами зелий.

dropWeight, который вы здесь задаёте, задаёт шанс выпадения конкретного Взвешенного предмета из списка Взвешенных предметов. Он не увеличивает шанс выпадения Взвешенных предметов.

Если вы запутались и просто хотите делать оружие и броню, пропустите эту настройку, так как она корректно по умолчанию равна dynamic.

Взвешенные предметы обычно имеют вес 1.0.

Пример
dropWeight: "dynamic"

customModelID

Примечание: эта настройка была удалена. Она больше не читается из конфигурационных файлов. Используйте customModelV2 вместо неё — это единственная настройка ID модели, распознаваемая начиная с Minecraft 1.21.4+ (EliteMobs 9.1.13+). Любые существующие записи customModelID в ваших конфигурационных файлах будут проигнорированы.

Задаёт текстуру предмета. Требует использования валидной текстуры из ресурс-пака!

KeyValuesDefault
customModelIDIntegernone
Пример (больше не работает)
material: DIAMOND_SWORD
customModelID: 1

Эта настройка больше не работает. Перейдите на customModelV2 вместо неё.


customModelV2

Начиная с версии Minecraft 1.21.4 (EM 9.1.13), это новая обязательная настройка для конфигурации ID кастомных моделей предметов. Задаёт текстуру предмета. Требует использования валидной текстуры из ресурс-пака!

KeyValuesDefault
customModelV2Stringnone
Пример
customModelV2: elitemobs:equipment/magmaguys_toothpick

Эта настройка назначает предмету конкретную текстуру. Вот как это работает:

  • elitemobs: — основной каталог в папке assets ресурс-пака.
  • equipment — подкаталог внутри assets/elitemobs/models.
  • magmaguys_toothpick — файл модели, расположенный в assets/elitemobs/models/equipment в ресурс-паке.

Полный путь к файлу модели в этом примере был бы: \.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\models\equipment\magmaguys_toothpick.json

Это будет использовать кастомную текстуру magmaguys_toothpick из ресурс-пака EliteMobs, который использует игрок. Рекомендуется настроить сервер на выдачу игрокам ресурс-паков при входе, если вы хотите использовать эту функцию правильно.


equipmentModelID

Задаёт отдельную модель для предмета, когда он экипирован или надет. Требует использования валидной текстуры из ресурс-пака!

KeyValuesDefault
equipmentModelIDStringnone
Пример
equipmentModelID: elitemobs:equipment/helmet_texture

Это задаёт конкретную текстуру, появляющуюся, когда предмет надет, отдельно от вида предмета в инвентаре.


scriptedItem

Связывает предмет со скриптовым предметом FreeMinecraftModels. Когда задано, предмет получает 3D-модель FMM и поведение Lua-скрипта, сохраняя при этом все системы имени, лора, зачарований, уровня и привязки к душе из EliteMobs.

Это требует установленного на сервере FreeMinecraftModels. Если FMM не установлен, эта настройка молча игнорируется, и предмет функционирует нормально без модели или скрипта.

Значение — это ID предмета FMM, то есть имя файла YML-конфигурации модели в папке models FMM, без расширения .yml. Например, если у FMM есть конфигурация модели в plugins/FreeMinecraftModels/models/flame_blade.yml с material: IRON_SWORD и scripts: [flame_blade.lua], вы бы сослались на неё как на flame_blade.

Когда задано scriptedItem, оно имеет приоритет над customModelV2 и equipmentModelID — EliteMobs пропустит свою собственную систему моделей и использует модель FMM вместо неё.

KeyValuesDefault
scriptedItemString (ID предмета FMM)none
Пример
material: IRON_SWORD
name: "&cFlame Blade"
lore:
- "&7Burns with eternal fire"
enchantments:
- "FIRE_ASPECT,2"
- "DAMAGE_ALL,5"
scalability: scalable
scriptedItem: flame_blade

В этом примере:

  • EliteMobs контролирует имя предмета, лор, зачарования, масштабирование уровня и поведение привязки к душе
  • FMM предоставляет 3D-модель предмета и выполняет скрипт flame_blade.lua (например, эффекты частиц при экипировке, кастомное поведение атаки)
  • material: IRON_SWORD используется EliteMobs как базовый тип предмета

showSource

Задаёт, отображает ли предмет информацию о своём источнике или происхождении в лоре.

KeyValuesDefault
showSourceBooleantrue
Пример
showSource: false

Когда это установлено в false, предмет не будет отображать, откуда он был получен.


permission

Задаёт право, необходимое для получения предмета.

KeyValuesDefault
permissionStringnone

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

Пример
permission: "elitemobs.cool.permission"

С этой настройкой только игроки с правом elitemobs.cool.permission смогут получить этот предмет.


soulbound

Задаёт, должен ли предмет быть привязан к душе при дропе.

KeyValuesDefault
soulboundBooleantrue
Пример
soulbound: true