local claim = script.Parent.Parent.Parent.Parent.StandMesh.Claim
Esto activará el aviso de proximidad.
claim.Triggered:Connect(function(player)
local screengui = player.PlayerGui:WaitForChild('Popups')
local popup = player.PlayerGui:WaitForChild('Popups').ClaimedBooth
local bool = player:WaitForChild('Values').Claimed
Solución del problema
"Rendimiento infinito posible" es una advertencia. Le permite saber que su código no es seguro y que cuando se ejecutó este código, el Values
objeto no existía (o se deletreó incorrectamente) durante más de 5 segundos y player:WaitForChild('Values')
no pudo resolverse como un objeto.
La documentación de Instance:WaitForChild() dice lo siguiente:
notas
- Si una llamada a esta función supera los 5 segundos sin regresar, y no se ha especificado ningún parámetro de tiempo de espera, se imprimirá una advertencia en la salida de que el subproceso puede producir indefinidamente; esta advertencia adopta la forma Rendimiento infinito posible en 'X:WaitForChild("Y")', donde X es el nombre principal e Y es el nombre del objeto secundario.
- Esta función no funciona si existe un hijo con el nombre dado cuando se realiza la llamada.
- Esta función es menos eficiente que Instance:FindFirstChild o el operador punto. Por lo tanto, solo debe usarse cuando el desarrollador no está seguro de si el objeto se ha replicado en el cliente. En general, esta es solo la primera vez que se accede al objeto.
Puede eliminar esta advertencia agregando un timeout
como segundo argumento, pero deberá tener en cuenta el hecho de que es posible que no se encuentre el objeto:
local timeout = 2 -- seconds
local values = player:WaitForChild('Values', timeout)
if values then
local boolVal = values.Claimed
print("Claimed = ", boolVal.Value)
-- mark it as claimed
boolVal.Value = true
else
warn("Could not find 'Values' BoolValue")
end
Alternativamente, si sabe que Values
existirá en el momento en que se ejecutará este código, simplemente puede acceder a él con el operador de punto o con la FindFirstChild()
función. Pero esto arrojará un error de "Intento de indexar cero" si Values
no existe.
local boolVal = player:FindFirstChild('Values').Claimed
-- or
local boolVal = player.Values.Claimed
-- mark it as claimed
boolVal.Value = true
Cuando vea esta advertencia, debe volver a verificar la ortografía del nombre del objeto, así como el momento en que se ejecuta la secuencia de comandos para asegurarse de que el objeto realmente existe.
No hay comentarios.:
Publicar un comentario