Привет, напиши код на диалог в Roblox Studio
lua
-- Создаем переменные для NPC (непись)
local npc = script.Parent
local humanoid = npc:WaitForChild("Humanoid")
local dialog = npc:WaitForChild("Dialog")
local dialogPart = npc:WaitForChild("DialogPart")
-- Переменные для игрока
local player = nil
local playerDialog = nil
local playerDialogPart = nil
-- Функция для начала диалога
local function startDialog(playerCharacter)
-- Получаем персонажа игрока и часть диалога игрока
player = playerCharacter
playerDialog = playerCharacter:WaitForChild("PlayerDialog")
playerDialogPart = playerCharacter:WaitForChild("PlayerDialogPart")
-- Запускаем диалог NPC
humanoid:MoveTo(dialogPart.Position)
wait(1)
playerDialogPart.Transparency = 0
playerDialogPart.CanCollide = true
wait(1)
-- Проверяем, есть ли включенный диалог у игрока
if playerDialog.Value then
-- Деактивируем диалог игрока
playerDialog.Value = false
playerDialogPart.CanCollide = false
playerDialogPart.Transparency = 1
-- Запускаем новый диалог NPC
dialogPart.Transparency = 0
dialogPart.CanCollide = true
else
-- Ничего не делаем, если у игрока уже активен диалог
end
end
-- Функция для окончания диалога
local function endDialog()
-- Деактивируем диалог NPC
dialogPart.CanCollide = false
dialogPart.Transparency = 1
wait(1)
-- Возвращаем игрока обратно на стартовую позицию
humanoid:MoveTo(npc.StartPosition.Position)
wait(1)
-- Проверяем, есть ли активный диалог у игрока
if playerDialog.Value then
-- Активируем диалог игрока обратно
playerDialogPart.CanCollide = true
playerDialogPart.Transparency = 0
else
-- Ничего не делаем, если у игрока нет активного диалога
end
end
-- Проверяем, что непись и игрок находятся в зоне диалога
dialogPart.Touched:Connect(function(hit)
local humanoidPart = hit.Parent:FindFirstChild("HumanoidRootPart")
if humanoidPart and humanoidPart == player.Character:FindFirstChild("HumanoidRootPart") then
startDialog(hit.Parent)
end
end)
-- Проверяем, что игрок покинул зону диалога
dialogPart.TouchEnded:Connect(function(hit)
if hit.Parent == player.Character then
endDialog()
end
end)
В этом коде предполагается, что у игрока и NPC есть модель персонажа с частью тела "HumanoidRootPart" и частью диалога "PlayerDialogPart" для игрока и "DialogPart" для NPC. Также предполагается, что у игрока и NPC есть триггер части "DialogPart", где диалог начинается, и этот трейсер является дочерним элементом NPC.
Когда игрок касается триггера диалога, игра вызывает функцию `startDialog`, которая активирует диалог NPC и деактивирует диалог игрока (если он активен). Когда игрок покидает триггер диалога, игра вызывает функцию `endDialog`, которая деактивирует диалог NPC и активирует диалог игрока (если он активен).
Это только базовый пример кода для диалога в Roblox Studio. Вы можете настроить и расширить этот код в зависимости от ваших потребностей и дизайна диалоговой системы в вашей игре.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет