我正在努力寻找一种将我的服务器链接到我的 Roblox 游戏的好方法

Posted

技术标签:

【中文标题】我正在努力寻找一种将我的服务器链接到我的 Roblox 游戏的好方法【英文标题】:I am struggling to discover a good method to link my server to my Roblox game 【发布时间】:2022-01-13 22:56:28 【问题描述】:

昨天我设置了一个 Ubuntu 服务器来运行一些游戏外脚本以与游戏内脚本一起工作。我在我的游戏编辑器中启用了 html 调用和第三方访问。我还通过对象浏览器查看了可能在 get 和 post 请求中使用的对象。我想出了一些代码,但它完全不起作用。

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()
    
Any advice or help would be appreciated. Thanks.

【问题讨论】:

“HTML 调用”是什么意思? 对服务器的调用是我所指的。在 Roblox Studio 中,它被称为 http 请求。 如果那是您的真实 IP,我建议您将问题编辑为假设的问题。在那张纸条上,您到底想完成什么?您只是将 UserID 发送到服务器吗? 我将 IP 编辑为空 IP。我想使用我的云服务器设置离线 afk 奖励系统,并且需要与之同步,因为我将在游戏中购买可以从中获得的奖励,以及可以进入的奖励。如果这有意义的话。 如果你想创建一个 afk 奖励系统,你也可以使用DataStoreService 作为持久层。当玩家离开时,将服务器日期和时间序列化为附加到玩家的密钥,当他们回来时,将其与当前服务器日期和时间进行比较。 【参考方案1】:

首先,如果您还没有启用 HTTP:

iirc,您不能从客户端发送 http 请求:您必须使用服务器脚本。这意味着您无法通过LocalPlayer 获取播放器。我提供了一个 POST request 的示例,它使用 JSON 发送数据。

ServerScriptService 中的脚本:

local HttpService = game:GetService("HttpService")
local serverURL = "http://216.128.0.0:34648/mining"

function mine(player)
    local arguments = 
        ["userID"] = player.UserId,
        ["name"] = player.Name
    
    
    local response = HttpService:PostAsync(serverURL, HttpService:JSONEncode(arguments), Enum.HttpContentType.ApplicationJson)
    local responseData = HttpService:JSONDecode(response) --assuming the response is in JSON
    print(responseData)
end

game.Players.PlayerAdded:Connect(mine)

我不知道您的服务器是如何构建的,因此您可能需要解决这个问题。有一个很棒的wiki page 有更多的信息和示例。

【讨论】:

以上是关于我正在努力寻找一种将我的服务器链接到我的 Roblox 游戏的好方法的主要内容,如果未能解决你的问题,请参考以下文章

Xampp - 将外部 url 重定向到 localhost

我正在尝试将我的表单链接到我的 PHP 页面,并且我想在用户单击提交按钮时将用户的输入打印到该页面上

将代码复制到word文档中并保持格式[关闭]

使用 otest 调试测试时,如何将我的可执行文件链接到我的测试包?

将PDF转换为图像的省时方法

寻找一种将更多列表动态添加到 jQuery Mobile 列表视图底部的方法