Я изо всех сил пытаюсь найти хороший способ связать мой сервер с моей игрой Roblox

#json #server #lua #roblox

#json #сервер #lua #roblox

Вопрос:

Вчера я настроил сервер 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.
 

Комментарии:

1. Что вы подразумеваете под «вызовами HTML»?

2. Я имею в виду вызовы на сервер. В Roblox Studio это называется http-запросами.

3. Если это ваш реальный IP, я предлагаю вам изменить вопрос на гипотетический. На этой ноте, чего именно вы пытаетесь достичь? Вы просто отправляете идентификатор пользователя на сервер?

4. Я отредактировал IP на нулевой. Я хочу настроить автономную систему вознаграждений afk с помощью моего облачного сервера, и мне нужно синхронизировать с ней, потому что у меня будут покупки в игре, которые могут быть получены в результате этого, и награды, которые могут быть получены. Если это имеет смысл.

5. Если вы пытаетесь создать систему вознаграждений afk, вы также можете использовать DatastoreService в качестве уровня сохранения. Когда игрок уходит, сериализуйте дату и время сервера в ключ, прикрепленный к игроку, и когда они вернутся, сравните это с текущей датой и временем сервера.

Ответ №1:

Во-первых, включите HTTP, если вы еще этого не сделали:
введите описание изображения здесь

iirc, вы не можете отправлять 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)
end

game.Players.PlayerAdded:Connect(mine)
 

Я не знаю, как устроен ваш сервер, поэтому вам, возможно, придется обойти это. Есть замечательная вики-страница, на которой есть больше информации и примеров.