ServerStorage
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Kontener, których treść jest dostępna tylko na serwerze. Przedmioty pochodzące z ServerStorage nie będą replikowane na klienta i nie będą dostępne z LocalScripts .
Ponieważ ServerStorage jest usługą, można go uzyskać tylko za pomocą metody DataModel.GetService.
Przechowywając duże obiekty, takie jak mapy, w ServerStorage, dopóki nie będą one potrzebne, ruch sieci nie będzie używany do przesyłania tych obiektów do klienta, gdy dołączą do gra.
Scripts nie będzie działać, gdy są one powiązane z ServerStorage, choć ModuleScripts zawierające wewnątrz można uzyskać dostęp i uruchomić. Rekomendujemy używanie ServerScriptService do utrzymywania 0> Class.Script|Scripts0> , które chcą
Uwaga, że treści ServerStorage można uzyskać tylko przez serwer, jego treści będą musiały być podrzędne gdzie indziej (takie jak Workspace ) przed, aby klienci mogli na nie uzyskać dostęp. Rozwój, który wymaga pojemnika dostępnego zarówno dla serwera, jak i dla klienta, zaleca się używać ReplicatedStorage zamiast tego.
Przykłady kodu
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