✓ Accepted answer
function pm()
local n = game.Players.LocalPlayer.Name
local m = script.Parent.Parent.username.Text
local b = script.Parent.Parent.pm.Text
local p = game.ReplicatedStorage.pm:Clone()
p.Frame.author.Text = "from " .. n
p.Frame.text.Text = "" .. m
p.Parent = game.Players:FindFirstChild(m).PlayerGui
end
script.Parent.MouseButton1Down:connect(pm)
Well, there's not always a Player in Players named what m is. Say I put something like nibzor in the textbox and there's no nibzor in the game. What happens? It returns an ugly error. So how do we fix this? We check if there is someone with said name. But how do we do that? by using an If Statement.
So, it would look like this.
if game.Players:FindFirstChild(m) then
p.Parent = game.Players:FindFirstChild(m).PlayerGui
else print("No one with that name was found")
end
And your finished code..
function pm()
local n = game.Players.LocalPlayer.Name
local m = script.Parent.Parent.username.Text
local b = script.Parent.Parent.pm.Text
local p = game.ReplicatedStorage.pm:Clone()
p.Frame.author.Text = "from " .. n
p.Frame.text.Text = "" .. m
if game.Players:FindFirstChild(m) then
p.Parent = game.Players:FindFirstChild(m).PlayerGui
else print("No one with that name was found")
end
end
script.Parent.MouseButton1Down:connect(pm)
4 comments
Am i blind or missing something but why is Text said twice in measure 7
text is the name of the TextLabel. Text is the actual Text property.
we didn't ignore it, it was removed.
I recommend using a RemoteEvent instead.