Прочие компьютерные игры

Хотел сделать карту для майнкрафт то не могу сделать 1 команду

Как сделать чтобы при ломании блока выполнялась команда? например я ломаю блок железа и в чате высвечивается текст
Проверять наличие в нужном месте блока воздуха (или отсутствие блока железа) и, если условие выполняется, выдавать в чат текст.
Александр Иванов
Александр Иванов
83 218
Лучший ответ
Самый правильный способ – использовать счётчики игровой статистики. Тут мы просто создадим переменную (scoreboard), в которую майнкрафт автоматически будет записывать количество сломанных блоков железа. Если эта переменная равна 1, то был сломан блок. Когда это произошло, мы выводим игроку с этой единицей текст и обнуляем её значение, чтобы избежать зацикливания.

Если проще, то нам понадобится простой механизм из командных блоков:
1) Создаём переменную iron_block (название для примера, может быть любым)
/scoreboard objectives add iron_block minecraft.mined:minecraft.iron_block
2) размещаем ряд командных блоков:
• Всегда активный цикличный КБ с командой
tellraw @a[scores={iron_block=1..}] ["",{"text": "Железный блок сломан.", "color":"white"}]
• Цепной всегда активный КБ в условном режиме с командой
scoreboard players set @a[scores={iron_block=1..}] iron_block 0

Это простой триггер событий (хоть и не самый продвинутый). Аналогично и для других блоков и действий, которые могут считаться статистикой.
Андрей Нелий
Андрей Нелий
35 383
Sergey Migunov Есть вопрос. Где после всего этого писать координаты блока?
ставишь цикличный командый блок пишешь в нём /testforblock <корды> air
рядом с ним компаратор потом обычный командный блок
и в нём команду /tellraw @a {"color":"цвет например red","text":"текст"}
DI
Dastan Ibraev
574
Александр Иванов testforblock убрали в 1.13, сейчас это делается в одну команду через execute.
для bedrock edition: подходит вариант @NCraftIngEnetTM.
для java edition такой команды нету. есть команда execute if block <корды> <блок> run <команда>. даже в один командный блок!