Туториал по режиму "Creative+"

Туториал по режиму Mineland "Creative+"
В данной статье будет описано: Как начать играть на режиме? Как работает код? Как работают блоки кода?
Для того, чтобы начать играть на режиме Creative+ вам необходимо провести 6 часов игры на любом из режимов Mineland, после проведения 6 часов вы увидите режим Creative+ в меню в хабе
/play - запустить игру в режиме игры (код начнёт работать)
/build - запустить игру в режиме строительства (код перестанет работать и вам будет выдан креатив, но также и людям которые есть в белом списке игры)
/dev - зайти в режим кода, где вам предстоит писать различные действий
* /fixlight - исправить баг со светом (когда некоторые блоки становятся чёрными)
* /hdb - открыть меню голов (с ранга Expert)
* /placeholders - список плейсхолдеров (доступно только в /dev)

Звёздочкой помечены команды, которые необязательны.
В коде есть ограничения в зависимости от донатов, которые описаны на картинке ниже
1718060716087.png
Команда /ad [Айди] позволяет вам войти в чей-либо мир по ID (Айди - уникальный для каждого игрока код, который может быть, и цифровым, и буквенным. Цифровой айди выдаётся вам при создании мира, т.е. у каждого он уникален и ни с кем не повторяется. Буквенный вариант можно установить в настройках мира, например айди: zombie, но вы не сможете его поставить просто потому что он будет занят кем-то другим, ибо у каждого мира айди уникален. Узнать айди мира можно в "табличке" справа от вас (Скорборд) где будет "ID: [Ваш айди]", чтобы вошёл например ваш друг, ему нужно прописать /ad [Ваш айди]
При клике по данному предмету, у вас открывается меню с предметами, которые вы будете использовать в коде. Каждый предмет это переменная (предмет, который хранит в себе какое-либо значение, более подробно о переменных будет описано на этапе "Динамические переменные"), где можно вписать какое-либо значение, но так не совсеми предметами. Пример: Книга - текст, где написав в чат какую-либо фразу она сохранит её в формате текста и вы сможете вывести этот текст в чат, также и с другими предметами в этой вкладке, чтобы взять этот предмет необходимо по нему нажать, а чтобы ввести какое-либо значение в переменную (в нашем случае это только: текст, число, динамическая переменная, массив) нужно взять этот предмет в руки и ввести что-либо в чат, что именно написано на самом предмете, значения "динамическая переменная" и "массив" будут рассматриваться позже, на более сложных этапах.

Текст - хранит в себе значение текста, чтобы ввести значение надо написать текст, держа предмет в руках
Число - хранит в себе тот же текст, но в виде числа без каких-либо букв или символов, чтобы ввести значение надо написать число, держа предмет в руках
Местоположение - хранит в себе какую-либо координату (чтобы посмотреть координаты надо нажать f3), чтобы ввести значение надо нажать ПКМ (Не смотря на блоки в коде) и выбрать какой-либо блок в мире по нажатию ЛКМ и туда запишется координата блока или же куда вы смотрели
Эффекты зелья - хранит в себе значения эффекта, которое можно будет выдать мобу или игроку, чтобы ввести значение надо нажать ЛКМ по зелью и выбрать из меню эффект или же взять из креатива эффект зелья.
Динамическая переменная - будет рассмотрена в отдельной главе
Игровое значение - хранит в себе какое-либо значение, например о игроке или о блоке из события игрока, т.е. можно получить какое здоровье у игрока в момент события игрока и т.д., для того чтобы ввести значение надо нажать ЛКМ и выбрать нужную категорию и после выбрать нужное значение для получения
Эффект частицы - почти та же самая ситуация с зельем, но нельзя заменить при помощи зелья, частица может быть только выбрана в переменной, вводится значение также при ЛКМ по предмету.
Массив - будет рассмотрен в отдельной главе.
Текстовый компонент - тип переменной, который хранит стилизуемый текст (хранит текст на который можно навестись, добавить событие при клике)
Тик - единица измерения времени в коде, которая составляет 1/20 от секунды, т.е. 1 секунда = 20 тиков, если вы хотите установить время в "Ждать" или другие подобные блоки, то необходимо указывать время в тиках (можно просто вводить s (секунды), m (минуты), h (часы)) или же можно сменить снизу переключатель на секунды/минуты (не во всех блоках это есть)


Глава 1. Как создать мир?
Подробный вариант:

При входе вы встречаете спавн креатива+ и перед вами будет NPC (Проще говоря это "игрок" без какого-либо взаимодействия с миром) с именем "МИРЫ ИГРОКОВ", при нажатии вам откроется меню с играми (пока что игры не нужны), где будет необходимо выбрать зачарованный командный блок "Мои игры", где откроется ещё одно меню и вам будут доступны пару плотов для создания. Нажав по стеклу вам дадут выбор какой мир создать, на выбор даются: "Равнина" (плоский мир), "Пустота" (мир с одной платформой), "Выживание" (Мир, где присутствует генерация мира), "Шаблон игры: KIT PVP" (Шаблон с готовой постройкой, но без кода), можно выбрать любой мир, но удобнее всего будет мир "Пустота", ибо в нём будет легко сделать постройку, а не сносить другую. После нажав на тип мира вам покажется надпись на экране (Титл), где вас попросят подождать пока ваш мир создастся и после вас телепортируют в ваш мир.

Краткий вариант:
Заходите на креатив и нажимаете на "игрока" перед вами, после вы оказываетесь в меню выбора игр, но вам нужен зачарованный командный блок с названием "Мои игры" в нижнем слоту, после вам откроется меню, где вы должны нажать по обычному стеклу и выбрать тип игры, рекомендуем выбирать "Пустота", после выбора ваш мир создастся.



Глава 2. Объяснение кода
Чтобы войти в код необходимо прописать команду /dev
Блоки в коде:
  • Событие игрока (Алмазный блок) - В нём можно выбрать при каком событии мира будет вызываться последующий код, например можно выбрать "Игрок вошёл в мир" и код продолжит ваши последующие строки, когда какой-либо игрок войдёт в мир через команду /ad (описано в спойлере).
  • Если игрок (Доска) - В нём вы устанавливаете проверку, например "Если игрок имеет предмет", и если это действие окажется верным, то код продолжится, пример: "Если игрок имеет предмет" и положить внутрь алмаз, то код продолжится при условии того, если у игрока будет алмаз, иначе код не продолжится.
  • Действие игрока (Булыжник) - В нём вы взаимодействуете с игроком, например можете отправить ему сообщение, вложив туда книгу из предмета "Переменные" (подробнее в спойлере выше) в 9 слоте, и если сработает Событие игрока, то игроку отправится сообщение, пример: Событие игрока (Вход игрока) > Отправить сообщение ("Привет игрок!")
  • Игровое действие (Незеритовый кирпич) - В нём вы сможете взаимодействовать с игрой и с игроками, которые в неё играют, например создать моба с именем "Антон" и сделать ему различные настройки.
  • Если переменная (Обсидиан) - В нём вы сможете делать проверку на какое-либо значение, например, если Игровое значение (Здоровье игрока) == (если равно) 20, то код продолжится, иначе остановится на этом пункте, также в этом блоке зачастую используются "Динамические переменные", которые будут рассмотрены в отдельной главе
  • Установить переменную (Железный блок) - Данный блок будет отдельно рассмотрен в другой главе
  • Выбрать объект (Пурпур) - Выбирает игроков/мобов при вызове события, например, если зайдёт какой-либо игрок и у вас будет стоять "Выбрать всех игроков", то выберутся все игроки, с помощью этого блока, например можно отправить сообщение в чат игроку (выбранным игрокам)
  • Если существо (Кирпич) - Проверка подобная "Если игрок", но только с существом
  • Работа с массивами (Книжная полка) - Будет разбираться в отдельной главе
  • Если игра (Красный незеритовый кирпич) - Проверка подобная "Если игрок", но только с миром
  • Иначе (Эндерняк) - При невыполнении строки в скобках (поршнях) вызывается и выполняется код внутри
  • Событие мира (Золотой блок) - Выполняется на подобии "Событие игрока", но с миром
  • Цикл (Изумрудный блок) - Повторяет определенную строку бесконечно раз (или же пока его не остановят или не зайдут в код) с определенной задержкой между выполнениями. Задержка измеряется в тиках (рассказано в спойлере), её можно устанавливать с помощью мышки (ПКМ +1 тик / ЛКМ -1 тик), или же взять число в руку с определенным количеством тиков и нажать по циклу. Чтобы вызвать цикл надо поставить игровое действие, нажать на утилиты кода и найти во 2 слоту "Запустить цикл" и внутрь положить текст с названием цикла (название цикла указывается через переменную текста (книгу))
  • Функция (Лазуритовый блок) - Используется для вызова отдельной строки кода, можно использовать для продолжения строки или для кода с определенными исходами, например: игрок зашёл в мир > вызвать функцию (Отправить сообщение ("Привет")) > вызвать функцию (Отправить сообщение("Вы на /ad parkour"))
  • Вызвать функцию (Лазуритовая руда) - Вызывает функцию, функция может быть вызвана синхронно и асинхронно, для объяснения возьму объяснение разработчиков при добавлении данной фишки: синхронно — чтобы выполнялись действия после «вызвать функцию», должно всё выполнится в самой функции, а потом уже код пойдёт дальше. асинхронно — после вызова функции код сразу пойдёт дальше, и будет выполнение сразу двух действий одновременно.


Глава 3. Плейсхолдеры: Что это и зачем?
Плейсхолдеры
- часть названия динамической переменной или текстового значения, которая содержит имя выбранного игрока. Плейсхолдер используется для изменения типа динамической переменной, а также для указания никнеймов в текстовом значении на месте плейсхолдера. (Взято с ML Wiki)
Динамические переменные будут рассмотрены уже в следующей главе!

Список плейсхолдеров:
  • %player% - выбор игрока, от которого исполняется код
  • %damager% - выбор игрока, который ударил какую-либо сущность
  • %victim% - жертва, кого ударил %damager%
  • %killer% - убийца из события
  • %selected% - выборка, которая выбирает игроков по отдельности (игрок1: = числу1, игрок2: = числу2 и т.д.)
  • %selection% - работает как %selected%, но создаёт отдельную переменную с никами игроков в выборке (игрок1, игрок2, игрок3: = числу 4)
  • %shooter% - тот, кто стрельнул из лука в какую-либо сущность
  • %default% - заменяется на имя моба или игрока, который стоит там "по умолчанию"
  • %entity% - выбирает имя сущности
  • %random% - выбирает рандома
В блоке "Цикл" и "Функция" необходимо при выборке использовать плейсхолдер %selected% вместо %player%

Список плейсхолдеров в коде можно получить при помощи /placeholders

NEW: Новый плейсхолер %var(name)% - получает значение переменной name


Глава 4. Динамические переменные. Что, как, зачем?
Динамические переменные
- это как ящики или контейнеры, в которых можно хранить различные данные, эти данные могут быть текстом, числом и другими предметами из "Переменные", кроме "Работа с массивами". В названиях переменных используются плейсхолдеры, которые делают переменную личной, а переменные без названия - глобальные и не применяются ни к какому игроку. Также переменные могут быть сохранены или не сохранены после выхода игрока, т.е. если игрок выйдет с мира, то переменная, которая не сохранена обнулит своё значение. Узнать сохраняется ли переменная или нет можно узнать в описании, наведясь в инвентаре.

Приведём пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Действие игрока (Коммуникация, Отправить сообщение) [%player% входов в игру (СОХРАНЕНО)]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере, мы считаем сколько раз игрок зашёл в игру и входы считаются только у одного игрока, т.е. переменная личная, если войдёт другой игрок, то ему тоже будет прибавляться количество входов и у него оно будет своё. В чат выводится число, которое обозначает число только ваших входов в игру.

Немного усложним код, добавив проверку, если игрок зашёл более 5 раз, то отправится сообщение в чат "Активный игрок [Никнейм игрока] зашёл в игру!":
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Если переменная (Сравнить число (Облегчённая версия)) [%player% входов в игру (СОХРАНЕНО)] [5] {
Действие игрока (Коммуникация, Отправить сообщение) [Активный игрок %player% зашёл в игру!]
}

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В этом примере, мы также прибавляем к личной переменной 1, т.е. добавляем 1 вход в игру в переменную, если у игрока наберётся больше или равно 5 входов в игру, то отправится сообщение, что он вошёл, как активный игрок с его ником

Также через переменные мы можем взаимодействовать не только с предметами из вкладки "Переменные", но и с игровыми предметами, приведем один пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Общее, установить предмет) [item] [Ваш предмет]
Присв. переменную (Предметы, установить название предмету) [itemToGive] [item] [Ваш текст]
Действие игрока (Управление инвентарем, выдать переменные (2 предмет)) [itemToGive]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере мы рассмотрели как можно взаимодействовать с предметами через код, здесь при входе устанавливается предмет в переменную (если не установить, то название не установится), и после предмету в переменной устанавливается название и после выдаётся в инвентарь


