local Message = game.ReplicatedStorage:WaitForChild("Message")
local Speaker = Message:WaitForChild("Speaker")
local HideDialogueEvent = Message:WaitForChild("HideDialogueEvent")
local player = game.Players.LocalPlayer
local DialogueFrame = player.PlayerGui:WaitForChild("DialogueGui").DialogueFrame
local camera = Instance.new("Camera", DialogueFrame)
function UpdateCharacter3(character)
for i, v in pairs(DialogueFrame.PlayerFrame.PlayerFrame.Icon.WorldModel:GetDescendants()) do
if v:IsA("BasePart") or v:IsA("Accessory") or v:IsA("Shirt") or v:IsA("Pants") or v:IsA("ShirtGraphic") or v:IsA("BodyColors") or v:IsA("Humanoid") then
v:Destroy()
end
end
for i, v in pairs(character:GetChildren()) do
if v:IsA("BasePart") or v:IsA("Accessory") or v:IsA("Shirt") or v:IsA("Pants") or v:IsA("ShirtGraphic") or v:IsA("BodyColors") or v:IsA("Humanoid") then
local new = v:Clone()
new.Parent = DialogueFrame.PlayerFrame.PlayerFrame.Icon.WorldModel
end
end
wait()
DialogueFrame.PlayerFrame.PlayerFrame.Icon.CurrentCamera = camera
camera.CFrame = DialogueFrame.PlayerFrame.PlayerFrame.Icon.WorldModel.Head.CFrame * CFrame.new(0, 0.2, -2) * CFrame.Angles(0, math.rad(180), 0)
end
function AnimateText(text)
script.DialogueSound:Play()
DialogueFrame.DialogueFrame.Message.Text = text
end
HideDialogueEvent.OnClientEvent:Connect(function()
DialogueFrame:TweenPosition(UDim2.new(0.55,0,-1,0), Enum.EasingDirection.In, Enum.EasingStyle.Quad, 1)
end)
Message:GetPropertyChangedSignal("Value"):Connect(function()
AnimateText(Message.Value)
end)
Speaker:GetPropertyChangedSignal("Value"):Connect(function()
DialogueFrame:TweenPosition(UDim2.new(0.55,0,0.15,0), Enum.EasingDirection.In, Enum.EasingStyle.Quad, 1)
print("New Speaker: "..Speaker.Value)
UpdateCharacter3(workspace[Speaker.Value])
DialogueFrame.PlayerFrame.PlayerFrame.Icon.nameLabel.Text = Speaker.Value
end)