#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)
Я не знаю, как устроен ваш сервер, поэтому вам, возможно, придется обойти это. Есть замечательная вики-страница, на которой есть больше информации и примеров.