local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local ui = script.Parent
local frame = ui:WaitForChild("DialogueFrame")
local nameLabel = frame:WaitForChild("NameLabel")
local portrait = frame:WaitForChild("Portrait")
local dialogueText = frame:WaitForChild("DialogueText")
local btn1 = frame.ButtonHolder.Responce1
local btn2 = frame.ButtonHolder.Responce2
local btn1Conn
local btn2Conn
local talking = false
local typeSound = ui:WaitForChild("TypeSound")
local function typeText(text)
dialogueText.Text = ""
for i = 1, #text do
dialogueText.Text = string.sub(text, 1, i)
typeSound:Play()
wait(0.02)
end
end
function handleResponse(responseData)
if responseData.Type == "Close" then
hideUI()
elseif responseData.Type == "NextMessage" then
local newData = responseData.NextDialogue
if newData then
updateUI(newData)
end
else
warn("Unknown Response Type")
hideUI()
end
end
function openUI(data)
ui.Enabled = true
frame.Visible = true
updateUI(data)
end
function updateUI(data)
nameLabel.Text = data.Name
portrait.Image = data.Portrait
typeText(data.Dialogue)
btn1.Text = data.Responses[1].Text
btn2.Text = data.Responses[2].Text
if btn1Conn then btn1Conn:Disconnect() end
if btn2Conn then btn1Conn:Disconnect() end