主题
ReserveServerResult
概览
| 字段 | 值 |
|---|---|
| Kind | Data · 数据 Data |
| Realm | common |
ReserveServerResult 用于承载服务端预留专属服务器所返回的结果,其核心内容是 ReservedServerAccessCode 这一访问码。借助该访问码,多个玩家可以被送往同一个事先预留好的服务器实例,而不必依赖自动匹配。它通常作为传送链路的中间产物,把预留动作与后续的实际传送连接起来。
适用场景
适合需要把一批玩家送进同一台私有服务器的场景,例如开房间、组队对局或分线玩法:服务端先预留服务器拿到访问码,再据此把玩家整队传送过去。
使用要点
该类型无法自行创建,只能接收 TeleportService:ReserveServerAsync 的返回值作为实例。取得实例后读取 ReservedServerAccessCode,将其赋给 TeleportOptions 的 ReservedServerAccessCode 字段(选项对象可由 TeleportService:CreateTeleportOptions() 或 TeleportOptions.New() 得到),随后可用 SetTeleportData 附加业务数据,最后交给 TeleportService:TeleportAsync 完成传送。
注意事项
该类型不可直接构造,只能通过 TeleportService:ReserveServerAsync 获取。ReservedServerAccessCode 是可进入预留服务器的敏感凭据,不要打印、持久化到公开数据或发送给无权限客户端;应直接写入 TeleportOptions 后用于服务端传送流程。
代码示例
预留服务器后安全配置传送选项
lua
-- @runtime server
local TeleportService = game:GetService('TeleportService')
local Task = game:GetService('Task')
local function configureReservedServer(mapId)
if mapId == nil or mapId == '' then return end
Task:Spawn(function()
local ok, result = pcall(function()
return TeleportService:ReserveServerAsync(mapId)
end)
if ok and result ~= nil then
local options = TeleportService:CreateTeleportOptions()
options.ReservedServerAccessCode = result.ReservedServerAccessCode
print('预留服务器传送选项已配置') -- 不输出访问码
end
end)
end
-- 调用方把项目配置中的真实地图 ID 传给 configureReservedServer属性 (1)
| Name | 类型 | 默认值 | 说明 |
|---|---|---|---|
ReservedServerAccessCode | String | "" | ReserveServerAccessCode 是 ReserveServerResult 类型上的一个只读字符串属性,表示一次服务器预留操作产生的访问码。该访问码的用途是填入 TeleportOptions 的 ReservedServerAccessCode 属性,从而把玩家定向传送到对应的预留服务器实例。ReserveServerResult 本身不能直接构造,只能通过服务端返回结果获得。 |