Глава 5. Массивы: Как с ними работать?
Массивы
- это как ящик с несколькими отделениями, в которые можно положить разные вещи. В одном отделении лежит элемент - какое-либо значение, которое зависит от другого отделения - индекса, которое обозначает положение элемента. В элемент можно положить какой-либо предмет из вкладки "Переменные" или же динамическую переменную. Массив бывает постоянным или временным, как динамическая переменная. В массивах отсчёт индекса начинается с 1 (так только на креативе+, если вы будете писать на языках программирования, то он будет с 0).

Рассмотрим пример работы с массивами:
Код:
Событие игрока (Вход)
Массивы (Создать / Очистить массив) [Pets] [Пёс] [Кошка] [Жираф] [Бегемот]
Массивы (Получить элемент) [Pets] [1] [petsToChat]
Действие игрока (Коммуникация, Отправить сообщение) [petsToChat]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
Значения в квадратных скобках после создания массива - текст, который лежит в разных слотах

В данном коде, мы создаём массив при входе игрока с 4 элементами - животными, после получаем животное с индексом 1 и выводим его в чат (Пёс), если получить 2 элемент, то будет кошка и т.д.


Глава 6. Практика: Полученный материал.
После прочитанного материала в гайде можете попрактиковаться на тестовом задании.

Задача:
Напишите код на переливание надписи в экшен-баре (Надпись возле слотов инвентаря (от 1-9), находится: Действие игрока (Коммуникация)), используя массивы, т.е. выводить по плюс 1 символу по циклу, при окончании текста начать выводить его снова.


Первая строка кода:
Код:
Событие игрока (Вход)
Игровое действие (Запустить цикл) [cicle]

Код:
Цикл (cicle) [8]
Выбрать объект (Случайный игрок)
Массивы (Создать массив) [text] [M] [Mi] [Min] [Mine] [Minel] [Minela] [Minelan] [Mineland]
Присв. переменную (+=) [indexOfText] [1]
Если переменная (Сравнить число (Облегчённая версия)) [indexOfText] [Переключатель на > (Больше)] [8]  {
Присв. переменную (=) [indexOfText] [1]
}
Массивы (Получить элемент) [text] [indexOfText] [textToBar]
Действие игрока (Экшен бар) [textToBar]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
В данном коде, мы вызываем цикл при входе игрока с названием cicle, после в цикле с задержкой в 8 тиков выбираем случайного игрока (так мы выбираем всех игроков), создаём массив с текстами, прибавляем к динамической переменной indexOfText 1 каждые 8 тиков, когда indexOfText становится больше 8 (количества элементов в массиве) мы ставим индекс на единицу, чтобы начать сначала, после вне скобок ставим получить элемент по индексу текста и делаем новую динамическую переменную - textToBar, которую после выводим в экшен бар.


Глава 7. Завершение гайда.
В этом гайде я пытался максимально понятно объяснить как работает код на Creative+ и научить новых игроков создавать код, который сделает вашу игру ещё более качественной. Гайд может ещё дополнятся, но не факт. Возможно некоторые аспекты я упустил и некоторые детали могут быть непонятными.

Автор: @Apotheoses
Идея с туториалом: @premcoon
 
Последнее редактирование:

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
358
да зачем это, новички сюда не смотрят
 

GromoverGets

