В Minecraft существуют команды, где нужно вводить цель (имя игрока или сущности), например когда мы хотим выдать какому-то игроку предмет или определенному мобу какой то эффект от зелья, либо всем сущностям поблизости. В Minecraft есть такой механизм и он предоставляет нам большие возможности, для указания какой то конкретной цели. Это может пригодиться вам, например, когда вы делаете какую-то карту, либо при администрирования сервера или же просто для развлечения)
Указатели
Итак, давайте рассмотрим виды целей, которые вы можете ввести:
@p | Ближайший игрок |
@r | Случайный игрок |
@e | Все сущности (игроки, мобы, предметы и т.д) |
@a | Все игроки |
@s | Исполнитель команды (т.е игрок, который ввел команду). Если исполнитель — не сущность, а, например, командный блок, то селектор ничего не найдёт. |
Указатели (примеры)
Чтобы было понятно, как использовать указатели, давайте я приведу вам несколько примеров.
- Выдаем всем игрокам режим игры creative
- Установим всем сущностям эффект левитации на 10 секунд
- Выдадим себе 5 печенек
/gamemode creative @a
Видим, что здесь вместо указания конкретного игрока мы указали @a, что по таблице выше означает всех игроков, таким образом мы выдали креатив всем игрокам на сервере.
/effect give @e minecraft:levitation 10
По таблице выше указатель @e, означает выбор всех существ, таким образом мы всем игрокам (себе в том числе), мобам эффект левитации на 10 секунд.
/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 | Поворот сущности горизонтальный (в градусах) |
Селекторы (примеры)
- Выберем 5 случайных игроков, находящихся в радиусе 100 блоков и выдадим им по алмазу
- Убъем всю нечисть на карте (монстров)
- Телепортируем всех коров, повернутых на угол от 30 до 90 градусов к нам
/give @a[limit=5,sort=random,distance=100] minecraft:diamond
Здесь мы видим, что можно указывать сразу несколько селекторов, таким образом мы можем комбинировать их.
/kill @e[family!=undead]
Здесь мы видим, что вместо равенства мы можем использовать отрицание, таким образом undead обозначает живых мобов, а мы выбираем всех неживиых сущностей
/tp @e[type=cow,x_rotation=30..90] ~ ~ ~
Две точки между двумя числами означают диапозон значений и с помощью него мы можем выбрать, как показано в примере, угол поворота или какую-то квадратную область, если зададим селектор [dx=-5..5,dy=-5..5,dz=-5..5],
Заключение
Мы рассмотрели указатели в Minecraft и некоторые примеры команд с указателями, и поняли что для них существуют селекторы (парамерты), и также некоторые примеры команд с ними.
А синтаксис указателя выглядит вот так:
@<вид_цели>[<параметр>=<значение>,<параметр>=<значение>,…].
Параметры добавляются после вида цели (указателя) в квадратных скобках и разделяются запятыми и мы должны также понимать что синтаксис всех указателей и их значения чувствительны к регистру.
Спасибо за внимание, надеюсь это было вам полезно!