Для реализации общения с NPC мы можем использовать диалоги.
Диалог - это JSON-объект, внутри которого используются другие структуры. Ниже приведена таблица со всеми KV-парами данного JSON-объекта.
Ключ | Описание | Тип | Стандартное значение |
---|---|---|---|
id | id данного диалога | string | ❌ |
text | Текст, который NPC даст при открытии диалога. При значении null NPC ничего не говорит |
string|null | null |
buttons | Кнопки данного диалога | Button[] | ❌ |
conditions | Условия данного диалога | string[] | ❌ |
*Все элементы у которого отсутствует стандартное значение обязательны для ввода
Типы данных, используемые в таблице:
string
- Обычная строка. Пример:"Какая-то строка"
null
- Null-тип. Имеет только единственное значение(null
). Обозначает отсутствие объекта.Button
- Структура данных кнопки диалога.- Если после имени типа данных присутствует
[]
, то это обозначает, что это массив данного типа. Пример:[ "Это кажется массив строк.", "Да, это массив строк.", "Круто!" ]
- Для создания диалога можно воспользоваться примером ниже или достать его из папки
plugins/Expo/example_dialogue.json
. - После того как мы завершили его создание, мы сохраняем файл в виде
id_диалога.json
, куда мы подставляем наш id диалога. - Скидываем файл в папку
plugins/Expo/dialogues
и вводим команду/expo reload
для перезагрузки контента.
{
"id": "test_dialogue",
"text": "Какой-то текст",
"buttons": [
{
"text": "Какой-то текст у кнопки",
"action": "none",
"conditions": [
"test 2 4 6"
]
},
{
"text": "Какой-то другой текст у кнопки",
"action": "none Паккаааааааа :D"
}
],
"conditions": [
"test 1 2 3"
]
}