ServerStorage

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo
Dịch Vụ
Không Sao Chép

Một container whose contents are only accessible on the máy chủ. Các đối tượng từ ServerStorage sẽ không bị sao chép đến client và sẽ không được truy cập từ LocalScripts .

Vì ServerStorage là một dịch vụ, nó chỉ có thể được truy cập bằng cách sử dụng phương thức DataModel.GetService.

Bằng cách lưu trữ các thống kê lớn như bản đồ trong ServerStorage cho đến khi chúng được yêu cầu, lưu lượng mạng không được sử dụng khi giao thức mạng tham gia vào trò chơi.

Scripts sẽ không chạy khi chúng được phụ huynh với ServerStorage, mặc dù ModuleScripts được truy cập và chạy từ bên trong có thể được truy cập và chạy. Nên khuyến nghị người phát triển sử d

Lưu ý rằng như nội dung của ServerStorage chỉ có thể được truy cập bởi máy chủ, nó sẽ cần phải được cha mẹ ở nơi khác (như Workspace ) trước khi khách hàng có thể truy cập vào nó. Các nhà phát triển khuyến nghị sử dụng Class.Replicated

Mẫu mã

This is a very simple example of how a multiple map system can be made using ServerStorage.

It creates three dummy models (to take the place of maps), that are parented to ServerStorage. Then, it will load a random map (different to the previous map) and wait a specified duration on a loop.

Developers wishing to integrate something similar into their games should consider measures to ensure players respawn correctly, or go to a lobby during intermission periods.

ServerStorage Map Rotation

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

Thuộc Tính

Phương Pháp

Sự Kiện