Посібник для початківців для командних блоків у Minecraft
Minecraft є одним з кращих способів представити молодих і нових людей до кодування. Блоки команд легкі в освоєнні та використанні, а програмування Java відбувається за межами модулів Minecraft і плагінів Bukkit. Це також просто дуже цікаве місце для досвідчених кодерів, щоб возитися.
Що таке командний блок і чому я повинен їх використовувати?
Блоки команд - це компонент redstone, який виконує консольні команди під час живлення. Команди консолі можна запускати з вікна балачки, переходячи їх у косу риску, '/'. Команди використовуються для зміни ігрового світу способами, які неможливі вручну, і, коли правильно використовуються командні блоки, надають Minecraft власну мову псевдо-програмування. Код складається з двох речей: логіка і виконання, і більшість мов програмування вимагають, щоб обидва були написані в тексті. Кодування Minecraft має інший маршрут; логіка і структура програми визначається місцем розташування блоків і тим, як вони підключені, що означає, що ви можете літати над своїм світом і бачити різні частини вашої програми, викладені за блоком за блоком.
Так, як я можу почати?
Це керівництво використовує нові блоки команд у версії 1.9. Він буде працювати в 1.8, але може знадобитися трохи більше досвіду.
Відкрийте новий світ Minecraft (Superflat працює найкраще), переконайтеся, що ви перебуваєте в режимі Creative, і натисніть кнопку "/". Це командне вікно, яке є таким самим, як вікно балачки, за винятком того, що він починається з '/', і все, що починається з косої риси, є командою. Перша команда, яку ви можете виконати:
/ дати @p minecraft: command_block
Давайте розірвемо це. Команда "/ дає" вкладає елементи в інвентаризацію гравців і має два аргументи: гравець і пункт, який потрібно віддати. "@P" - це a селектор цілі. Селектор “@p” вибирає найближчого гравця. Крім того, ви також можете використовувати своє ім'я користувача Minecraft, але якщо ви виконуєте команду з консолі, ви завжди будете найближчим гравцем. Іншими цільовими селекторами є "@a" для всіх гравців, "@r" для випадкового гравця, а "@e" - для всіх суб'єктів. Суб'єкти включають в себе все, що не є блоком, як монстри, сніжки, тварини і стріли.
Команда повинна виконатися успішно і дати вам новий блок. Розмістіть його будь-де на землі, щоб розпочати роботу.
Ви можете бачити, що командний блок вказує в тому напрямку, в якому ви його розміщуєте, багато в чому як бункери або печі. Це буде важливо пізніше.
Клацніть правою кнопкою миші на блоці (або скористайтеся будь-якою клавішею, яку ви використовуєте для доступу до обробці таблиць і печей), і вас зустрінуть з графічним інтерфейсом користувача.
На перший погляд здається трохи страшним, але не хвилюйтеся, всі ці кнопки щось роблять. Кнопка "Імпульс" змінює тип командного блоку. Існують три типи командних блоків:
- Імпульс, який запускає команди на висхідний край Редстоун. Це означає, що коли вони живляться, вони будуть виконувати свою команду один раз і зупинятися, навіть якщо вони продовжують живити. Це налаштування за замовчуванням і єдине доступне в 1.8
- Повторіть, які виконуються кожні команди галочку вони живлять. Галочка подібна до кадру, і кілька команд можна запустити в одному клічку, до 20 разів на секунду.
- Ланцюг, який запускається, лише якщо командний блок, який вказує на нього, виконав свою команду. Вони будуть виконуватися в порядку, один за іншим, одним тиком, звідси і назва "Chain".
Кнопка "Безумовна" зупиняє командний блок на перевірку успішності виконання попереднього блоку в ланцюжку. Інший параметр, "Умовний", запускається, лише якщо попередній блок не викинув жодних помилок.
Кнопка, на якій написано «Необхідно Redstone», виконує команду тільки, якщо командний блок живиться. Інший варіант "Завжди активний" зупиняє командний блок на перевірку, якщо він живиться, і тільки припускає, що він є. Ця опція не повинна використовуватися з блоками команд імпульсів, оскільки це робить їх марними.
Давайте зробимо ланцюжок, наш перший 'сценарій'. Помістіть ланцюговий командний блок або два, звернені до першого командного блоку імпульсів, наприклад:
Переконайтеся в тому, що ланцюгові блоки встановлені на “Завжди активні”. Інакше нам потрібно було б розмістити блоки червоного каменю або струм, що займає непотрібний простір. Помістіть кнопку на командному блоці імпульсу на початку ланцюга і натисніть її.
Нічого не станеться. Це тому, що ми ще не заповнили їх командами! Клацніть правою кнопкою миші на блоці імпульсів, щоб відредагувати його, і покладіть в основну команду
Скажіть, початок
Зверніть увагу, що нам не потрібна коса риса в командних блоках. Ви можете використовувати один, якщо хочете, але це непотрібно. Команда "/ say" приймає один аргумент, текст і говорить це з точки зору того, хто її виконує. Якщо ви запустите його, воно буде відображатися як "повідомлення", як звичайний чат. Якщо він виконується з командного блоку, це буде повідомлення [@]. Крім того, існує "/ tell", який приймає аргумент гравця, і "/ tellraw", який подібний до "/ tell", за винятком того, що замість текстового JSON замість тексту.
Ви можете заповнити блоки команд ланцюга, щоб написати більше речей для чату. Вони будуть виконані в порядку, без затримки, в тій же галочці. Якщо ви хочете запустити їх із запізненням, вам потрібно буде налаштувати їх за допомогою повторювачів redstone. Поряд з "/ say", існують інші основні команди, які роблять більше речей, наприклад, "/ give", що дає елементи, "/ effect", які застосовують ефекти зілля, "/ setblock" та "/ fill", які змінюють ваш світ і багато інших. Велику базу даних команд можна знайти на вікні Minecraft, а також інший корисний вміст.
Цільові селектори
Цільові селектори "@p" насправді набагато потужніші, ніж здається на перший погляд. Наприклад, якщо ми хочемо націлити всі об'єкти, ми будемо використовувати "@e", але якщо ми хочемо націлювати лише зомбі, ми будемо використовувати
@e [type = Zombie]
Зверніть увагу на дужки після "@e". Всередині цих дужок є аргументи селектора цілі, повний список яких можна знайти у вікі Minecraft. Аргумент “type” вибирає лише сутності певного типу, тобто “Zombie”. Якщо ми хочемо, щоб цільові всі зомбі в межах 10 блоків командного блоку, ми будемо використовувати
@e [type = Zombie, r = 10]
Якщо параметр "r" є аргументом радіуса. Можна також орієнтуватися за місцем розташування, назвою, командою та кількістю балів.
Команди з ланцюжком
Давайте введемо іншу команду, яка не схожа на інші. Команда "/ execute". Ця команда приймає іншу команду як вхід і виконує її з точки зору іншої сутності. Структура "/ execute" є
/ виконати команду @target X Y Z /
X, Y і Z є координатами для виконання команди. Це не має значення з більшістю команд, але має велике значення, якщо ви використовуєте відносне розташування. Відносне положення починається з "~" і супроводжується позитивним або негативним числом, що вказує, скільки блоків від початку, яке позначається "~ ~ ~". Так, наприклад, якщо ми хочемо запустити “/ say”, як якщо б селянин розмовляв, ми можемо налаштувати команду так:
/ execute @e [type = Villager] ~ ~ ~ / say Ей
Ця команда викличе повідомлення кожному, від кожного селянина. Це не оптимально, якщо ми маємо більше однієї особи або більше одного селянина, тому давайте переформатуємо цю команду:
/ execute @a ~ ~ ~ / execute @e [type = Villager, c = 1] ~ ~ ~ / tell @p Hey
Це набагато складніше, ніж перше, і передбачає об'єднання двох команд "/ execute". Перший "/ виконати" команди виконується на кожному гравці, потім другий перевіряє рівно на одного жителя поблизу, а потім має той сільський житель, який повідомляє найближчому гравцю "Ей". Це гарантує, що тільки один селянин говорить на людину.
Вивчення синтаксису
Є, звичайно, багато команд у Minecraft, кожен з яких має свій власний синтаксис. Меню довідки для кожної команди, як правило, швидко розповідають, які аргументи потрібні команді, а Minecraft Wiki має детальний список того, що робить кожен. Це не стільки знання того, що робить кожна команда, а знання, як їх використовувати разом. Minecraft це гра, врешті-решт, тому гра з командами є частиною процесу навчання.