Minecraft - что такое указатели и селекторы в командах (@a, @p ...)

  • Дата публикации
  • Количество просмотров 38937
  • Количество комментариев 0

В Minecraft существуют команды, где нужно вводить цель (имя игрока или сущности), например когда мы хотим выдать какому-то игроку предмет или определенному мобу какой то эффект от зелья, либо всем сущностям поблизости. В Minecraft есть такой механизм и он предоставляет нам большие возможности, для указания какой то конкретной цели. Это может пригодиться вам, например, когда вы делаете какую-то карту, либо при администрирования сервера или же просто для развлечения)


Указатели

Итак, давайте рассмотрим виды целей, которые вы можете ввести:

@pБлижайший игрок
@rСлучайный игрок
@eВсе сущности (игроки, мобы, предметы и т.д)
@aВсе игроки
@sИсполнитель команды (т.е игрок, который ввел команду). Если исполнитель — не сущность, а, например, командный блок, то селектор ничего не найдёт.

Указатели (примеры)

Чтобы было понятно, как использовать указатели, давайте я приведу вам несколько примеров.

  1. Выдаем всем игрокам режим игры creative
  2. /gamemode creative @a

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

  3. Установим всем сущностям эффект левитации на 10 секунд
  4. /effect give @e minecraft:levitation 10

    По таблице выше указатель @e, означает выбор всех существ, таким образом мы всем игрокам (себе в том числе), мобам эффект левитации на 10 секунд.

  5. Выдадим себе 5 печенек
  6. /give @s minecraft:cookie 5

    Указатель @s позволяет нам выдать самому себе предметы, и это будет работать вне зависимости от вашего никнейма.

Селекторы в Minecraft

Сами по себе указатели без селекторов не настолько сильные, сколько указатели в купе с селекторами, и сейчас вы узнаете, почему. С помощью селектора @e и селектора @a, вы уже знаете что нам доступен набор всех существ и всех игроков. Но что если мы хотим выбрать не всех игроков, а только 5? Здесь нам помогут селекторы. С их помощью мы можем написать @a[limit=5], и этот селектор позволит нам ограничиться только 5-ю игроками. Давайте рассмотрим полный список селекторов.

xКоордината X, с которой производится поиск сущностей (по умолчанию - координата исполнителя или позиция командного блока или 0 если выполнена с объекта не в мире.
yКоордината Y, с которой производится поиск сущностей.
zКоордината Z, с которой производится поиск сущностей.
dxКоордината X объекта в мире.
dyКоордината Y объекта в мире.
dzКоордината Z объекта в мире.
distance‌Указывает максимальный радиус поиска от координат исполнителя
teamВыбирает игроков, входящих в определенную команду (у игрока должна быть указана команда)
nameВыбирает по нику игрока или названию сущности
typeТип сущности, конкретный ID, например minecraft:arrow - стрела
tagНаличие или отсутствие определенного тега у сущности
family‌Принадлежность сущности, например это предмет или моб, монстр.
sortСортировка (есть 4 вида сортировки): arbitrary - по времени создания сущности, random - случайная сортировка, nearest - самые ближайшие сущности, furthest - самые дальние сущности
predicate‌Выборка по информации о предмете, в формате JSON
advancements‌Выборка по наличию и отсутствию достижений
nbt‌NBT теги
x_rotation‌Поворот сущности вертикальный (в градусах)
y_rotation‌Поворот сущности горизонтальный (в градусах)

Селекторы (примеры)

  1. Выберем 5 случайных игроков, находящихся в радиусе 100 блоков и выдадим им по алмазу
  2. /give @a[limit=5,sort=random,distance‌=100] minecraft:diamond

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

  3. Убъем всю нечисть на карте (монстров)
  4. /kill @e[family!=undead]

    Здесь мы видим, что вместо равенства мы можем использовать отрицание, таким образом undead обозначает живых мобов, а мы выбираем всех неживиых сущностей

  5. Телепортируем всех коров, повернутых на угол от 30 до 90 градусов к нам
  6. /tp @e[type=cow,x_rotation=30..90] ~ ~ ~

    Две точки между двумя числами означают диапозон значений и с помощью него мы можем выбрать, как показано в примере, угол поворота или какую-то квадратную область, если зададим селектор [dx=-5..5,dy=-5..5,dz=-5..5],

Заключение

Мы рассмотрели указатели в Minecraft и некоторые примеры команд с указателями, и поняли что для них существуют селекторы (парамерты), и также некоторые примеры команд с ними.

А синтаксис указателя выглядит вот так:

@<вид_цели>[<параметр>=<значение>,<параметр>=<значение>,…].

Параметры добавляются после вида цели (указателя) в квадратных скобках и разделяются запятыми и мы должны также понимать что синтаксис всех указателей и их значения чувствительны к регистру.

Спасибо за внимание, надеюсь это было вам полезно!
Вверх!