我正在努力寻找一种将我的服务器链接到我的 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 页面,并且我想在用户单击提交按钮时将用户的输入打印到该页面上