Эксперт
Регистрация
2 Май 2023
Сообщения
258
Местоположение - хранит в себе какую-либо координату (чтобы посмотреть координаты надо нажать f3), чтобы ввести значение надо нажать ПКМ (Не смотря на блоки в коде) и выбрать какой-либо блок в мире по нажатию ЛКМ и туда запишется координата блока или же куда вы смотрели
Дополнение: f3 не всегда поможет, ибо у мл своя (относительная) система координат, которая часто не совпадает с действительностью
 

Mita

Внутриигровой модератор
Команда форума
Модератор
Регистрация
5 Май 2023
Сообщения
70
Сойдёт
 
Последнее редактирование:

Nagibator6000LoL

Гость
Регистрация
3 Май 2023
Сообщения
76
Сэр, вы действительно считаете, что бездонатки пользуются форумом?
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
358

legendaleto

Участник
Регистрация
31 Янв 2024
Сообщения
17
Туториал по режиму Mineland "Creative+"
В данной статье будет описано: Как начать играть на режиме? Как работает код? Как работают блоки кода?
Для того, чтобы начать играть на режиме Creative+ вам необходимо провести 6 часов игры на любом из режимов Mineland, после проведения 6 часов вы увидите режим Creative+ в меню в хабе
/play - запустить игру в режиме игры (код начнёт работать)
/build - запустить игру в режиме строительства (код перестанет работать и вам будет выдан креатив, но также и людям которые есть в белом списке игры)
/dev - зайти в режим кода, где вам предстоит писать различные действия
* /fixlight - исправить баг со светом (когда некоторые блоки становятся чёрными)
* /hdb - открыть меню голов (с ранга Expert)

Звёздочкой помечены команды, которые необязательны.
В коде есть ограничения в зависимости от донатов, которые описаны на картинке ниже
Посмотреть вложение 7640
Команда /ad [Айди] позволяет вам войти в чей-либо мир по ID (Айди - уникальный для каждого игрока код, который может быть, и цифровым, и буквенным. Цифровой айди выдаётся вам при создании мира, т.е. у каждого он уникален и ни с кем не повторяется. Буквенный вариант можно установить в настройках мира, например айди: zombie, но вы не сможете его поставить просто потому что он будет занят кем-то другим, ибо у каждого мира айди уникален. Узнать айди мира можно в "табличке" справа от вас (Скорборд) где будет "ID: [Ваш айди]", чтобы вошёл например ваш друг, ему нужно прописать /ad [Ваш айди]
При клике по данному предмету, у вас открывается меню с предметами, которые вы будете использовать в коде. Каждый предмет это переменная (предмет, который хранит в себе какое-либо значение, более подробно о переменных будет описано на этапе "Динамические переменные"), где можно вписать какое-либо значение, но так не совсеми предметами. Пример: Книга - текст, где написав в чат какую-либо фразу она сохранит её в формате текста и вы сможете вывести этот текст в чат, также и с другими предметами в этой вкладке, чтобы взять этот предмет необходимо по нему нажать, а чтобы ввести какое-либо значение в переменную (в нашем случае это только: текст, число, динамическая переменная, массив) нужно взять этот предмет в руки и ввести что-либо в чат, что именно написано на самом предмете, значения "динамическая переменная" и "массив" будут рассматриваться позже, на более сложных этапах.

Текст - хранит в себе значение текста, чтобы ввести значение надо написать текст, держа предмет в руках
Число - хранит в себе тот же текст, но в виде числа без каких-либо букв или символов, чтобы ввести значение надо написать число, держа предмет в руках
Местоположение - хранит в себе какую-либо координату (чтобы посмотреть координаты надо нажать f3), чтобы ввести значение надо нажать ПКМ (Не смотря на блоки в коде) и выбрать какой-либо блок в мире по нажатию ЛКМ и туда запишется координата блока или же куда вы смотрели
Эффекты зелья - хранит в себе значения эффекта, которое можно будет выдать мобу или игроку, чтобы ввести значение надо нажать ЛКМ по зелью и выбрать из меню эффект или же взять из креатива эффект зелья.
Динамическая переменная - будет рассмотрена в отдельной главе
Игровое значение - хранит в себе какое-либо значение, например о игроке или о блоке из события игрока, т.е. можно получить какое здоровье у игрока в момент события игрока и т.д., для того чтобы ввести значение надо нажать ЛКМ и выбрать нужную категорию и после выбрать нужное значение для получения
Эффект частицы - почти та же самая ситуация с зельем, но нельзя заменить при помощи зелья, частица может быть только выбрана в переменной, вводится значение также при ЛКМ по предмету.
Массив - будет рассмотрен в отдельной главе.
Тик - единица измерения времени в коде, которая составляет 1/20 от секунды, т.е. 1 секунда = 20 тиков, если вы хотите установить время в "Ждать" или другие подобные блоки, то необходимо указывать время в тиках (можно просто вводить s (секунды), m (минуты), h (часы)) или же можно сменить снизу переключатель на секунды/минуты (не во всех блоках это есть)


Глава 1. Как создать мир?
Подробный вариант:

При входе вы встречаете спавн креатива+ и перед вами будет NPC (Проще говоря это "игрок" без какого-либо взаимодействия с миром) с именем "МИРЫ ИГРОКОВ", при нажатии вам откроется меню с играми (пока что игры не нужны), где будет необходимо выбрать зачарованный командный блок "Мои игры", где откроется ещё одно меню и вам будут доступны пару плотов для создания. Нажав по стеклу вам дадут выбор какой мир создать, на выбор даются: "Равнина" (плоский мир), "Пустота" (мир с одной платформой), "Выживание" (Мир, где присутствует генерация мира), "Шаблон игры: KIT PVP" (Шаблон с готовой постройкой, но без кода), можно выбрать любой мир, но удобнее всего будет мир "Пустота", ибо в нём будет легко сделать постройку, а не сносить другую. После нажав на тип мира вам покажется надпись на экране (Титл), где вас попросят подождать пока ваш мир создастся и после вас телепортируют в ваш мир.

Краткий вариант:
Заходите на креатив и нажимаете на "игрока" перед вами, после вы оказываетесь в меню выбора игр, но вам нужен зачарованный командный блок с названием "Мои игры" в нижнем слоту, после вам откроется меню, где вы должны нажать по обычному стеклу и выбрать тип игры, рекомендуем выбирать "Пустота", после выбора ваш мир создастся.



Глава 2. Объяснение кода
Чтобы войти в код необходимо прописать команду /dev
Блоки в коде:
  • Событие игрока (Алмазный блок) - В нём можно выбрать при каком событии мира будет вызываться последующий код, например можно выбрать "Игрок вошёл в мир" и код продолжит ваши последующие строки, когда какой-либо игрок войдёт в мир через команду /ad (описано в спойлере).
  • Если игрок (Доска) - В нём вы устанавливаете проверку, например "Если игрок имеет предмет", и если это действие окажется верным, то код продолжится, пример: "Если игрок имеет предмет" и положить внутрь алмаз, то код продолжится при условии того, если у игрока будет алмаз, иначе код не продолжится.
  • Действие игрока (Булыжник) - В нём вы взаимодействуете с игроком, например можете отправить ему сообщение, вложив туда книгу из предмета "Переменные" (подробнее в спойлере выше) в 9 слоте, и если сработает Событие игрока, то игроку отправится сообщение, пример: Событие игрока (Вход игрока) > Отправить сообщение ("Привет игрок!")
  • Игровое действие (Незеритовый кирпич) - В нём вы сможете взаимодействовать с игрой и с игроками, которые в неё играют, например создать моба с именем "Антон" и сделать ему различные настройки.
  • Если переменная (Обсидиан) - В нём вы сможете делать проверку на какое-либо значение, например, если Игровое значение (Здоровье игрока) == (если равно) 20, то код продолжится, иначе остановится на этом пункте, также в этом блоке зачастую используются "Динамические переменные", которые будут рассмотрены в отдельной главе
  • Установить переменную (Железный блок) - Данный блок будет отдельно рассмотрен в другой главе
  • Выбрать объект (Пурпур) - Выбирает игроков/мобов при вызове события, например, если зайдёт какой-либо игрок и у вас будет стоять "Выбрать всех игроков", то выберутся все игроки, с помощью этого блока, например можно отправить сообщение в чат игроку (выбранным игрокам)
  • Если существо (Кирпич) - Проверка подобная "Если игрок", но только с существом
  • Работа с массивами (Книжная полка) - Будет разбираться в отдельной главе
  • Если игра (Красный незеритовый кирпич) - Проверка подобная "Если игрок", но только с миром
  • Иначе (Эндерняк) - При невыполнении строки в скобках (поршнях) вызывается и выполняется код внутри
  • Событие мира (Золотой блок) - Выполняется на подобии "Событие игрока", но с миром
  • Цикл (Изумрудный блок) - Повторяет определенную строку бесконечно раз (или же пока его не остановят или не зайдут в код) с определенной задержкой между выполнениями. Задержка измеряется в тиках (рассказано в спойлере), её можно устанавливать с помощью мышки (ПКМ +1 тик / ЛКМ -1 тик), или же взять число в руку с определенным количеством тиков и нажать по циклу. Чтобы вызвать цикл надо поставить игровое действие, нажать на утилиты кода и найти во 2 слоту "Запустить цикл" и внутрь положить текст с названием цикла (название цикла указывается через переменную текста (книгу))
  • Функция (Лазуритовый блок) - Используется для вызова отдельной строки кода, можно использовать для продолжения строки или для кода с определенными исходами, например: игрок зашёл в мир > вызвать функцию (Отправить сообщение ("Привет")) > вызвать функцию (Отправить сообщение("Вы на /ad parkour"))
  • Вызвать функцию (Лазуритовая руда) - Вызывает функцию, функция может быть вызвана синхронно и асинхронно, для объяснения возьму объяснение разработчиков при добавлении данной фишки: синхронно — чтобы выполнялись действия после «вызвать функцию», должно всё выполнится в самой функции, а потом уже код пойдёт дальше. асинхронно — после вызова функции код сразу пойдёт дальше, и будет выполнение сразу двух действий одновременно.


Глава 3. Плейсхолдеры: Что это и зачем?
Плейсхолдеры
- часть названия динамической переменной или текстового значения, которая содержит имя выбранного игрока. Плейсхолдер используется для изменения типа динамической переменной, а также для указания никнеймов в текстовом значении на месте плейсхолдера. (Взято с ML Wiki)
Динамические переменные будут рассмотрены уже в следующей главе!

Список плейсхолдеров:
  • %player% - выбор игрока, от которого исполняется код
  • %damager% - выбор игрока, который ударил какую-либо сущность
  • %victim% - жертва, кого ударил %damager%
  • %killer% - убийца из события
  • %selected% - выборка, которая выбирает игроков по отдельности (игрок1: = числу1, игрок2: = числу2 и т.д.)
  • %selection% - работает как %selected%, но создаёт отдельную переменную с никами игроков в выборке (игрок1, игрок2, игрок3: = числу 4)
  • %shooter% - тот, кто стрельнул из лука в какую-либо сущность
  • %default% - заменяется на имя моба или игрока, который стоит там "по умолчанию"
  • %entity% - выбирает имя сущности
  • %random% - выбирает рандома
В блоке "Цикл" и "Функция" необходимо использовать плейсхолдер %selected% вместо %player%


Глава 4. Динамические переменные. Что, как, зачем?
Динамические переменные
- это как ящики или контейнеры, в которых можно хранить различные данные, эти данные могут быть текстом, числом и другими предметами из "Переменные", кроме "Работа с массивами". В названиях переменных используются плейсхолдеры, которые делают переменную личной, а переменные без названия - глобальные и не применяются ни к какому игроку. Также переменные могут быть сохранены или не сохранены после выхода игрока, т.е. если игрок выйдет с мира, то переменная, которая не сохранена обнулит своё значение. Узнать сохраняется ли переменная или нет можно узнать в описании, наведясь в инвентаре.

Приведём пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Действие игрока (Коммуникация, Отправить сообщение) [%player% входов в игру (СОХРАНЕНО)]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере, мы считаем сколько раз игрок зашёл в игру и входы считаются только у одного игрока, т.е. переменная личная, если войдёт другой игрок, то ему тоже будет прибавляться количество входов и у него оно будет своё. В чат выводится число, которое обозначает число только ваших входов в игру.

Немного усложним код, добавив проверку, если игрок зашёл более 5 раз, то отправится сообщение в чат "Активный игрок [Никнейм игрока] зашёл в игру!":
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Если переменная (Сравнить число (Облегчённая версия)) [%player% входов в игру (СОХРАНЕНО)] [5] {
Действие игрока (Коммуникация, Отправить сообщение) [Активный игрок %player% зашёл в игру!]
}

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В этом примере, мы также прибавляем к личной переменной 1, т.е. добавляем 1 вход в игру в переменную, если у игрока наберётся больше или равно 5 входов в игру, то отправится сообщение, что он вошёл, как активный игрок с его ником

Также через переменные мы можем взаимодействовать не только с предметами из вкладки "Переменные", но и с игровыми предметами, приведем один пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Общее, установить предмет) [item] [Ваш предмет]
Присв. переменную (Предметы, установить название предмету) [itemToGive] [item] [Ваш текст]
Действие игрока (Управление инвентарем, выдать переменные (2 предмет)) [itemToGive]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере мы рассмотрели как можно взаимодействовать с предметами через код, здесь при входе устанавливается предмет в переменную (если не установить, то название не установится), и после предмету в переменной устанавливается название и после выдаётся в инвентарь


