В этой статье вы узнаете как можно сделать диалог в 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