[1.8+][Guide] Как пользоваться командой /execute
Сначала небольшое описание команды. /execute — это команда, которая позволяет выполнять какие-то команды относительно какой-либо сущности или игрока в майнкрафте. Я понимаю, что прозвучало сложно, но сейчас я всё подробно объясню. Но если вы ранее не имели дело с КБ, то вам стоит сначала разобраться в других командах.
Начём с того, как пишется команда /execute.
Пример: /execute <Селектор или ник>
Т.е. относительно того, кого мы указали в селекторе будет выполнятся какая-либо команда.
0.5 0.2 0.5 0.05 10
Т.е. относительно всех игроков спавнятся частицы пламени, и вот получается такой эффект.
Также есть такая дополнительная команда, которая действует только для /execute. Это команда detect, которая проверяет есть ли блок в указанном месте.
Пример: /execute <Селектор или ник> <Смещение относительно сущности>detect (Координаты) (id блока) (data блока)
gold_block 0 effect @p 8 1 3
Эта команда делает так, что если вы стоите на золотом блоке, то вам даётся эффект прыжка 4-го уровня (Не 3-го, 4-го).
Также можно писать команду /execute в команде /execute (Да, звучит странно), что позволяет вам искать сущности относительно других сущностей, и уже относительно них выполнять команды.
Пример: /execute <Селектор или ник> <Смещение относительно сущности>execute <селектор>
Т.е. если относительно вас на расстоянии 2 блоков есть крипер, то в него бьёт молния.
Впринципе, на этом всё, с вами был Just_Lemon , всем пока.
Источник
Почему не работает execute()?
Потому что надо правильно соединяться.
ПДО только в 8-ке начал по умолчанию сообщать об ошибках, а во всех остальных версиях ему надо об этом сказать, при создании соединения.
И убрать этот дурацкий if с дурацким done.
Для того чтобы знать, работает или нет, есть сообщения об ошибках.
Этого достаточно.
Если не работает, то будет ошибка.
Если ошибки нет — значит работает.
понимание базовых принципов программирования очень сильно сокращает количество ненужной писанины 🙂
Ну и надо разумеется чтобы ошибки не были задавлены в РНР
error_reporting() строго в E_ALL, плюс на время разработки display_errors в true, чтобы по логам не лазить
1. на время разработки display_errors в true, чтобы по логам не лазить
2. я написал в своем ответе, как сделать так, чтобы ошибки были
Скажите, у вас в голове только одна строчка помещается что ли? И читая следующую вы уже забываете предыдущую?
Я вам дал пример правильного соединения с ПДО, где включается режим информирования об ошибках.
Неужели так трудно взять и скопировать код?
Источник
Minecraft Wiki
Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.
Команды консоли/execute
Выполняет команду с дополнительными функциями.
Java Edition [ ]
Команда /execute разделена на подкоманды. Подкоманды делятся на три категории:
- Модификатор: подкоманды, которые позволяют изменить способ выполнения команды. Например, изменить исполнителя и место исполнения команды.
- Условие: подкоманды, которые могут препятствовать выполнению команды. Например, команда выполнится, если существует определённая сущность.
- Запись: подкоманды, которые сохраняют результат или успешность исполнения команды.
Команда /execute может содержать неограниченное число подкоманд, кроме подкоманды run . Эта подкоманда может быть записана лишь один раз в конце всей цепочки подкоманд. Обратите внимание, что нельзя использовать / в начале команды, записанной с run .
Модификатор | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Использование
Аргументы
|
Условие | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Команда | Возвращаемое значение | |
---|---|---|
result | success | |
/execute (if|unless) block
Проверка: if : проверяет нахождение на указанной позиции указанного блока. unless : проверяет нахождение на указанной позиции любого блока, кроме указанного. Примеры: /execute if block 0 64 0 diamond_block run say Алмазный блок! : выводит в чат сообщение, если на координатах (0, 64, 0) найдет алмазный блок. /execute as @a at @s unless block air run say Не воздух! : относительно каждого игрока проверяется наличие воздуха под ним; если его нет, в чат выводится сообщение. | Условие выполнено — 1; иначе — 0. | Условие выполнено — 1; иначе — 0. |
/execute (if|unless) blocks (all|masked)
Проверка: if : проверяет полное соответствие областей. unless : проверяет несоответствие областей. Пример: /execute if blocks 0 0 0 10 10 10 20 20 20 masked run say Полное соответствие! : выводит в чат сообщение, если область [(0, 0, 0) → (10, 10, 10)] полностью соответствует области [(20, 20, 20) → (30, 30, 30)]. | if : условие выполнено — количество проверяемых блоков; иначе — 0. unless : условие выполнено — 1; иначе — 0. | Условие выполнено — 1; иначе — 0. |
/execute (if|unless) entity
Проверка: if : проверяет существование хотя бы одной сущности из указанных. unless : проверяет несуществование ни одной сущности из указанных. Пример: /execute if entity @e[type=cow] run say Корова! : выводит в чат сообщение, если в прогруженных чанках существует корова. | if : условие выполнено — количество найденных сущностей; иначе — 0. unless : условие выполнено — 1; иначе — 0. | Условие выполнено — 1; иначе — 0. |
/execute (if|unless) score ( =|>)
Проверка: if : проверяет соответсвие выражения истине. unless : проверяет соответсвие выражения лжи. Пример: /execute if score Alex obj : выводит в чат сообщение, если счёт Alex в задаче obj меньше, чем счёт Steve в той же задаче. | Условие выполнено — 1; иначе — 0. | Условие выполнено — 1; иначе — 0. |
/execute (if|unless) score matches
Проверка: if : проверяет нахождение счёта в диапазоне. unless :проверяет нахождение счёта вне диапазона. Пример: /execute if score Alex obj matches 1.. run say Натуральное число! : выводит в чат сообщение, если счёт Alex в задаче obj не меньше 1. | Условие выполнено — 1; иначе — 0. | Условие выполнено — 1; иначе — 0. |
Аргументы
Аргумент | Тип | Описание | Свойства |
---|---|---|---|
(if|unless) | Литерал | Тип условия:
| — |
Блок | — | — | |
, , , | Координаты | — | — |
(all|masked) | Литерал | Метод проверки области:
| — |
Селектор | — |
| |
, | Счётчик | — |
|
, | Задача | Название задачи для проверки. | — |
( =|>) | Литерал | Оператор, используемый для теста. | — |
Диапазон | — | — |
Запись | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Использование
Аргументы
|
Bedrock Edition [ ]
Цвет был добавлен для облегчения чтения.
Аргументы origin: target Имя игрока или селектор, которого необходимо назначить исполнителем команды. Если указано более одной цели, команда выполнится относительно каждой. position: x y z Позиция, с которой выполнится команда. Относительные координаты указываются относительно цели. command: string Команда, подлежащая выполнению. detectPos: x y z Координаты, на которых идёт поиск блока. Относительные координаты указываются относительно position: x y z . detectBlock: string Идентификатор блока, подлежащего поиску на координатах detectPos: x y z . detectData: int Данные блока, подлежащего поиску. -1 — любой тип блока. Результат Не выполняется, если неверно указаны аргументы. Не выполняется, если цель не найдена. Не выполняется, если определённый блок не найден на указанных координатах. Не выполняется, если не удалось выполнить команду. В случае успеха выполняет команду относительно указанной цели со статусом оператора на указанных координатах. Примеры Создание такого количества молний на координатах (0, 64, 0), сколько существует криперов на момент выполнения команды: execute @e[type=creeper] 0 64 0 summon lightning_bolt Создание молнии на координатах всех существующих на момент выполнения команды криперов, стоящих на любом виде песка: execute @e[type=creeper]
minecraft:sand -1 summon lightning_bolt Перемещение всех игроков, у которых в радиусе 10-ти блоков есть крипер, к ближайшему криперу. execute @e[type=creeper]
Источник