The Best Resource for Minecraft
The Best Resource for Minecraft

/attribute: базове значення чи модифікатори, і чому ваше скидається

/attribute: базове значення чи модифікатори, і чому ваше скидається

Встановлення базового значення є постійним, а модифікатора — ні, якщо тільки ви не обрали неправильну дію. Три дії, порядок накладання та пастка слотів.

/attribute looks like one command with three subcommands. It is really two different systems that happen to share a name, and mixing them up is why values keep snapping back.

базове проти модифікатора

/attribute @s minecraft:max_health base set 40
/attribute @s minecraft:max_health modifier add my_buff 20 add_value
  • base set перезаписує власне значення сутності. Воно зберігається після перезавантажень і

не видаляється нічим, окрім іншого base set.

  • modifier add накладає тимчасове коригування зверху. Воно має id, і його можна

видалити за цим id.

Якщо зміна зникає при перезаході, ви використали модифікатор і щось його скинуло. Якщо зміна не зникає, ви використали base set and need base reset.

Три дії та порядок їх застосування

ДіяЩо робитьЗастосовується
add_valuevalue + nпершим
add_multiplied_basevalue + (base × n)другим
add_multiplied_totalrunning total × (1 + n)останнім

Порядок фіксований і має значення. Починаючи з базового 20, потім add_value 10 and add_multiplied_total 0.5:

20 → 30 → 45          not  20 → 30 → 30 + 10 = 40

add_multiplied_base always multiplies the початкового базового значення, а не поточного результату — саме тому два з них додаються, а не множаться.

Ідентифікатори модифікаторів тепер мають простори імен

Старі версії використовували UUID. Сучасні версії використовують ідентифікатор із простором імен:

/attribute @s minecraft:attack_damage modifier add my_pack:rage 5 add_value

Додавання другого модифікатора з тим самим id замінює перший замість складання. Це передбачений спосіб оновити підсилення — вам не потрібно спочатку видаляти його.

Модифікатори спорядження зберігаються в предметі, а не в сутності

Бонус до шкоди зачарованого меча — це attribute_modifiers компонент предмета, і він застосовується лише тоді, коли предмет у правильному слоті:

/give @s diamond_sword[attribute_modifiers=[{type:"attack_damage",amount:5,
  operation:"add_value",slot:"mainhand",id:"my:bonus"}]]

slot is required and is the usual mistake. Пропустіть його, і модифікатор застосовуватиметься в кожному слоті, тож меч в інвентарі посилюватиме вас, навіть просто лежачи там.

Допустимі слоти: mainhand, offhand, head, chest, legs, feet, armor, body, any.

Зчитування значення

/attribute @s minecraft:max_health get

повертає базове, а не фактичну суму. Щоб отримати підсумок включно з модифікаторами, використовуйте execute store result on a scoreboard and read that.

Створюйте будь-що з цього (включно з формою компонента предмета із заданим слотом) у Конструктор команд сутностей і бою.

Спробувати інструмент: Entity & Combat Command Builder →