Найти в Дзене
ХомБемчикс

Окно диалогов | Кастомное меню с выбором | Окно ввода текста | команда /dialog в майнкрафте 25w20a+

В снапшоте 25w20a добавили имбовую вещь, которая на равне со скорбордами по юзабельности - команда /dialog. Теперь можно делать красивые конфиги для датапаков, выбор ответа в сюжетных картах и много чего ещё. Видимо разрабы вбухали весь бюджет дропа именно в эту команду. В конце статьи будет датапак с кастомным диалогом, потому что если писать через команду, то она будет очень длинная. И я вам рекомендую делать диалоги именно через датапаки. Сайт генератор: https://misode.github.io/dialog Есть несколько типов онка диалогов. Где можно и переходить по нажатию кнопки в другие окна и где внизу есть кнопки с выбором ответа, здесь я расскажу про самое интересное. Начнём по порядку. Type: Simple input form - принимает данные и только одна кнопка внизу, которая после нажатия выполняет команду и закрывает окно. Title - отвечает за показанный текст сверху, около восклицательного знака. ( Текст и все настройки делайте сами как вам угодно, поэтому на этом я не буду концентрировать внимание, редакт
Какой-то
Какой-то

В снапшоте 25w20a добавили имбовую вещь, которая на равне со скорбордами по юзабельности - команда /dialog. Теперь можно делать красивые конфиги для датапаков, выбор ответа в сюжетных картах и много чего ещё. Видимо разрабы вбухали весь бюджет дропа именно в эту команду.

В конце статьи будет датапак с кастомным диалогом, потому что если писать через команду, то она будет очень длинная. И я вам рекомендую делать диалоги именно через датапаки.

Сайт генератор: https://misode.github.io/dialog

Есть несколько типов онка диалогов. Где можно и переходить по нажатию кнопки в другие окна и где внизу есть кнопки с выбором ответа, здесь я расскажу про самое интересное.

Начнём по порядку.

-2

Type: Simple input form - принимает данные и только одна кнопка внизу, которая после нажатия выполняет команду и закрывает окно.

Title - отвечает за показанный текст сверху, около восклицательного знака.

( Текст и все настройки делайте сами как вам угодно, поэтому на этом я не буду концентрировать внимание, редактор на интуитивном уровне понятен, если вы немного разбираетесь в формате записи текста )

-3

Type: Plain message - отображаемый текст, который под восклицательным знаком.

-4

Type: Item - отображаемый предмет, который под основным текстом. Все настройки по типу: количество, компоненты имеются.

Description/Contents - отображаемый текст справа от предмета.

Теперь то, где можно что-то выбирать, кликать и писать - Inputs.

-5

Type: Boolean - отображаемое окошко, где можно нажать и появится галочка. Если соединить с командой по выводу значения в scoreboard, то при отсутствие галочки значение=0, при выбранной галочки значение=1. Вообщем True или False.

Key - если пытаться объяснить, то это название, которое будет хранить в себе какие-то данные и если соединить с командой, допустим give @s stone $(test) и в ползунке вы выбрали 12, то вам выдаться 12 камня. Если говорить по датапакерски это макросы. Далее в конце будет наглядный пример как это работает.

-6

Type: Number range - ползунок под окном с галочкой. Позволяет выбирать значения, которые были выставлены в команде.

Start - от какого числа начнётся выбор

End - до какого числа будет выбор.

Steps - количество шагов. То есть если выставить 5, то вы будете двигаться не по одному, а сразу на 5, но она довольно часто ломается и показывает десятичные значения, поэтому легче всего от End вычесть один и поставить в Steps. Таким образом вы будете захватывать все значения от 1-64 ( поставить конечно можно любые значения ).

Width - длина кнопки.

Type: Single option - кнопка под ползунком, по сути кнопка как в настройках, позволяет выбирать заготовленные варианты.

В Options мы и делаем наши заготовленные ответы. В id пишем то, что нам нужно ( можно текст ну и числа ).

-8

Type: Text - окно, куда можно писать как числа, так и слова.

-9

В action выполняется команда после нажатия кнопки внизу. У меня задействован только 1 key но дальше будет пример, в котором будет показано, как отправлять все значения, которые вы выбрали и вписали прямо в storage и в scoreboard.

Теперь куда засовывать файл, который мы наделали. У меня будет называться датапак test

Test -> [data,pack] заходим в data -> [создаём папку test ( название любое )] -> заходим туда и в этой папке создаём папку dialog и в неё сохраняем наш файл. И так как экспериментальная штука, то чтобы обновить датапак надо будет перезайти в мир.

Пример:

/dialog show @a {"type": "simple_input_form", "title": "Text", "inputs":[{type:"boolean", width: 300, label: {"text":"Text","color":"white"}, key: "ex3"},{type:"number_range", width: 300, label: {"text":"Text","color":"gold"},start:1f,end:64f,steps:63, key: "ex"},{type:"number_range", width: 300, label: {"text":"Text","color":"gold"},start:1f,end:64f,steps:63, key: "ex2"}], action: {label: "Text", id:"whatever", on_submit:{type: "command_template", template: "function test:run_command {score:$(ex),tes:$(ex2),true:$(ex3)}"}}}

Значения, которые вы выбрали на ползунках, передаётся прямо в функцию, где далее вставляется в команды и выполняется. В датапаке будет функция ( example_2 ), которая это окно запускает, выберете какие-то значения и потом нажмите кнопку внизу, значение 0 или 1 появится в scoreboard и вам выдастся столько алмазов и камня, сколько вы выбрали в ползунках.

Создайте мир и загрузите в него датапак, после чего пропишите /reload.

Название функции с диалогом example_2

Ссылка на датапак: https://drive.google.com/file/d/1-oP40XF4sO-L-8EioCacMRlvOKwTY9Zo/view?usp=sharing