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.

Estoy teniendo dificultades para descubrir un buen método para enlazar mi servidor con mi juego de Roblox.

Ayer configuré un servidor Ubuntu para ejecutar algunos scripts fuera del juego y trabajar en conjunto con los scripts del juego. Habilité las llamadas HTML y el acceso de terceros en mi editor de juego. También busqué en el navegador de objetos posibles objetos para usar en las solicitudes GET y POST. He creado algún código, pero no funciona en absoluto.

local UserId = game.Players.LocalPlayer
local mining = UrlEncode("http://216.128.0.0:34648/")

for mining in Connect(function()
    getAsync(mining.."/"..UserId)
    PostAsync(mining.."/"..UserId)
end)

do JSONEncode()

JSONDecode()

Cualquier consejo o ayuda sería apreciado. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para código no funcional

    A partir del código proporcionado, parece que hay algunos problemas que deben solucionarse para que el código sea funcional. A continuación se presentan algunas sugerencias:

    1. La función UrlEncode parece estar incompleta. Debería tomar un parámetro de cadena y devolver una versión codificada de esa cadena. Aquí hay una implementación de ejemplo:
    function UrlEncode(str)
      if (str) then
        str = string.gsub (str, "\n", "\r\n")
        str = string.gsub (str, "([^%w %-%_%.%~])",
            function (c) return string.format ("%%%02X", string.byte(c)) end)
        str = string.gsub (str, " ", "+")
      end
      return str
    end
    
    1. La función Connect no está definida en el código. No está claro qué debería hacer esta función. Por lo tanto, se recomienda eliminar esta llamada a la función o definirla correctamente.
    2. Las funciones getAsync y PostAsync deben ser llamadas por separado, no dentro de un bucle for. Aquí hay un ejemplo de cómo usar estas funciones:

    local HttpService = game:GetService("HttpService")
    local url = "http://216.128.0.0:34648/"
    
    -- Solicitud GET
    local response = HttpService:GetAsync(url .. UserId)
    print(response)
    
    -- Solicitud POST
    local data = {["UserId"] = UserId}
    local response = HttpService:PostAsync(url, HttpService:JSONEncode(data))
    print(response)
    
    1. Parece que faltan las funciones JSONEncode y JSONDecode. Estas funciones son esenciales para trabajar con datos JSON. Aquí hay una implementación de ejemplo:
    local JSON = {}
    
    function JSON.Encode(tbl)
        return game:GetService("HttpService"):JSONEncode(tbl)
    end
    
    function JSON.Decode(str)
        return game:GetService("HttpService"):JSONDecode(str)
    end
    

    Con estas modificaciones, el código debería funcionar como se espera.

Comments are closed.