Текст и цвет
Селекторы целей
Тот самый кусок @e[type=zombie,distance=..10], который стоит внутри почти каждой команды. Ошибку в нём игра не называет: команда выполняется и просто не находит никого.
Селектор
Команда целиком
/kill @e8 из 256 знаков
- @e без «Тип существа» ловит вообще всё: выпавшие предметы, стрелы, рамки, картины, лодки и вагонетки. С командой /kill это выглядит как «у меня пропал весь дроп и разъехались рамки».
Что значит каждый селектор
| Селектор | Кого выбирает | Сколько целей | Уже включено |
|---|---|---|---|
@e |
Любые сущности — включая предметы, стрелы и рамки. | сколько найдётся | — |
@a |
Все игроки, в том числе наблюдатели и мёртвые. | сколько найдётся | — |
@p |
Ближайший игрок. | одна | limit=1, sort=nearest |
@r |
Случайный игрок. | одна | limit=1, sort=random |
@s |
Тот, кто выполняет команду. Ничего не ищет. | одна | — |
@n |
Ближайшая сущность. Появился в 1.21. | одна | limit=1, sort=nearest |
Аргументы пишутся в квадратных скобках сразу за селектором и через запятую: @a[gamemode=survival,distance=..20]. Восклицательный знак перед значением означает «кроме»: type=!player.
Что нужно знать про селекторы
@e— это вообще всё. Выпавшие предметы, стрелы, сферы опыта, рамки, картины, лодки и вагонетки тоже сущности. Отсюда самая известная беда:/kill @eубивает дроп, разъезжает рамки и заодно самого игрока.- Диапазоны пишутся точками.
..10— не дальше десяти,2..— не ближе двух,2..10— между. Одно число означает «ровно столько», и по расстоянию оно почти никогда не срабатывает. - Отрицаний можно много, утверждение — одно.
type=!zombie,type=!creeperзаконно, а два положительныхtype=игра отвергнет: сущность не бывает двух видов сразу. - У
@pи@rуже стоятlimit=1и порядок. Дописывать их не ошибка, но и не работа. А вот@s[limit=1]игра отвергает командой целиком —@sи так один. dx,dy,dz— не радиус. Это размер коробки от точки отсчёта в плюс. Вместе сdistanceони работают как «и», а не как «или»: цель обязана попасть и в шар, и в коробку.@aберёт мёртвых и наблюдателей. Для «всех живых игроков» нуженgamemode=!spectator, а иногда и проверка здоровья через NBT.- Команды по игрокам не примут селектор, ловящий мобов.
/gamemode,/give,/clearи/xpотвергнут@eцеликом — даже если по факту в него попадают одни игроки. - Порядок аргументов игре безразличен. Наш вывод всегда один и тот же не ради неё, а ради адреса: у одного селектора должна быть одна запись.
Селектор — половина команды. Вторая половина у соседей: генератор мобов собирает того, кого вы потом будете искать, а генератор /tellraw — сообщение, которое им отправят.
Частые вопросы
Чем отличается @p от @s в Minecraft?
@p — ближайший игрок к точке выполнения команды, @s — тот, кто команду выполняет. В командном блоке @s не указывает ни на кого.
Как выбрать мобов в радиусе?
Аргументом distance с диапазоном через две точки: distance=..10 — не дальше десяти блоков. Тип существа при этом обязателен, иначе @e поймает и предметы, и стрелы, и рамки.
Почему селектор не находит никого?
Чаще всего из-за опечатки в типе: type=zomby выглядит идентификатором, и команда «выполняется», ничего не найдя. Второй случай — limit=1 у @s, такую команду игра отвергает целиком.
