Руководство для начинающих по командным блокам в Minecraft
Minecraft - один из лучших способов познакомить молодых и новых людей с программированием. Командные блоки просты в освоении и использовании, а Java-программирование уже совсем близко с модами Minecraft и плагинами Bukkit. Это также очень интересное место для опытных программистов.
Что такое командные блоки и почему я должен их использовать?
Командные блоки являются компонентом Redstone, который выполняет консольные команды при включении питания. Консольные команды можно запускать из окна чата, выполняя их с косой чертой «/». Команды используются для изменения игрового мира способами, которые невозможны вручную, и, при правильном использовании в командных блоках, дают Minecraft свой собственный язык псевдо-программирования. Код состоит из двух вещей: логики и выполнения, и большинство языков программирования требуют, чтобы оба были написаны в тексте. Кодирование Minecraft идет другим путем; логика и структура программы определяются расположением блоков и их разводкой, а это означает, что вы можете пролетать над своим миром и видеть, как различные части вашей программы выложены блок за блоком..
Итак, как мне начать?
В этом руководстве используются новые командные блоки в версии 1.9. Он будет работать в 1.8, но может потребовать немного больше опыта.
Откройте новый мир Minecraft (лучше всего работает Superflat), убедитесь, что вы находитесь в творческом режиме, и нажмите кнопку «/». Это командное окно, которое аналогично окну чата, за исключением того, что оно запускает вас с «/», а все, что начинается с косой черты, является командой. Первая команда, которую вы можете запустить
/ give @p minecraft: command_block
Давайте разберемся с этим. Команда «/ Give» помещает предметы в инвентарь игрока и имеет два аргумента: игрок и предмет, который нужно отдать. «@P» - это селектор цели. Селектор «@p» выбирает ближайшего игрока. В качестве альтернативы, вы также можете использовать свое имя пользователя Minecraft, но если вы запустите команду из консоли, вы всегда будете ближайшим игроком. Другими селекторами целей являются «@a» для всех игроков, «@r» для случайного игрока, а «@e» нацеливает всех юридические лица. Объекты включают в себя все, что не является блоком, такие как монстры, снежки, животные и стрелы.
Команда должна выполнить успешно и дать вам новый блок. Поместите это где-нибудь на земле, чтобы начать.
Вы можете видеть, что командный блок указывает направление, в котором вы его размещаете, очень похоже на бункеры или печи. Это будет важно позже.
Щелкните правой кнопкой мыши по блоку (или используйте любой ключ, который вы используете для доступа к рабочим столам и печам), и вас встретит командный блок GUI..
Сначала это кажется немного пугающим, но не волнуйтесь, все эти кнопки что-то делают. Кнопка с надписью «Импульс» изменяет тип командного блока. Существует три разных типа командных блоков:
- Импульс, который запускает команды на поднимающийся край Редстоун тока. Это означает, что когда они получают питание, они запускают свою команду один раз и останавливаются, даже если они продолжают получать питание. Это настройка по умолчанию и единственная доступная в 1.8
- Повторите, которые запускают команды каждый поставить галочку они питаются. Тик похож на фрейм, и несколько команд могут быть запущены за один тик, до 20 раз в секунду.
- Цепочка, которая запускается, только если указывающий на нее командный блок выполнил свою команду. Они будут работать по порядку, один за другим, в один тик, отсюда и название «Цепочка».
Кнопка с надписью «Безусловный» останавливает командный блок от проверки, успешно ли выполнен предыдущий блок в цепочке. Другая опция, «Условная», запускается, только если предыдущий блок не выдал ошибок.
Кнопка с надписью «Требуется красный камень» запускает команду только в том случае, если на командный блок подается питание. Другая опция «Всегда активно» останавливает командный блок от проверки, включен ли он, и просто предполагает, что он включен. Эта опция не должна использоваться с командными блоками Impulse, так как делает их бесполезными.
Давайте сделаем цепочку, наш первый «сценарий». Поместите блок команд цепочки или два в первый блок импульсных команд, например так:
Убедитесь, что для блоков цепи установлено значение «Всегда активно». В противном случае нам нужно было бы поместить блоки из красного камня или ток, который занимает ненужное место. Поместите кнопку в блок импульсных команд в начале цепи и нажмите ее.
Ничего не случится. Это потому, что мы еще не заполнили их командами! Щелкните правой кнопкой мыши по блоку импульсов, чтобы отредактировать его, и введите основную команду.
скажи старт
Обратите внимание, что нам не нужен косая черта в командных блоках. Вы можете использовать один, если хотите, но это не нужно. Команда «/ say» принимает один аргумент, текст и произносит его с точки зрения того, кто его выполняет. Если вы запустите его, он будет отображаться как «сообщение», как обычный чат. Если он запускается из командного блока, это будет «[@] сообщение». Кроме того, есть «/ Tell», который принимает аргумент игрока, и «/ Tellraw», который похож на «/ Tell», за исключением того, что принимает текстовый JSON вместо текста.
Вы можете заполнить блоки команд цепочки, чтобы написать больше вещей для чата. Они будут выполнены по порядку, без задержки, в один и тот же тик. Если вы хотите запустить их с задержкой, вам нужно настроить их с помощью ретрансляторов Redstone. Наряду с «/ say», есть и другие основные команды, которые делают больше вещей, например «/ give», который дает элементы, «/ effect», который применяет эффекты зелья, «/ setblock» и «/ fill», которые изменяют ваш мир , и много других. Большая база команд может быть найдена в Minecraft Wiki, а также другой полезный контент.
Целевые Селекторы
Селекторы цели «@p» на самом деле намного мощнее, чем кажется на первый взгляд. Например, если бы мы хотели нацеливаться на все сущности, мы бы использовали «@e», но если бы мы хотели нацеливаться только на зомби, мы бы использовали
@e [тип = зомби]
Обратите внимание на квадратные скобки после «@e». Внутри эти скобки аргументы селектора цели, полный список которых можно найти в Minecraft Wiki. Аргумент «type» выбирает только объекты определенного типа, этот «Zombie». Если бы мы хотели нацелиться на всех зомби в пределах 10 блоков командного блока, мы бы использовали
@e [тип = зомби, г = 10]
При этом «r» является аргументом радиуса. Вы также можете выбрать таргетинг по местоположению, имени, команде и количеству очков..
Команды цепочки
Давайте введем другую команду, которая не похожа на другие. Команда «/ выполнить». Эта команда принимает в качестве ввода другую команду и выполняет ее с точки зрения другого объекта. Структура «/ выполнить»
/ выполнить команду @target X Y Z /
X, Y и Z - координаты для запуска команды. Это не имеет значения для большинства команд, но очень важно, если вы используете относительное расположение. Относительная позиция начинается с «~» и сопровождается положительным или отрицательным числом, указывающим, сколько блоков от начала координат, что обозначается «~ ~ ~». Так, например, если мы хотим запустить «/ сказать», как если бы сельчанин говорил, мы можем настроить команду следующим образом:
/ выполнить @e [type = сельский житель] ~ ~ ~ / сказать Эй
Эта команда приведет к тому, что сообщение будет отправлено всем, от каждого жителя деревни. Это не оптимально, если у нас более одного человека или более одного жителя деревни, поэтому давайте переформатируем эту команду:
/ выполнить @a ~ ~ ~ / выполнить @e [type = сельчанин, c = 1] ~ ~ ~ / рассказать @p Эй
Это намного сложнее, чем первая, и включает в себя объединение двух команд «/ execute». Первая команда «/ execute» запускается для каждого игрока, затем вторая проверяет, находится ли ровно один сельчанин поблизости, и затем этот сельчанин говорит ближайшему игроку «Привет». Это гарантирует, что только один сельский житель говорит на человека.
Изучение синтаксиса
В Minecraft, безусловно, есть много команд, каждый из которых имеет свой синтаксис. Меню справки для каждой команды обычно быстро подскажет, какие аргументы нужны команде, а в Minecraft Wiki есть подробный список того, что делает каждая из них. Речь идет не столько о том, чтобы точно знать, что делает каждая команда, но о том, как использовать их вместе. В конце концов, Minecraft - это игра, поэтому игра с командами является частью процесса обучения.