Используется для изменения или чтения атрибутов .

Синтаксис [ ]

attribute get [] Возвращает общее значение указанного атрибута. attribute base get [] Возвращает базовое значение указанного атрибута. attribute base set Заменяет базовое значение указанного атрибута заданным значением. attribute modifier add (add|multiply|multiply_base) Добавляет модификатор атрибута с указанными свойствами, если модификатор с таким же UUID уже не существует. attribute modifier remove Удаляет модификатор атрибута с указанным UUID. attribute modifier value get [] Возвращает значение модификатора с указанным UUID.

Аргументы [ ]

Сущность, к которой применяется атрибут . Только игроки, стойки для доспехов и мобы имеют атрибуты. Должно быть имя игрока, целевой селектор или UUID . И целевой селектор должен быть однотипным.

Число, на которое умножается значение перед сохранением с помощью команды. /execute Должен быть Число в формате с плавающей запятой двойной точности .

Атрибут и где его можно использовать

  • A — F
  • a — f
  • 0 — 9

Задает имя модификатора . Должна быть строка. И это должно быть цитируемой фразой, которая является либо одно словом (допустимые символы: — , + , . , _ , A — Z , a — z и 0 — 9 ) или двойными кавычками.

Задает используемое значение. Должен быть Число в формате с плавающей запятой двойной точности .

Результат [ ]

Командование Курок Версия Java
любой аргументы указаны неверно Неразборчивый
не удается разрешить игроку, стойке для доспехов или мобу Не смогли
атрибут не существует (например, у объекта игрока нет minecraft:horse.jump_strength )
. modifier add . модификатор с указанным uuid уже присутствует
. modifier remove .
modifier value get .
модификатор с указанным uuid не существует
любой При успехе Изменяет или возвращает значение атрибута.

Выход [ ]

Командование Версия Ситуация Количество успехов /execute store success . /execute store result .
любой Версия Java В случае неудачи 0 0 0
. get [] При успехе 1 1 Значение атрибута (умноженное на , затем преобразованное в int)
. base get [] При успехе 1 1 Базовое значение атрибута (умноженное на , затем преобразованное в int)
. modifier value get [] При успехе 1 1 Значение модификатора (умноженное на , затем приведенное к int)
. base set .
. modifier add .
. modifier remove .
При успехе 1 1 1

Новая Команда — /attribute [Снапшот 20w17a]

Примеры [ ]

История [ ]

Версия Java 1,16 20w17a

Добавлен /attribute .

Источник: minecraftpages.wiki

Команда attribute в майнкрафт

Атрибуты это система усилений и ослаблений, которая стала доступна в Minecraft начиная с версии 13w16a. По сути это скрытые свойства для игроков и некоторых мобов, позволяющие изменять их основные характеристики. Атрибуты так же имеют модификаторы, которые позволяют управлять силой их эффекта. Если применить атрибуты к предмету, то они тоже будут влиять на параметры если этот предмет одет или если его держат в руках. При этом атрибуты и модификаторы можно создавать напрямую в игре без использования сторонних программ редактирования NBT информации.

Читайте также:  Как убрать разброс спавна в Майнкрафт

Каждый атрибут контролирует одно из свойств существа, на которого он применен. Атрибуты описываются их именем (Name), а так же всегда имеют базовое значение (Base). Помимо этого атрибуты могут иметь любое количество дополнительных модификаторов.

У каждого атрибута так же существует значение по умолчанию, которое игра применяет к создаваемому существу если атрибут не задан явно, и минимум с максимумом, причем все это жестко задано в коде игры. Атрибуты будут изменяться всеми модификаторами, но если полученное значение выйдет за пределы максимума или минимума, то оно будет исправлено до ближайшего допустимого. Максимум и минимум всегда считается включая крайние значения, то есть, например, от 0 до 2048 включительно.

С общими принципами разобрались, теперь давайте посмотрим какие возможные значения у нас существуют. Начнем непосредственно с атрибутов.

Атрибут Описание
generic.maxHealth Максимальный уровень здоровья для игрока или моба, то есть уровень здоровья, до которого существо может быть излечено в обычных условиях. Измеряется в половинках сердца (1).

Базовое значение: 20
Минимум: 0
Максимум: 2147483647
Базовое значение: 32
Минимум: 0
Максимум: 2048
Базовое значение: 0.0
Минимум: 0.0
Максимум: 1.0
Базовое значение: 0.7
Минимум: 0.0
Максимум: ∞
Базовое значение: 1
Минимум: 0
Максимум: ∞
Базовое значение: 0.7
Минимум: 0.0
Максимум: 2.0
Базовое значение: 0.0
Минимум: 0.0
Максимум: 1.0

Следует отметить, что если игра встречает незнакомый атрибут, то по умолчанию его значение приравнивается к 0.0, минимальное значение так же определяется как 0.0, а максимальное считается не ограниченным.

Итак, с атрибутами мы более-менее разобрались, настало время присмотреться к модификаторам. Их несколько больше и с ними все сложнее. Если атрибуты напрямую задают конкретные значения для отдельных параметров, то модификаторы изменяют эти параметры по определенным формулам, увеличивая либо уменьшая их.

