我正在努力寻找一种好的方法来连接我的服务器和我的Roblox游戏

0 人关注

昨天我建立了一个Ubuntu服务器来运行一些游戏外的脚本,以便与游戏内的脚本一起工作。我在游戏编辑器中启用了HTML调用以及第三方访问。我还通过对象浏览器寻找可能的对象,以便在获取和发布请求中使用。我想出了一些代码,但它完全没有功能。

local UserId = game.Players.LocalPlayer
local mining = UrlEncode("http://216.128.0.0:34648/")
for mining in Connect(function() 
Any advice or help would be appreciated. Thanks.
    
6 个评论
Dai
你说的 "HTML调用 "是什么意思?
我指的是对服务器的调用。在Roblox Studio中,它被称为http请求。
如果这是你真正的知识产权,我建议你把问题编辑成一个假设性的问题。在这一点上,你到底想达到什么目的?你只是向服务器发送UserID吗?
我把IP编辑成一个空的。我想用我的云服务器建立一个离线afk奖励系统,并需要与之同步,因为我将有游戏中的购买可以出来,而奖励可以进去。如果这有意义的话。
如果你想做一个afk奖励系统,你也可以使用 DataStoreService 作为一个持久层。当玩家离开时,将服务器的日期和时间序列化为一个附加在玩家身上的键,当他们回来时,将其与当前服务器的日期和时间进行比较。
我很欣赏这个想法,但奖励系统是多平台的,其中Roblox只是被整合的不同系统之一。
json
server
lua
roblox
Keith Jacobs
Keith Jacobs
发布于 2021-12-09
1 个回答
kojocrash
kojocrash
发布于 2021-12-09
已采纳
0 人赞同

首先,如果你还没有启用HTTP。

我想,你不能从客户端发送http请求:你必须使用一个服务器脚本。这意味着你不能通过 LocalPlayer 来获得播放器。我提供了一个 POST请求 的例子,它使用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)