Глава 5. Массивы: Как с ними работать?
Массивы
- это как ящик с несколькими отделениями, в которые можно положить разные вещи. В одном отделении лежит элемент - какое-либо значение, которое зависит от другого отделения - индекса, которое обозначает положение элемента. В элемент можно положить какой-либо предмет из вкладки "Переменные" или же динамическую переменную. Массив бывает постоянным или временным, как динамическая переменная. В массивах отсчёт индекса начинается с 1 (так только на креативе+, если вы будете писать на языках программирования, то он будет с 0).

Рассмотрим пример работы с массивами:
Код:
Событие игрока (Вход)
Массивы (Создать / Очистить массив) [Pets] [Пёс] [Кошка] [Жираф] [Бегемот]
Массивы (Получить элемент) [Pets] [1] [petsToChat]
Действие игрока (Коммуникация, Отправить сообщение) [petsToChat]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
Значения в квадратных скобках после создания массива - текст, который лежит в разных слотах

В данном коде, мы создаём массив при входе игрока с 4 элементами - животными, после получаем животное с индексом 1 и выводим его в чат (Пёс), если получить 2 элемент, то будет кошка и т.д.


Глава 6. Практика: Полученный материал.
После прочитанного материала в гайде можете попрактиковаться на тестовом задании.

Задача:
Напишите код на переливание надписи в экшен-баре (Надпись возле слотов инвентаря (от 1-9), находится: Действие игрока (Коммуникация)), используя массивы, т.е. выводить по плюс 1 символу по циклу, при окончании текста начать выводить его снова.


Первая строка кода:
Код:
Событие игрока (Вход)
Игровое действие (Запустить цикл) [cicle]

Код:
Цикл (cicle) [8]
Выбрать объект (Случайный игрок)
Массивы (Создать массив) [text] [M] [Mi] [Min] [Mine] [Minel] [Minela] [Minelan] [Mineland]
Присв. переменную (+=) [indexOfText] [1]
Если переменная (Сравнить число (Облегчённая версия)) [indexOfText] [Переключатель на > (Больше)] [8]  {
Присв. переменную (=) [indexOfText] [1]
}
Массивы (Получить элемент) [text] [indexOfText] [textToBar]
Действие игрока (Экшен бар) [textToBar]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
В данном коде, мы вызываем цикл при входе игрока с названием cicle, после в цикле с задержкой в 8 тиков выбираем случайного игрока (так мы выбираем всех игроков), создаём массив с текстами, прибавляем к динамической переменной indexOfText 1 каждые 8 тиков, когда indexOfText становится больше 8 (количества элементов в массиве) мы ставим индекс на единицу, чтобы начать сначала, после вне скобок ставим получить элемент по индексу текста и делаем новую динамическую переменную - textToBar, которую после выводим в экшен бар.


Глава 7. Завершение гайда.
В этом гайде я пытался максимально понятно объяснить как работает код на Creative+ и научить новых игроков создавать код, который сделает вашу игру ещё более качественной. Гайд может ещё дополнятся, но не факт. Возможно некоторые аспекты я упустил и некоторые детали могут быть непонятными.

