Используй DataStore, Roblox позволяет хранить данные вне сессий. Тебе нужно будет использовать его, чтобы сохранять информацию о созданной комнате.
Когда игрок создаст комнату, тебе нужно сохранить ее параметры (например, ID комнаты, имя, уровень и т.д.) в DataStore. Ты можешь использовать уникальный идентификатор, чтобы отличать разные комнаты.
local DataStoreService = game:GetService("DataStoreService")
local roomDataStore = DataStoreService:GetDataStore("RoomDataStore")
local function createRoom(player, roomName)
local roomId = tostring(math.random(100000, 999999))
local roomData = {
RoomId = roomId,
RoomName = roomName,
Owner = player.UserId
}
local success, errorMessage = pcall(function()
roomDataStore:SetAsync(roomId, roomData)
end)
if success then
print("Комната создана с ID: " .. roomId)
else
warn("Ошибка при создании комнаты: " .. errorMessage)
end
end
Когда игрок хочет зайти в комнату, тебе нужно будет загрузить данные комнаты из DataStore по ID комнаты и телепортировать игрока в соответствующее место. Проверь, существует ли комната и доступна ли она для данного игрока.
local function joinRoom(player, roomId)
local success, roomData = pcall(function()
return roomDataStore:GetAsync(roomId)
end)
if success and roomData then
print(player.Name .. " зашёл в комнату: " .. roomData.RoomName)
else
warn("Комната не найдена или произошла ошибка.")
end
end
Поскольку DataStore сохраняет данные и может быть доступен с разных серверов, любые изменения, сделанные на одном сервере (например, создание новой комнаты или обновление данных комнаты), будут доступны на всех других серверах.
Учитывай, что DataStore имеет ограничения по частоте обращений. Поэтому важно обрабатывать ошибки и избегать слишком частых вызовов.