В этой статье вы узнаете как можно сделать диалог в Roblox Studio с любым НПС. С помощью диалогов можно будет создать настоящий сюжет со своей историей или использовать диалоги для объяснения правил, заданий и квестов. Создать сюжет можно при помощи базовых функций которые встроены в Roblox Studio.

Quick-Start Module

При создании собственной игры в Роблокс очень часто возникает необходимость создания меню в котором игроки смогут просматривать разные разделы, открывать вкладку с магазином или получать какую то информацию. Сделать его в Роблокс студио достаточно просто при помощи стандартных инструментов и простейших скриптов.

Роблокс Студио команды и комбинации клавиш

Внутри ScreenGui при помощи кнопки вставляем TextButton (это будет кнопка нажав на которую вы откроете меню)

Роблокс Студио команды и комбинации клавиш

Размещаем его в любом месте на экране и редактируем внешний вид (шрифт, цвет фона, размер и т

Роблокс Студио команды и комбинации клавиш

Внутрь ScreenGui вставляем Frame (это область меню внутри которого можно будет размещать другие кнопки, разделы или какую то информацию)

Роблокс Студио команды и комбинации клавиш

Размещаем Frame в любом месте, редактируем его размер, цвет, прозрачность и другие параметры влияющие на внешний вид

Роблокс Студио команды и комбинации клавиш

Внутрь Frame вставляем TextButton и стилизуем ее по своему вкусу (это будет кнопка для закрытия меню)

Роблокс Студио команды и комбинации клавиш

После того как вы добавили все необходимое во Frame необходимо снять галочку с параметра Visible для того что бы меню было закрыто при запуске игры

Роблокс Студио команды и комбинации клавиш

К TextButton (который отвечает за открытие меню) прикрепляем LocalScript в котором прописываем следующий код :script. Parent. MouseButton1Click:Connect(function()
script. Parent. Parent. Frame. Visible = true
end)

Роблокс Студио команды и комбинации клавиш

К TextButton (который находится внутри Frame и отвечает за закрытие меню) прикрепляем LocalScript в котором прописываем следующий код :script. Parent. MouseButton1Click:Connect(function()
script. Parent. Parent. Parent. Frame. Visible = false
end)

Роблокс Студио команды и комбинации клавиш

Роблокс Студио команды и комбинации клавиш

Роблокс Студио команды и комбинации клавиш

Видео обзорhttps://www. youtube. com/embed/prLfG6V21IA?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=0&rel=1&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&

Навигация по записям

Если вы работаете на Mac используйте вместо Ctrl клавишу Command ⌘ клавишу, а не клавишу Mac control. А вместо Alt вы должны использовать option клавишу Mac.

Общие комбинации клавишУправление камеройОбщее редактированиеВыбор/редактированиеСценарииТестирование и публикация

To insert a spawn in Studio, select the Model tab and click the Spawn button:

Роблокс Студио команды и комбинации клавиш

  • Turn off its CanCollide property so players don’t appear to be standing on nothing.
  • Delete its child Decal object.

Implementing Teams

The Teams service isn’t included in a game by default, so you must add it.

  • With the Model tab still selected, click the Service button () in the Advanced section.
  • Select Teams and click Insert. When complete, the Explorer will get a new object called Teams.

Роблокс Студио команды и комбинации клавиш

Adding New Teams

With the Teams service added, you can create a new team by hovering over the Teams object, clicking the icon, and selecting Team.

Роблокс Студио команды и комбинации клавиш

Once the team has been added:

Роблокс Студио команды и комбинации клавиш

Роблокс Студио команды и комбинации клавиш

Configuring Spawns

To lock a spawn location to a specific team:

  • Select the SpawnLocation object.
  • In the Properties window, disable its Neutral property.
  • Set its TeamColor property to the color of the associated team you created above.

Роблокс Студио команды и комбинации клавиш

Player Assignment

By default, Roblox will auto-assign new players to the team with the fewest players. To assign players to a specific team and spawn location which you’ve configured:

Роблокс Студио команды и комбинации клавиш

Роблокс Студио команды и комбинации клавиш

Team Picker Sample

Choose among four teams from a GUI picker and spawn at the team’s respective spawn location.

Как создать диалог с НПС

В первую очередь пишем в поиск npc и выбираем подходящего

Роблокс Студио команды и комбинации клавиш

Кликните по НПС и выберите Head в меню справа

Роблокс Студио команды и комбинации клавиш

Раскройте Head персонажа и если в нем не будет файла Dialog нажмите на и добавьте его сами.

Роблокс Студио команды и комбинации клавиш

В нашем случае в Head лежит сразу два фала Dialog. Удаляем один из них.

Роблокс Студио команды и комбинации клавиш

Выберите файл Dialog и напишите в строке InitialPrompt приветственное сообщение от НПС (то что он скажет если вы начнете с ним диалог)

Роблокс Студио команды и комбинации клавиш

Нажмите кнопку сразу после Dialog и добавьте DialogChoice для того что бы продолжить диалог с НПС и создать фразы которыми вы будите отвечать

Роблокс Студио команды и комбинации клавиш

Роблокс Студио команды и комбинации клавиш

Далее можете прикрепить к 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
end
end)

Более подробную информацию по диалогам можете найти на сайте разработчиков Роблокс Студио.

Purpose

This library uses ChatModules to allow you to easily link behaviors that you write to chattable commands. ChatModules listen to incoming messages on the server and can execute actions based on whatever criteria is desired.

Prerequisites

  • Roblox Studio
  • Intermediate Roblox lua
  • Scripts, functions, variables, tables
  • Parent-child hierarchy
  • ModuleScript
  • The Chat system

Setup

Rather than implementing most of the Chat Module logic you will simply require the library module that does a bulk of the work and adds extra functionality. The simplest way to add the library into your module is to require it by its assetId at the top of your script.

Between these two lines of code is where you will be implementing your own commands and any necessary helper functions.

Роблокс Студио команды и комбинации клавиш

To unbind you would likewise use UnbindCommand and specify a keyword to unbind.

  • Speaker: ChatSpeaker
  • Message: DataType/string
  • ChannelName: DataType/string
  • Command: DataType/string

It is important to always expect commandData as a parameter of command functions. For example, if you have a command named “explode’, which requires a player parameter to be specified, the function would look like explode(commandData, player).

Роблокс Студио команды и комбинации клавиш

FunctionParametersReturn

Commands:
BindCommand()table functionIDs, function functionToExecute, number minimumPermissionLevel, string descriptionbool
UnbindCommand()table functionIDsbool
GetCommands()table

Utilities

Current utility functions are:

FunctionParametersReturn

Chat window messages:
SendSystemMessage()table commandData, string content, table extraDatabool
SendSystemSuccessMessage()table commandData, string contentbool
SendSystemWarningMessage()table commandData, string contentbool
SendSystemErrorMessage()table commandData, string contentbool
Error handlers:
NoPlayerSpecified()table commandDatabool
NotEnoughSpecified()table commandDatabool
IncorrectValueType()table commandData, string given, string expected
Object lookups:
Data conversion:
ToTupple(parameter)string parameterarray
ToBoolean()string parameterbool
ValidateData()string expectedType,. bool