При этом получившиеся значения в любом случае не могут выйти за пределы установленного в игре минимума и максимума. Как и у атрибутов, у модификаторов есть имя, однако оно не определяет поведение самого модификатора. Вместо этого поведение определяется выполняемой операцией. У модификаторов также существует их значение и их UUID.

Читайте также:  Кто самый лучший блоггер в Майнкрафте

Самым главным при работе с модификаторами будет операция, которая выполняется с указанными значениями. По сути именно она показывает как именно изменится атрибут, на который мы ссылаемся. Операций существует всего три, названия нумеруются числами от 0 до 2 и, по сути, являются операциями «+/- количество», «+/- количество процентов (сложение)» и «+/- количество процентов (умножение)». С математической точки зрения работают они следующим образом:

Операция 0: Просуммировать X и значение.
Операция 1: Просуммировать Y и X*значение.
Операция 2: Просуммировать Y и Y*значение.

Данные операции всегда выполняются в порядке 0 » 1 » 2, а под X и Y подразумевается следующее. В начале расчетов переменной X присваивается текущее значение атрибута, а затем выполняются все операции типа 0. После этого полученный результат присваивается переменной Y и выполняются сначала операции типа 1, а затем операции типа 2.

Как уже было сказано выше, имя модификатора не влияет на его поведение, учитывается только операция и значение. Что касается системы UUID (уникальных идентификаторов), то здесь все несколько сложнее. Лично я не вдавался глубоко в тему, но грубо говоря все выглядит так. Определенные операции жестко вшиты в игру под четко заданными UUID.

Соответственно когда мы выполняем добавление своего модификатора в игру, то этот идентификатор создается «на лету» и каждый раз меняется. Соответственно можно использовать в командах не UUID, как нам следует делать, если мы используем ванильные модификаторы, а нужно использовать конструкцию типа UUIDLeast. UUIDMost. которая задаст базовые параметры идентификаторов для нашего нового модификатора. Объясняя на пальцах — если мы повторяем уже существующий в игре эффект, то можем сослаться на его UUID (который можно найти, например, на Wiki), а если делаем что-то свое, то просто разрешаем создать новый в определенном диапазоне.

Думается мне, что это все еще достаточно сложно понять с первого раза, поэтому систему модификаторов вам придется изучать методом проб и ошибок. Ну и в качестве неплохого старта для вас я приведу пример того, как в Minecraft создать алмазную мотыгу с уникальными свойствами. Команда для ее выдачи игроку будет выглядеть приблизительно следующим образом:

В таком виде строчка слишком сложна для вашего восприятия? Ну что же, давайте попытаемся разложить все по полочкам и разбить команду на отдельные блоки. Если вы еще вдруг не в курсе, то фигурные скобки определяют границы блоков данных, а квадратные скобки — массивы. Итак, вот что у нас получится:

Читайте также:  Что такое снэпшоты в Майнкрафт

Вы можете задаться очевидным вопросом можно ли использовать несколько модификаторов в пределах одного предмета и ответом будет — разумеется. Если вы повнимательнее присмотритесь к записи, то увидите, что AttributeModifiers представляет из себя массив, поскольку внутренности заключены в квадратные скобки. Соответственно мы можем перечислить в этом массиве несколько наших модификаторов, разделяя серии фигурных скобок запятыми так:

AttributeModifiers:[параметры модиф.1>,параметры модиф.2>. параметры модиф.N>]

Надеюсь, что изучив данную статью и приведенный пример вы теперь и сами сможете окончательно разобраться с данной темой, которая многих в первый раз вводит в ступор. Удачного создания эпических предметов в Minecraft!

Источник: www.gkrond.ru

[Гайд] Рассматриваем системные атрибуты

[Гайд] Рассматриваем системные атрибуты

Итак, для редактирования уже заложенных в игру данных, нам потребуется умение работать с NBT тегами. О том, какой они имеют синтаксис, я писал отдельно. Отлично. Теперь давайте разберём сами атрибуты — скрытые свойства мобов и предметов.

generic.maxHealth — атрибут, отвечающий за максимальное количество здоровья у моба. Измеряется в половниках сердец.

generic.followRange — атрибут, отвечающий за то, как далеко моб сможет следить за игроками. Измеряется в блоках.

generic.knockbackResistance — атрибут, отвечающий за сопротивление эффекту отбрасывания от атак, взрывов и попадания снарядов. Значение 1.0 даёт полный иммунитет к урону.

generic.movementSpeed — атрибут, отвечающий за скорость перемещения моба. Не стоит забывать, что на моба может влиять и эффект скорости.

generic.attackDamage — атрибут, отвечающий за урон, наносимый мобом. Измеряется в половниках сердец.

horse.jumpStrength — атрибут, отвечающий за высоту прыжков лошади. Может применяться только к лошадям.

zombie.spawnReinforcements — атрибут, отвечающий за вероятность того, что при атаке зомби призовёт ещё одного зомби на помощь. Применяется только к зомби.

Изменение атрибутов производится с помощью массива AttributeModifiers и параметров AttributeName (Название атрибута в системе), Name (Любое название атрибута), Amount (Значение), Operation (Алгоритм, по которому будет рассчитываться финальное значение. Описано на WIKI. Это тема отдельного урока.), UUIDMost и UUIDLeast (Расположение параметров в системе. Выбирайте широкий диапазон.).

Источник: ru-minecraft.ru