在《Roblox》中管理场所实例



所以,显然Roblox现在有了传送玩家到不同地方的方法。

这很棒,但对于我心目中的游戏,我需要非常精细地控制哪些玩家可以进入哪些服务器(或者像《Roblox》所称的那样,"地点实例")。我如何明确地将一名玩家或一组玩家传送到一个没有其他玩家的新地点实例?

您可以在wiki上找到相关文章

下面是一个示例代码:
local AssetService = Game:GetService(“AssetService”)
local TeleportService = Game:GetService("TeleportService")
local NewPlaceName = "New place #: " .. math.random() * 100
local NewPlaceId = AssetService:CreatePlaceAsync(NewPlaceName , [ID of template] )
for i,Player in ipairs(Game.Players:GetPlayers()) do
    TeleportService:Teleport(NewPlaceId , Player)   
end

代码将从一个id为[模板的id]的模板创建一个新实例,然后将当前游戏中的所有玩家发送到该实例。

您可以通过使用数据存储(如示例所示)获得更多控制权

尝试制作备用服务器。备用服务器的生成是为了锁定玩家并隐藏服务器,玩家只有在脚本将他们传送到服务器运行的地方时才能加入服务器。

https://developer.roblox.com/api-reference/function/TeleportService/ReserveServer

您可能希望使用TeleportService的ReserveServer函数。代码可能会聚集在一起,但请阅读代码注释。

local TeleportService = game:GetService("TeleportService")
function ReserveServerAndTeleportParty(players)
    local reservedServer = TeleportService:ReserveServer(--[[Game's place ID]])
    TeleportService:TeleportToPrivateServer(00000000--[[Enter what you entered in the ReserveServer Function]],
        reservedServer,
        players,
        --[[From this point, everything is optional in this TeleportToPrivateServer function]]
        "Spawnpoint name for players to spawn at",
        "Teleport data",
        Instance.new("ScreenGui")--[[Custom loading screen]])
end
ReserveServerAndTeleportParty()

当所有玩家加载到该位置时,服务器中玩家的最大数量需要始终等于服务器中的玩家数量,以便服务器始终是满的

最新更新