I'm trying to show a message when you touch a brick, and the script work when I test it in roblox studio, but in a local server not. I know I should use a "Remote Event" for make the script work, but I don't know how exactly I can do that, I'm new using Remote Events/Remote Functions.
I have this script in a brick:
debounce = false script.Parent.Touched:connect(function(hit) local h = hit.Parent:FindFirstChild("Humanoid") if h and debounce == false then debounce = true local Player = game.Players:GetPlayerFromCharacter(hit.Parent) Player.PlayerGui.ComprarNegocio.Terreno1.Visible = true wait(4) debounce = false end end)
When I test it in local server I get this error " ComprarNegocio is not a valid member of PlayerGui "
How can I fix it?
PlayerGui
. El servidor debe de haber puesto el objeto en PlayerGui
para que el servidor pueda verlo. Necesitarás un RemoteEvent
. Pon uno en ReplicatedStorage
.-- LocalScript dentro de la gui llamada "ComprarNegocio" local remoto = game.ReplicatedStorage.RemoteEvent -- el nombre de tu evento remoto.OnClientEvent:Connect(function() -- escuchando por FireClient para ejecutar el código script.Parent.Enabled = true -- visible end)
local debounce = false -- las variables locales!! local remoto = game.ReplicatedStorage.RemoteEvent -- el mismo remoto de antes script.Parent.Touched:Connect(function(hit) local h = hit.Parent:FindFirstChild("Humanoid") if h and not debounce then -- con el operador "not", no se requiere == false debounce = true local Player = game.Players:GetPlayerFromCharacter(hit.Parent) if Player then -- quizá no sea un jugador, hay que asegurarnos remoto:FireClient(Player) -- necesitamos el jugador para ejecutar el código a ese jugador wait(4) debounce = false end end end)
PlayerGui
. Pero cuando juegas en un servidor, esta separación sí existe.:connect()
está en desuso, sugiero que cambies a :Connect()
.