Автор: @Apotheoses
Идея с туториалом: @premcoon
Сделайте, пожалуйста, туториал "какой режим выбрать и как вести мир" Может хотя бы после такого гайда игроки будут делать поменьше килл кейсов, кит пвп, пвп паркур и может миры игроков станут лучше
 

Apotheoses

Эксперт
Регистрация
19 Июн 2023
Сообщения
68
Туториал по режиму Mineland "Creative+"
В данной статье будет описано: Как начать играть на режиме? Как работает код? Как работают блоки кода?
Для того, чтобы начать играть на режиме Creative+ вам необходимо провести 6 часов игры на любом из режимов Mineland, после проведения 6 часов вы увидите режим Creative+ в меню в хабе
/play - запустить игру в режиме игры (код начнёт работать)
/build - запустить игру в режиме строительства (код перестанет работать и вам будет выдан креатив, но также и людям которые есть в белом списке игры)
/dev - зайти в режим кода, где вам предстоит писать различные действий
* /fixlight - исправить баг со светом (когда некоторые блоки становятся чёрными)
* /hdb - открыть меню голов (с ранга Expert)
* /placeholders - список плейсхолдеров (доступно только в /dev)

Звёздочкой помечены команды, которые необязательны.
В коде есть ограничения в зависимости от донатов, которые описаны на картинке ниже
Посмотреть вложение 7640
Команда /ad [Айди] позволяет вам войти в чей-либо мир по ID (Айди - уникальный для каждого игрока код, который может быть, и цифровым, и буквенным. Цифровой айди выдаётся вам при создании мира, т.е. у каждого он уникален и ни с кем не повторяется. Буквенный вариант можно установить в настройках мира, например айди: zombie, но вы не сможете его поставить просто потому что он будет занят кем-то другим, ибо у каждого мира айди уникален. Узнать айди мира можно в "табличке" справа от вас (Скорборд) где будет "ID: [Ваш айди]", чтобы вошёл например ваш друг, ему нужно прописать /ad [Ваш айди]
При клике по данному предмету, у вас открывается меню с предметами, которые вы будете использовать в коде. Каждый предмет это переменная (предмет, который хранит в себе какое-либо значение, более подробно о переменных будет описано на этапе "Динамические переменные"), где можно вписать какое-либо значение, но так не совсеми предметами. Пример: Книга - текст, где написав в чат какую-либо фразу она сохранит её в формате текста и вы сможете вывести этот текст в чат, также и с другими предметами в этой вкладке, чтобы взять этот предмет необходимо по нему нажать, а чтобы ввести какое-либо значение в переменную (в нашем случае это только: текст, число, динамическая переменная, массив) нужно взять этот предмет в руки и ввести что-либо в чат, что именно написано на самом предмете, значения "динамическая переменная" и "массив" будут рассматриваться позже, на более сложных этапах.

Текст - хранит в себе значение текста, чтобы ввести значение надо написать текст, держа предмет в руках
Число - хранит в себе тот же текст, но в виде числа без каких-либо букв или символов, чтобы ввести значение надо написать число, держа предмет в руках
Местоположение - хранит в себе какую-либо координату (чтобы посмотреть координаты надо нажать f3), чтобы ввести значение надо нажать ПКМ (Не смотря на блоки в коде) и выбрать какой-либо блок в мире по нажатию ЛКМ и туда запишется координата блока или же куда вы смотрели
Эффекты зелья - хранит в себе значения эффекта, которое можно будет выдать мобу или игроку, чтобы ввести значение надо нажать ЛКМ по зелью и выбрать из меню эффект или же взять из креатива эффект зелья.
Динамическая переменная - будет рассмотрена в отдельной главе
Игровое значение - хранит в себе какое-либо значение, например о игроке или о блоке из события игрока, т.е. можно получить какое здоровье у игрока в момент события игрока и т.д., для того чтобы ввести значение надо нажать ЛКМ и выбрать нужную категорию и после выбрать нужное значение для получения
Эффект частицы - почти та же самая ситуация с зельем, но нельзя заменить при помощи зелья, частица может быть только выбрана в переменной, вводится значение также при ЛКМ по предмету.
Массив - будет рассмотрен в отдельной главе.
Тик - единица измерения времени в коде, которая составляет 1/20 от секунды, т.е. 1 секунда = 20 тиков, если вы хотите установить время в "Ждать" или другие подобные блоки, то необходимо указывать время в тиках (можно просто вводить s (секунды), m (минуты), h (часы)) или же можно сменить снизу переключатель на секунды/минуты (не во всех блоках это есть)


Глава 1. Как создать мир?
Подробный вариант:

При входе вы встречаете спавн креатива+ и перед вами будет NPC (Проще говоря это "игрок" без какого-либо взаимодействия с миром) с именем "МИРЫ ИГРОКОВ", при нажатии вам откроется меню с играми (пока что игры не нужны), где будет необходимо выбрать зачарованный командный блок "Мои игры", где откроется ещё одно меню и вам будут доступны пару плотов для создания. Нажав по стеклу вам дадут выбор какой мир создать, на выбор даются: "Равнина" (плоский мир), "Пустота" (мир с одной платформой), "Выживание" (Мир, где присутствует генерация мира), "Шаблон игры: KIT PVP" (Шаблон с готовой постройкой, но без кода), можно выбрать любой мир, но удобнее всего будет мир "Пустота", ибо в нём будет легко сделать постройку, а не сносить другую. После нажав на тип мира вам покажется надпись на экране (Титл), где вас попросят подождать пока ваш мир создастся и после вас телепортируют в ваш мир.

Краткий вариант:
Заходите на креатив и нажимаете на "игрока" перед вами, после вы оказываетесь в меню выбора игр, но вам нужен зачарованный командный блок с названием "Мои игры" в нижнем слоту, после вам откроется меню, где вы должны нажать по обычному стеклу и выбрать тип игры, рекомендуем выбирать "Пустота", после выбора ваш мир создастся.



Глава 2. Объяснение кода
Чтобы войти в код необходимо прописать команду /dev
Блоки в коде:
  • Событие игрока (Алмазный блок) - В нём можно выбрать при каком событии мира будет вызываться последующий код, например можно выбрать "Игрок вошёл в мир" и код продолжит ваши последующие строки, когда какой-либо игрок войдёт в мир через команду /ad (описано в спойлере).
  • Если игрок (Доска) - В нём вы устанавливаете проверку, например "Если игрок имеет предмет", и если это действие окажется верным, то код продолжится, пример: "Если игрок имеет предмет" и положить внутрь алмаз, то код продолжится при условии того, если у игрока будет алмаз, иначе код не продолжится.
  • Действие игрока (Булыжник) - В нём вы взаимодействуете с игроком, например можете отправить ему сообщение, вложив туда книгу из предмета "Переменные" (подробнее в спойлере выше) в 9 слоте, и если сработает Событие игрока, то игроку отправится сообщение, пример: Событие игрока (Вход игрока) > Отправить сообщение ("Привет игрок!")
  • Игровое действие (Незеритовый кирпич) - В нём вы сможете взаимодействовать с игрой и с игроками, которые в неё играют, например создать моба с именем "Антон" и сделать ему различные настройки.
  • Если переменная (Обсидиан) - В нём вы сможете делать проверку на какое-либо значение, например, если Игровое значение (Здоровье игрока) == (если равно) 20, то код продолжится, иначе остановится на этом пункте, также в этом блоке зачастую используются "Динамические переменные", которые будут рассмотрены в отдельной главе
  • Установить переменную (Железный блок) - Данный блок будет отдельно рассмотрен в другой главе
  • Выбрать объект (Пурпур) - Выбирает игроков/мобов при вызове события, например, если зайдёт какой-либо игрок и у вас будет стоять "Выбрать всех игроков", то выберутся все игроки, с помощью этого блока, например можно отправить сообщение в чат игроку (выбранным игрокам)
  • Если существо (Кирпич) - Проверка подобная "Если игрок", но только с существом
  • Работа с массивами (Книжная полка) - Будет разбираться в отдельной главе
  • Если игра (Красный незеритовый кирпич) - Проверка подобная "Если игрок", но только с миром
  • Иначе (Эндерняк) - При невыполнении строки в скобках (поршнях) вызывается и выполняется код внутри
  • Событие мира (Золотой блок) - Выполняется на подобии "Событие игрока", но с миром
  • Цикл (Изумрудный блок) - Повторяет определенную строку бесконечно раз (или же пока его не остановят или не зайдут в код) с определенной задержкой между выполнениями. Задержка измеряется в тиках (рассказано в спойлере), её можно устанавливать с помощью мышки (ПКМ +1 тик / ЛКМ -1 тик), или же взять число в руку с определенным количеством тиков и нажать по циклу. Чтобы вызвать цикл надо поставить игровое действие, нажать на утилиты кода и найти во 2 слоту "Запустить цикл" и внутрь положить текст с названием цикла (название цикла указывается через переменную текста (книгу))
  • Функция (Лазуритовый блок) - Используется для вызова отдельной строки кода, можно использовать для продолжения строки или для кода с определенными исходами, например: игрок зашёл в мир > вызвать функцию (Отправить сообщение ("Привет")) > вызвать функцию (Отправить сообщение("Вы на /ad parkour"))
  • Вызвать функцию (Лазуритовая руда) - Вызывает функцию, функция может быть вызвана синхронно и асинхронно, для объяснения возьму объяснение разработчиков при добавлении данной фишки: синхронно — чтобы выполнялись действия после «вызвать функцию», должно всё выполнится в самой функции, а потом уже код пойдёт дальше. асинхронно — после вызова функции код сразу пойдёт дальше, и будет выполнение сразу двух действий одновременно.


Глава 3. Плейсхолдеры: Что это и зачем?
Плейсхолдеры
- часть названия динамической переменной или текстового значения, которая содержит имя выбранного игрока. Плейсхолдер используется для изменения типа динамической переменной, а также для указания никнеймов в текстовом значении на месте плейсхолдера. (Взято с ML Wiki)
Динамические переменные будут рассмотрены уже в следующей главе!

Список плейсхолдеров:
  • %player% - выбор игрока, от которого исполняется код
  • %damager% - выбор игрока, который ударил какую-либо сущность
  • %victim% - жертва, кого ударил %damager%
  • %killer% - убийца из события
  • %selected% - выборка, которая выбирает игроков по отдельности (игрок1: = числу1, игрок2: = числу2 и т.д.)
  • %selection% - работает как %selected%, но создаёт отдельную переменную с никами игроков в выборке (игрок1, игрок2, игрок3: = числу 4)
  • %shooter% - тот, кто стрельнул из лука в какую-либо сущность
  • %default% - заменяется на имя моба или игрока, который стоит там "по умолчанию"
  • %entity% - выбирает имя сущности
  • %random% - выбирает рандома
В блоке "Цикл" и "Функция" необходимо при выборке использовать плейсхолдер %selected% вместо %player%

NEW: Теперь доступна команда /placeholders в коде


Глава 4. Динамические переменные. Что, как, зачем?
Динамические переменные
- это как ящики или контейнеры, в которых можно хранить различные данные, эти данные могут быть текстом, числом и другими предметами из "Переменные", кроме "Работа с массивами". В названиях переменных используются плейсхолдеры, которые делают переменную личной, а переменные без названия - глобальные и не применяются ни к какому игроку. Также переменные могут быть сохранены или не сохранены после выхода игрока, т.е. если игрок выйдет с мира, то переменная, которая не сохранена обнулит своё значение. Узнать сохраняется ли переменная или нет можно узнать в описании, наведясь в инвентаре.

Приведём пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Действие игрока (Коммуникация, Отправить сообщение) [%player% входов в игру (СОХРАНЕНО)]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере, мы считаем сколько раз игрок зашёл в игру и входы считаются только у одного игрока, т.е. переменная личная, если войдёт другой игрок, то ему тоже будет прибавляться количество входов и у него оно будет своё. В чат выводится число, которое обозначает число только ваших входов в игру.

Немного усложним код, добавив проверку, если игрок зашёл более 5 раз, то отправится сообщение в чат "Активный игрок [Никнейм игрока] зашёл в игру!":
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Если переменная (Сравнить число (Облегчённая версия)) [%player% входов в игру (СОХРАНЕНО)] [5] {
Действие игрока (Коммуникация, Отправить сообщение) [Активный игрок %player% зашёл в игру!]
}

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В этом примере, мы также прибавляем к личной переменной 1, т.е. добавляем 1 вход в игру в переменную, если у игрока наберётся больше или равно 5 входов в игру, то отправится сообщение, что он вошёл, как активный игрок с его ником

Также через переменные мы можем взаимодействовать не только с предметами из вкладки "Переменные", но и с игровыми предметами, приведем один пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Общее, установить предмет) [item] [Ваш предмет]
Присв. переменную (Предметы, установить название предмету) [itemToGive] [item] [Ваш текст]
Действие игрока (Управление инвентарем, выдать переменные (2 предмет)) [itemToGive]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере мы рассмотрели как можно взаимодействовать с предметами через код, здесь при входе устанавливается предмет в переменную (если не установить, то название не установится), и после предмету в переменной устанавливается название и после выдаётся в инвентарь


