es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecución de cadena de cliente

Estoy intentando permitir que los jugadores ejecuten scripts desde un script local en mi juego.
(No con fines maliciosos, estoy tratando de hacer un desafío para exponer las debilidades del juego).
loadstring no funciona desde el cliente, ¿hay algo más que pueda hacer?

Tags:  

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en roblox, entiendo su consulta sobre permitir que los jugadores ejecuten scripts desde un script local en su juego sin ninguna intención maliciosa.

    Una solución a este problema es usar el objeto RemoteFunction. Puede crear un objeto RemoteFunction en el lado del servidor y luego llamarlo a través de un LocalScript. En el script del servidor, puede realizar las comprobaciones necesarias para garantizar que el script que se está ejecutando es seguro y no representa ninguna amenaza para su juego.

    Así es como puede implementar esto:

    1. Cree un objeto RemoteFunction en el servidor:
    local remoteFunction = Instance.new("RemoteFunction")
    remoteFunction.Name = "ExecuteScript"
    remoteFunction.Parent = game:GetService("ReplicatedStorage")
    
    1. En el script del servidor, agregue una función para ejecutar el script. Por ejemplo, podría agregar este código:
    function executeScript(player, script)
        if not game:GetService("RunService"):IsServer() then
            return
        end
    
        -- Realice aquí las comprobaciones de seguridad
    
        local f = loadstring(script)
        f()
    end
    
    remoteFunction.OnServerInvoke = executeScript
    
    1. En el LocalScript del cliente, puede llamar al objeto RemoteFunction para ejecutar el script:
    local remoteFunction = game:GetService("ReplicatedStorage").ExecuteScript
    
    local function onClick()
        remoteFunction:InvokeServer(scriptToExecute)
    end
    
    yourButton.MouseButton1Click:Connect(onClick)
    

    Con este enfoque, puede permitir de manera segura que los jugadores ejecuten scripts y prueben las debilidades de su juego sin comprometer su integridad.

Comments are closed.