Підручник з командних блоків у 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» будуть націлені на всі об'єкти. Об'єкти включають в себе все, що не є блоком, такі як монстри, сніжки, тварини і стріли.
Команда повинна виконати успішно і дати вам новий блок. Помістіть це десь на землі, щоб почати.
Ви можете бачити, що командний блок вказує напрямок, в якому ви його розміщуєте, дуже схожий на бункери або печі. Це буде важливо пізніше.
Клацніть правою кнопкою миші (або використовуйте будь-який ключ, який ви використовуєте для доступу до стільниць і печей), і ви побачите графічний інтерфейс командного блоку.
Спочатку це здається трохи лякаючим, але не хвилюйтеся, всі ці кнопки щось роблять. Кнопка з написом «Імпульс» змінює тип командного блоку. Існує три різних типи командних блоків:
- Імпульс, який запускає команди по наростаючому фронту струму червоного каменю. Це означає, що коли вони отримують харчування, вони запускають команду один раз і зупиняються, навіть якщо вони продовжують отримувати харчування. Це типовий параметр і єдиний доступний у 1.8
- Повторіть, що запускає команди кожен тик, на який вони включені. Тік схожий на фрейм, і кілька команд можуть бути запущені за один тік, до 20 разів на секунду.
- Ланцюжок, який запускається, тільки якщо командний блок виконав свою команду. Вони будуть працювати по порядку, один за одним, в одному галочці, звідси і назва «Ланцюжок».
Кнопка з написом «Безумовний» зупиняє командний блок від перевірки, чи успішно виконано попередній блок у ланцюжку. Інший параметр, «Умовний», запускається, тільки якщо попередній блок не видав помилок.
Кнопка з написом «Потрібен червоний камінь» запускає команду, тільки якщо на командний блок подається харчування. Інший параметр «Завжди активно» зупиняє командний блок від перевірки, чи включений він, і просто припускає, що він включений. Цей параметр не повинен використовуватися з блоками команд Impulse, оскільки робить їх марними.
Давайте зробимо ланцюжок, наш перший «сценарій». Помістіть блок команд ланцюжка або дві у перший блок імпульсних команд, наприклад:
Переконайтеся, що для блоків ланцюга встановлено значення «Завжди активно». В іншому випадку нам потрібно було б помістити блоки з червоного каменю або струм, який займає непотрібне місце. Помістіть кнопку в блок імпульсних команд на початку ланцюга і натисніть її.
Нічого не станеться. Це тому, що ми ще не заповнили їх командами! Клацніть правою кнопкою миші на блоці імпульсів, щоб редагувати його, і введіть основну команду
скажи старт
Зверніть увагу, що нам не потрібен коса риса в командних блоках. Ви можете використовувати один, якщо хочете, але це не потрібно. Команда «/say »приймає один аргумент, текст і вимовляє його з точки зору того, хто його виконує. Якщо ви запустите його, його буде показано як «< username > message», як звичайний чат. Якщо він запускається з командного блоку, це буде «[@] повідомлення». Як альтернативу, є «/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 XYZ/
X, Y і Z - координати для запуску команди. Це не має значення для більшості команд, але дуже важливо, якщо ви використовуєте відносне позиціонування. Відносна позиція починається з «ауд» і супроводжується додатним або від'ємним числом, що вказує, скільки блоків від початку координат, що позначається «млрд грн». Так, наприклад, якщо ми хочемо запустити «/сказати », як якби сільчанин говорив, ми можемо налаштувати команду наступним чином:
/ виконати @ e [type = сільський мешканець] млрд/Сказати ей
Ця команда призведе до того, що повідомлення буде надіслано всім, від кожного жителя села. Це не оптимально, якщо у нас більше однієї людини або більше одного жителя села, тому давайте переформатуємо цю команду:
/ Виконати @ a млрд дол ./виконати @ e [type = сільчанин, c = 1] млрд/розповісти @ p Ей
Це набагато складніше, ніж перша, і включає в себе об'єднання двох команд «/execute ». Перша команда «/execute »виконується для кожного гравця, потім друга перевіряє, чи знаходиться рівно один сільчанин поблизу, і потім цей сільчанин говорить найближчому гравцеві« Привіт ». Це гарантує, що тільки один сільський житель говорить на людину.
Вивчення синтаксису
У Minecraft, безумовно, є багато команд, кожен з яких має свій синтаксис. Меню довідки для кожної команди зазвичай швидко підкаже, які аргументи потрібні команді, а в Minecraft Wiki є докладний список того, що робить кожна з них. Мова йде не стільки про те, щоб точно знати, що робить кожна команда, але про те, як використовувати їх разом. Зрештою, Minecraft - це гра, тому гра з командами є частиною процесу навчання.