Глава 5. Массивы: Как с ними работать?
Массивы
- это как ящик с несколькими отделениями, в которые можно положить разные вещи. В одном отделении лежит элемент - какое-либо значение, которое зависит от другого отделения - индекса, которое обозначает положение элемента. В элемент можно положить какой-либо предмет из вкладки "Переменные" или же динамическую переменную. Массив бывает постоянным или временным, как динамическая переменная. В массивах отсчёт индекса начинается с 1 (так только на креативе+, если вы будете писать на языках программирования, то он будет с 0).

Рассмотрим пример работы с массивами:
Код:
Событие игрока (Вход)
Массивы (Создать / Очистить массив) [Pets] [Пёс] [Кошка] [Жираф] [Бегемот]
Массивы (Получить элемент) [Pets] [1] [petsToChat]
Действие игрока (Коммуникация, Отправить сообщение) [petsToChat]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
Значения в квадратных скобках после создания массива - текст, который лежит в разных слотах

В данном коде, мы создаём массив при входе игрока с 4 элементами - животными, после получаем животное с индексом 1 и выводим его в чат (Пёс), если получить 2 элемент, то будет кошка и т.д.


Глава 6. Практика: Полученный материал.
После прочитанного материала в гайде можете попрактиковаться на тестовом задании.

Задача:
Напишите код на переливание надписи в экшен-баре (Надпись возле слотов инвентаря (от 1-9), находится: Действие игрока (Коммуникация)), используя массивы, т.е. выводить по плюс 1 символу по циклу, при окончании текста начать выводить его снова.


Первая строка кода:
Код:
Событие игрока (Вход)
Игровое действие (Запустить цикл) [cicle]

Код:
Цикл (cicle) [8]
Выбрать объект (Случайный игрок)
Массивы (Создать массив) [text] [M] [Mi] [Min] [Mine] [Minel] [Minela] [Minelan] [Mineland]
Присв. переменную (+=) [indexOfText] [1]
Если переменная (Сравнить число (Облегчённая версия)) [indexOfText] [Переключатель на > (Больше)] [8]  {
Присв. переменную (=) [indexOfText] [1]
}
Массивы (Получить элемент) [text] [indexOfText] [textToBar]
Действие игрока (Экшен бар) [textToBar]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
В данном коде, мы вызываем цикл при входе игрока с названием cicle, после в цикле с задержкой в 8 тиков выбираем случайного игрока (так мы выбираем всех игроков), создаём массив с текстами, прибавляем к динамической переменной indexOfText 1 каждые 8 тиков, когда indexOfText становится больше 8 (количества элементов в массиве) мы ставим индекс на единицу, чтобы начать сначала, после вне скобок ставим получить элемент по индексу текста и делаем новую динамическую переменную - textToBar, которую после выводим в экшен бар.


Глава 7. Завершение гайда.
В этом гайде я пытался максимально понятно объяснить как работает код на Creative+ и научить новых игроков создавать код, который сделает вашу игру ещё более качественной. Гайд может ещё дополнятся, но не факт. Возможно некоторые аспекты я упустил и некоторые детали могут быть непонятными.

Автор: @Apotheoses
Идея с туториалом: @premcoon
Обновлен гайд
 
  • Лайк
Реакции: Mita

Apotheoses

