Свой сервер

Сет брони с бонусом за полный комплект

Надел шлем, нагрудник, поножи и ботинки — получил скорость, силу или ночное зрение; снял хоть один — бонус пропал. Как сеты в RPG, только датапаком для Minecraft 1.21.9 — 26.3, без модов.

Материал

Без «особого» бонус даёт любая броня этого материала — и скрафченная, и найденная.

Название сета

Алмазный сет

Датапак · 1.21.9 — 26.3
Бонус
Скорость 1
Бонус
Сила 1

Выдать комплект — /function set_diamond:give или командами

/give @s minecraft:diamond_helmet[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: шлем","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
/give @s minecraft:diamond_chestplate[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: нагрудник","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
/give @s minecraft:diamond_leggings[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: поножи","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
/give @s minecraft:diamond_boots[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: ботинки","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
Скачать датапак
Что внутри архива — 5 файлов

data/minecraft/tags/function/load.json

Тег load: игра зовёт эти функции при загрузке мира и после /reload.

{
  "values": [
    "set_diamond:load"
  ]
}

data/set_diamond/function/load.mcfunction

При загрузке мира: проверка комплекта раз в секунду.

schedule function set_diamond:check 1s

data/set_diamond/function/check.mcfunction

Раз в секунду: кто в полном комплекте — тому бонус.

execute as @a if items entity @s armor.head minecraft:diamond_helmet[minecraft:custom_data~{armor_set:"diamond"}] if items entity @s armor.chest minecraft:diamond_chestplate[minecraft:custom_data~{armor_set:"diamond"}] if items entity @s armor.legs minecraft:diamond_leggings[minecraft:custom_data~{armor_set:"diamond"}] if items entity @s armor.feet minecraft:diamond_boots[minecraft:custom_data~{armor_set:"diamond"}] run function set_diamond:bonus
schedule function set_diamond:check 1s

data/set_diamond/function/bonus.mcfunction

Бонус комплекта на 3 с — обновляется, пока он надет.

effect give @s minecraft:speed 3 0 true
effect give @s minecraft:strength 3 0 true

data/set_diamond/function/give.mcfunction

/function set_diamond:give — выдать себе особый комплект.

give @s minecraft:diamond_helmet[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: шлем","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
give @s minecraft:diamond_chestplate[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: нагрудник","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
give @s minecraft:diamond_leggings[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: поножи","color":"gold","italic":false},minecraft:enchantment_glint_override=true]
give @s minecraft:diamond_boots[minecraft:custom_data={armor_set:"diamond"},minecraft:item_name={"text":"Алмазный сет: ботинки","color":"gold","italic":false},minecraft:enchantment_glint_override=true]

Как поставить

  1. Скачайте датапак

    Распаковывать не нужно: игра читает его прямо из zip.

  2. Положите в мир

    В одиночной игре — saves/<мир>/datapacks, на сервере — world/datapacks, потом /reload.

  3. Наденьте комплект

    Все четыре предмета — и через секунду появится бонус. Особый комплект выдаёт /function set_diamond:give.

Что нужно знать

  • Проверка — раз в секунду. Эффект даётся на 3 секунды и обновляется, пока комплект надет: снял предмет — бонус кончится сам.
  • Сеты ставятся рядом. У каждого материала своё пространство имён (set_diamond): алмазный сет на скорость и незеритовый на силу работают вместе.
  • Особый не подделать. Метка комплекта — компонент custom_data: переименованная наковальней броня бонус не получит.

Цвет и узор брони — цвет кожаной брони и отделка брони, атрибуты без датапака — генератор атрибутов.

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

Как сделать бонус за полный комплект брони в Майнкрафте?

Датапаком: выберите материал и эффекты. Раз в секунду пак проверяет, надеты ли все четыре предмета, и даёт эффекты, пока комплект на игроке.

Можно ли сделать особый комплект, а не любую броню?

Да: «особый комплект» помечен компонентом custom_data, его выдаёт функция пака — для алмазного /function set_diamond:give. Обычная броня того же материала бонуса не даст.

Можно ли поставить несколько сетов?

Да: у каждого материала своё пространство имён, алмазный и незеритовый сеты работают рядом.