ServerStorage
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un contenedor cuyo contenido solo se puede acceder en el servidor. Los objetos que se originan en el almacenamiento del servidor no se replicarán al cliente y no se podrán acceder desde LocalScripts .
Como ServerStorage es un servicio, solo se puede acceder a él usando el método DataModel.GetService.
Al almacenar grandes objetos como mapas en el almacenamiento del servidor hasta que sean necesarios, el tráfico de red no se usará para transmitir estos objetos al cliente cuando se unan al juego.
Scripts no se ejecutará cuando estén vinculados a ServerStorage, aunque ModuleScripts contenido dentro se puede acceder y se puede ejecutar. Se recomienda que los desarrolladores usen ServerScriptService para sostener 0> Class.Script|Scripts0> que desean que el servidor ejecute.
Tenga en cuenta que como los contenidos de ServerStorage solo se pueden acceder por el servidor, sus contenidos necesitarán ser padreados en otros lugares (como Workspace ) antes de que los clientes puedan acceder a ellos. Los desarrolladores que requieren un contenedor que se puede acceder tanto por el servidor como por el cliente están recomendados para usar ReplicatedStorage en su lugar.
Muestras de código
local ServerStorage = game:GetService("ServerStorage")
local ROUND_TIME = 5
local map1 = Instance.new("Model")
map1.Name = "Map1"
map1.Parent = ServerStorage
local map2 = Instance.new("Model")
map2.Name = "Map2"
map2.Parent = ServerStorage
local map3 = Instance.new("Model")
map3.Name = "Map3"
map3.Parent = ServerStorage
local maps = { map1, map2, map3 }
local RNG = Random.new()
local currentMap = nil
local lastPick = nil
while true do
print("New map!")
-- remove current map
if currentMap then
currentMap:Destroy()
end
-- pick a map
local randomPick = nil
if #maps > 1 then
repeat
randomPick = RNG:NextInteger(1, #maps)
until randomPick ~= lastPick
lastPick = randomPick
end
-- fetch new map
local map = maps[randomPick]
currentMap = map:Clone()
currentMap.Parent = workspace
task.wait(ROUND_TIME)
end