Эксперт
Регистрация
19 Июн 2023
Сообщения
68
Туториал по режиму Mineland "Creative+"
В данной статье будет описано: Как начать играть на режиме? Как работает код? Как работают блоки кода?
Для того, чтобы начать играть на режиме Creative+ вам необходимо провести 6 часов игры на любом из режимов Mineland, после проведения 6 часов вы увидите режим Creative+ в меню в хабе
/play - запустить игру в режиме игры (код начнёт работать)
/build - запустить игру в режиме строительства (код перестанет работать и вам будет выдан креатив, но также и людям которые есть в белом списке игры)
/dev - зайти в режим кода, где вам предстоит писать различные действий
* /fixlight - исправить баг со светом (когда некоторые блоки становятся чёрными)
* /hdb - открыть меню голов (с ранга Expert)
* /placeholders - список плейсхолдеров (доступно только в /dev)

Звёздочкой помечены команды, которые необязательны.
В коде есть ограничения в зависимости от донатов, которые описаны на картинке ниже
Посмотреть вложение 7640
Команда /ad [Айди] позволяет вам войти в чей-либо мир по ID (Айди - уникальный для каждого игрока код, который может быть, и цифровым, и буквенным. Цифровой айди выдаётся вам при создании мира, т.е. у каждого он уникален и ни с кем не повторяется. Буквенный вариант можно установить в настройках мира, например айди: zombie, но вы не сможете его поставить просто потому что он будет занят кем-то другим, ибо у каждого мира айди уникален. Узнать айди мира можно в "табличке" справа от вас (Скорборд) где будет "ID: [Ваш айди]", чтобы вошёл например ваш друг, ему нужно прописать /ad [Ваш айди]
При клике по данному предмету, у вас открывается меню с предметами, которые вы будете использовать в коде. Каждый предмет это переменная (предмет, который хранит в себе какое-либо значение, более подробно о переменных будет описано на этапе "Динамические переменные"), где можно вписать какое-либо значение, но так не совсеми предметами. Пример: Книга - текст, где написав в чат какую-либо фразу она сохранит её в формате текста и вы сможете вывести этот текст в чат, также и с другими предметами в этой вкладке, чтобы взять этот предмет необходимо по нему нажать, а чтобы ввести какое-либо значение в переменную (в нашем случае это только: текст, число, динамическая переменная, массив) нужно взять этот предмет в руки и ввести что-либо в чат, что именно написано на самом предмете, значения "динамическая переменная" и "массив" будут рассматриваться позже, на более сложных этапах.

Текст - хранит в себе значение текста, чтобы ввести значение надо написать текст, держа предмет в руках
Число - хранит в себе тот же текст, но в виде числа без каких-либо букв или символов, чтобы ввести значение надо написать число, держа предмет в руках
Местоположение - хранит в себе какую-либо координату (чтобы посмотреть координаты надо нажать f3), чтобы ввести значение надо нажать ПКМ (Не смотря на блоки в коде) и выбрать какой-либо блок в мире по нажатию ЛКМ и туда запишется координата блока или же куда вы смотрели
Эффекты зелья - хранит в себе значения эффекта, которое можно будет выдать мобу или игроку, чтобы ввести значение надо нажать ЛКМ по зелью и выбрать из меню эффект или же взять из креатива эффект зелья.
Динамическая переменная - будет рассмотрена в отдельной главе
Игровое значение - хранит в себе какое-либо значение, например о игроке или о блоке из события игрока, т.е. можно получить какое здоровье у игрока в момент события игрока и т.д., для того чтобы ввести значение надо нажать ЛКМ и выбрать нужную категорию и после выбрать нужное значение для получения
Эффект частицы - почти та же самая ситуация с зельем, но нельзя заменить при помощи зелья, частица может быть только выбрана в переменной, вводится значение также при ЛКМ по предмету.
Массив - будет рассмотрен в отдельной главе.
Текстовый компонент - тип переменной, который хранит стилизуемый текст (хранит текст на который можно навестись, добавить событие при клике)
Тик - единица измерения времени в коде, которая составляет 1/20 от секунды, т.е. 1 секунда = 20 тиков, если вы хотите установить время в "Ждать" или другие подобные блоки, то необходимо указывать время в тиках (можно просто вводить s (секунды), m (минуты), h (часы)) или же можно сменить снизу переключатель на секунды/минуты (не во всех блоках это есть)


Глава 1. Как создать мир?
Подробный вариант:

При входе вы встречаете спавн креатива+ и перед вами будет NPC (Проще говоря это "игрок" без какого-либо взаимодействия с миром) с именем "МИРЫ ИГРОКОВ", при нажатии вам откроется меню с играми (пока что игры не нужны), где будет необходимо выбрать зачарованный командный блок "Мои игры", где откроется ещё одно меню и вам будут доступны пару плотов для создания. Нажав по стеклу вам дадут выбор какой мир создать, на выбор даются: "Равнина" (плоский мир), "Пустота" (мир с одной платформой), "Выживание" (Мир, где присутствует генерация мира), "Шаблон игры: KIT PVP" (Шаблон с готовой постройкой, но без кода), можно выбрать любой мир, но удобнее всего будет мир "Пустота", ибо в нём будет легко сделать постройку, а не сносить другую. После нажав на тип мира вам покажется надпись на экране (Титл), где вас попросят подождать пока ваш мир создастся и после вас телепортируют в ваш мир.

Краткий вариант:
Заходите на креатив и нажимаете на "игрока" перед вами, после вы оказываетесь в меню выбора игр, но вам нужен зачарованный командный блок с названием "Мои игры" в нижнем слоту, после вам откроется меню, где вы должны нажать по обычному стеклу и выбрать тип игры, рекомендуем выбирать "Пустота", после выбора ваш мир создастся.



Глава 2. Объяснение кода
Чтобы войти в код необходимо прописать команду /dev
Блоки в коде:
  • Событие игрока (Алмазный блок) - В нём можно выбрать при каком событии мира будет вызываться последующий код, например можно выбрать "Игрок вошёл в мир" и код продолжит ваши последующие строки, когда какой-либо игрок войдёт в мир через команду /ad (описано в спойлере).
  • Если игрок (Доска) - В нём вы устанавливаете проверку, например "Если игрок имеет предмет", и если это действие окажется верным, то код продолжится, пример: "Если игрок имеет предмет" и положить внутрь алмаз, то код продолжится при условии того, если у игрока будет алмаз, иначе код не продолжится.
  • Действие игрока (Булыжник) - В нём вы взаимодействуете с игроком, например можете отправить ему сообщение, вложив туда книгу из предмета "Переменные" (подробнее в спойлере выше) в 9 слоте, и если сработает Событие игрока, то игроку отправится сообщение, пример: Событие игрока (Вход игрока) > Отправить сообщение ("Привет игрок!")
  • Игровое действие (Незеритовый кирпич) - В нём вы сможете взаимодействовать с игрой и с игроками, которые в неё играют, например создать моба с именем "Антон" и сделать ему различные настройки.
  • Если переменная (Обсидиан) - В нём вы сможете делать проверку на какое-либо значение, например, если Игровое значение (Здоровье игрока) == (если равно) 20, то код продолжится, иначе остановится на этом пункте, также в этом блоке зачастую используются "Динамические переменные", которые будут рассмотрены в отдельной главе
  • Установить переменную (Железный блок) - Данный блок будет отдельно рассмотрен в другой главе
  • Выбрать объект (Пурпур) - Выбирает игроков/мобов при вызове события, например, если зайдёт какой-либо игрок и у вас будет стоять "Выбрать всех игроков", то выберутся все игроки, с помощью этого блока, например можно отправить сообщение в чат игроку (выбранным игрокам)
  • Если существо (Кирпич) - Проверка подобная "Если игрок", но только с существом
  • Работа с массивами (Книжная полка) - Будет разбираться в отдельной главе
  • Если игра (Красный незеритовый кирпич) - Проверка подобная "Если игрок", но только с миром
  • Иначе (Эндерняк) - При невыполнении строки в скобках (поршнях) вызывается и выполняется код внутри
  • Событие мира (Золотой блок) - Выполняется на подобии "Событие игрока", но с миром
  • Цикл (Изумрудный блок) - Повторяет определенную строку бесконечно раз (или же пока его не остановят или не зайдут в код) с определенной задержкой между выполнениями. Задержка измеряется в тиках (рассказано в спойлере), её можно устанавливать с помощью мышки (ПКМ +1 тик / ЛКМ -1 тик), или же взять число в руку с определенным количеством тиков и нажать по циклу. Чтобы вызвать цикл надо поставить игровое действие, нажать на утилиты кода и найти во 2 слоту "Запустить цикл" и внутрь положить текст с названием цикла (название цикла указывается через переменную текста (книгу))
  • Функция (Лазуритовый блок) - Используется для вызова отдельной строки кода, можно использовать для продолжения строки или для кода с определенными исходами, например: игрок зашёл в мир > вызвать функцию (Отправить сообщение ("Привет")) > вызвать функцию (Отправить сообщение("Вы на /ad parkour"))
  • Вызвать функцию (Лазуритовая руда) - Вызывает функцию, функция может быть вызвана синхронно и асинхронно, для объяснения возьму объяснение разработчиков при добавлении данной фишки: синхронно — чтобы выполнялись действия после «вызвать функцию», должно всё выполнится в самой функции, а потом уже код пойдёт дальше. асинхронно — после вызова функции код сразу пойдёт дальше, и будет выполнение сразу двух действий одновременно.


Глава 3. Плейсхолдеры: Что это и зачем?
Плейсхолдеры
- часть названия динамической переменной или текстового значения, которая содержит имя выбранного игрока. Плейсхолдер используется для изменения типа динамической переменной, а также для указания никнеймов в текстовом значении на месте плейсхолдера. (Взято с ML Wiki)
Динамические переменные будут рассмотрены уже в следующей главе!

Список плейсхолдеров:
  • %player% - выбор игрока, от которого исполняется код
  • %damager% - выбор игрока, который ударил какую-либо сущность
  • %victim% - жертва, кого ударил %damager%
  • %killer% - убийца из события
  • %selected% - выборка, которая выбирает игроков по отдельности (игрок1: = числу1, игрок2: = числу2 и т.д.)
  • %selection% - работает как %selected%, но создаёт отдельную переменную с никами игроков в выборке (игрок1, игрок2, игрок3: = числу 4)
  • %shooter% - тот, кто стрельнул из лука в какую-либо сущность
  • %default% - заменяется на имя моба или игрока, который стоит там "по умолчанию"
  • %entity% - выбирает имя сущности
  • %random% - выбирает рандома
В блоке "Цикл" и "Функция" необходимо при выборке использовать плейсхолдер %selected% вместо %player%

Список плейсхолдеров в коде можно получить при помощи /placeholders

NEW: Новый плейсхолер %var(name)% - получает значение переменной name


Глава 4. Динамические переменные. Что, как, зачем?
Динамические переменные
- это как ящики или контейнеры, в которых можно хранить различные данные, эти данные могут быть текстом, числом и другими предметами из "Переменные", кроме "Работа с массивами". В названиях переменных используются плейсхолдеры, которые делают переменную личной, а переменные без названия - глобальные и не применяются ни к какому игроку. Также переменные могут быть сохранены или не сохранены после выхода игрока, т.е. если игрок выйдет с мира, то переменная, которая не сохранена обнулит своё значение. Узнать сохраняется ли переменная или нет можно узнать в описании, наведясь в инвентаре.

Приведём пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Действие игрока (Коммуникация, Отправить сообщение) [%player% входов в игру (СОХРАНЕНО)]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере, мы считаем сколько раз игрок зашёл в игру и входы считаются только у одного игрока, т.е. переменная личная, если войдёт другой игрок, то ему тоже будет прибавляться количество входов и у него оно будет своё. В чат выводится число, которое обозначает число только ваших входов в игру.

Немного усложним код, добавив проверку, если игрок зашёл более 5 раз, то отправится сообщение в чат "Активный игрок [Никнейм игрока] зашёл в игру!":
Код:
Событие игрока (Вход)
Присв. переменную  (Числа, +=) [%player% входов в игру (СОХРАНЕНО)] [1]
Если переменная (Сравнить число (Облегчённая версия)) [%player% входов в игру (СОХРАНЕНО)] [5] {
Действие игрока (Коммуникация, Отправить сообщение) [Активный игрок %player% зашёл в игру!]
}

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В этом примере, мы также прибавляем к личной переменной 1, т.е. добавляем 1 вход в игру в переменную, если у игрока наберётся больше или равно 5 входов в игру, то отправится сообщение, что он вошёл, как активный игрок с его ником

Также через переменные мы можем взаимодействовать не только с предметами из вкладки "Переменные", но и с игровыми предметами, приведем один пример:
Код:
Событие игрока (Вход)
Присв. переменную  (Общее, установить предмет) [item] [Ваш предмет]
Присв. переменную (Предметы, установить название предмету) [itemToGive] [item] [Ваш текст]
Действие игрока (Управление инвентарем, выдать переменные (2 предмет)) [itemToGive]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок

В данном примере мы рассмотрели как можно взаимодействовать с предметами через код, здесь при входе устанавливается предмет в переменную (если не установить, то название не установится), и после предмету в переменной устанавливается название и после выдаётся в инвентарь


Глава 5. Массивы: Как с ними работать?
Массивы
- это как ящик с несколькими отделениями, в которые можно положить разные вещи. В одном отделении лежит элемент - какое-либо значение, которое зависит от другого отделения - индекса, которое обозначает положение элемента. В элемент можно положить какой-либо предмет из вкладки "Переменные" или же динамическую переменную. Массив бывает постоянным или временным, как динамическая переменная. В массивах отсчёт индекса начинается с 1 (так только на креативе+, если вы будете писать на языках программирования, то он будет с 0).

Рассмотрим пример работы с массивами:
Код:
Событие игрока (Вход)
Массивы (Создать / Очистить массив) [Pets] [Пёс] [Кошка] [Жираф] [Бегемот]
Массивы (Получить элемент) [Pets] [1] [petsToChat]
Действие игрока (Коммуникация, Отправить сообщение) [petsToChat]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
Значения в квадратных скобках после создания массива - текст, который лежит в разных слотах

В данном коде, мы создаём массив при входе игрока с 4 элементами - животными, после получаем животное с индексом 1 и выводим его в чат (Пёс), если получить 2 элемент, то будет кошка и т.д.


Глава 6. Практика: Полученный материал.
После прочитанного материала в гайде можете попрактиковаться на тестовом задании.

Задача:
Напишите код на переливание надписи в экшен-баре (Надпись возле слотов инвентаря (от 1-9), находится: Действие игрока (Коммуникация)), используя массивы, т.е. выводить по плюс 1 символу по циклу, при окончании текста начать выводить его снова.


Первая строка кода:
Код:
Событие игрока (Вход)
Игровое действие (Запустить цикл) [cicle]

Код:
Цикл (cicle) [8]
Выбрать объект (Случайный игрок)
Массивы (Создать массив) [text] [M] [Mi] [Min] [Mine] [Minel] [Minela] [Minelan] [Mineland]
Присв. переменную (+=) [indexOfText] [1]
Если переменная (Сравнить число (Облегчённая версия)) [indexOfText] [Переключатель на > (Больше)] [8]  {
Присв. переменную (=) [indexOfText] [1]
}
Массивы (Получить элемент) [text] [indexOfText] [textToBar]
Действие игрока (Экшен бар) [textToBar]

() - Категория в блоке / Название действия
[] - Что должно быть в определенном слоте
{} - Скобки (поршни)
Отделение строки - новый блок
В данном коде, мы вызываем цикл при входе игрока с названием cicle, после в цикле с задержкой в 8 тиков выбираем случайного игрока (так мы выбираем всех игроков), создаём массив с текстами, прибавляем к динамической переменной indexOfText 1 каждые 8 тиков, когда indexOfText становится больше 8 (количества элементов в массиве) мы ставим индекс на единицу, чтобы начать сначала, после вне скобок ставим получить элемент по индексу текста и делаем новую динамическую переменную - textToBar, которую после выводим в экшен бар.


Глава 7. Завершение гайда.
В этом гайде я пытался максимально понятно объяснить как работает код на Creative+ и научить новых игроков создавать код, который сделает вашу игру ещё более качественной. Гайд может ещё дополнятся, но не факт. Возможно некоторые аспекты я упустил и некоторые детали могут быть непонятными.

Автор: @Apotheoses
Идея с туториалом: @premcoon
Обновлен гайд
 
Сверху