В этой статье вы узнаете как можно сделать диалог в Roblox Studio с любым НПС. С помощью диалогов можно будет создать настоящий сюжет со своей историей или использовать диалоги для объяснения правил, заданий и квестов. Создать сюжет можно при помощи базовых функций которые встроены в Roblox Studio.
В первую очередь пишем в поиск npc и выбираем подходящего
Кликните по НПС и выберите Head в меню справа
Раскройте Head персонажа и если в нем не будет файла Dialog нажмите на и добавьте его сами.
В нашем случае в Head лежит сразу два фала Dialog. Удаляем один из них.
Выберите файл Dialog и напишите в строке InitialPrompt приветственное сообщение от НПС (то что он скажет если вы начнете с ним диалог)
Нажмите кнопку сразу после Dialog и добавьте DialogChoice для того что бы продолжить диалог с НПС и создать фразы которыми вы будите отвечать
Выберите DialogChoice и напишите фразу которую должен будет ответить игрок в строке UserDialog, а в строке ResponseDialog напишите фразу которую должен будет сказать НПС
Далее можете прикрепить к DialogChoice еще один DialogChoice и прописать следующие фразы для того что бы продолжить диалог до бесконечности
А вот как это будет выглядеть
Дополнительные свойства диалогов
Dialog.ConversationDistance : Установите максимальное расстояние, с которого вы можете разговаривать с НПС. Если вы начнете на расстоянии, а затем выйдете из него, разговор закончится.
Dialog.Purpose : это различные значки, которые появляются над НПС, по которым вы можете щелкнуть. Квест это ! , Помощь ? и магазин $.
Dialog.Tone : Это цвет разговора — речевой пузырь и выбор графического интерфейса. Дружественный — зеленый, нейтральный — синий, а враг — красный.
Вы можете добавить несколько DialogChoice к Dialog (на одном уровне вложенности) для того что бы у игрока было несколько вариантов ответа. Вот как это работает:
Так же вы можете добавить еще больше функциональности если хорошо разбираетесь в Roblox Lua. С помощью функций и скриптов вы сможете выводить имена Игроков в диалогах, отображать какие то характеристики и многое другое. Так например этот скрипт отобразит имя игрока и название его выбора в диалоге.
workspace.Dialog.DialogChoiceSelected:connect(function(player,choice)
if choice.Name == "No" then
player.Character.Humanoid.Health = 0
elseif choice.Name == "Yes" then
player.Character.Humanoid.Health = 1000
Более подробную информацию по диалогам можете найти на сайте разработчиков Роблокс Студио.