DataStoreService
*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.
DataStoreService hiển thị các phương thức để nhận GlobalDataStore và OrderedDataStore đối tượng. Data store chỉ có thể được truy cập bởi các máy
Xem Data Stores cho một hướng dẫn chi tiết về cấu trúc dữ liệu, quản lý, xử lý lỗi, v.v.
Mẫu mã
local DataStoreService = game:GetService("DataStoreService")
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end
Tóm Tắt
Thuộc Tính
Đặt whether data store functions should automatically retry or not. DataStoreService không tôn trọng thuộc tính này vì tự động thử lại đã bị vô hiệu hóa do lý do kỹ thuật. Do đó, bạn phải implement hệ thống cho việc thử lại các nhận.
Phương Pháp
Tạo một DataStore instância với tên và phạm vi đã cung cấp.
Trả lại cửa hàng dữ liệu mặc định.
Nhận một OrderedDataStore được đặt tên và phạm vi tùy chọn.
Quy đổi số lượng yêu cầu mà máy chủ có thể thực hiện cho đánh máyyêu cầu được cho phép.
Điều kiện trả lại một DataStoreListingPages đối tượng để kiểm tra tất cả các cửa hàng dữ liệu của trải nghiệm.
Thuộc Tính
AutomaticRetry
Đặt whether data store functions should automatically retry hoặc không.
DataStoreService không tôn trọng thuộc tính này vì lý do kỹ thuật. Do đó, bạn phải thực hiện các hệ thống cho việc thử lại các hành động bằng cách tự mình. Có thể thuộc tính tự động thử lại sẽ được bật lại trong tương lai.
Phương Pháp
GetDataStore
Hàm này tạo một DataStore instância với tên và phạm vi đã được cung cấp. Các lần gọi tiếp theo với cùng tên / phạm vi sẽ trả lại cùng một đối tượng.
Sử dụng scope đối tượng sẽ hạn chế các hoạt động đến phạm vi đó bằng cách tự động kéo dài kích thước khoảng cách đến các mũi tên trong tất cả các hoạt động được thực hiện trên c
Tham Số
Tên của cửa hàng dữ liệu.
(Bắt buộc) Một chuỗi định nghĩa phạm vi.
(Tùy chọn) Một DataStoreOptions instance để bật các tính năng thử nghiệm và các tính năng API v2.
Lợi Nhuận
GetGlobalDataStore
Hàm này trả về mặc định GlobalDataStore . Nếu bạn muốn truy cập một cửa hàng dữ liệu được đặt tên riêng thay vào đó, bạn nên sử dụng chức năng Class.DataStoreService:GetDataStore() .
Lợi Nhuận
Mẫu mã
local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)
GetOrderedDataStore
Phương thức này trả lại một OrderedDataStore, tương tự như cách GetDataStore() làm với GlobalDataStores . Các lần gọi tiếp theo với cùng tên/kích thước sẽ trả lại cùng một đối tượng.
Tham Số
Lợi Nhuận
Mẫu mã
local DataStoreService = game:GetService("DataStoreService")
local pointsStore = DataStoreService:GetOrderedDataStore("Points")
local function printTopTenPlayers()
local isAscending = false
local pageSize = 10
local pages = pointsStore:GetSortedAsync(isAscending, pageSize)
local topTen = pages:GetCurrentPage()
-- The data in 'topTen' is stored with the index being the index on the page
-- For each item, 'data.key' is the key in the OrderedDataStore and 'data.value' is the value
for rank, data in ipairs(topTen) do
local name = data.key
local points = data.value
print(name .. " is ranked #" .. rank .. " with " .. points .. "points")
end
-- Potentially load the next page...
--pages:AdvanceToNextPageAsync()
end
-- Create some data
pointsStore:SetAsync("Alex", 55)
pointsStore:SetAsync("Charley", 32)
pointsStore:SetAsync("Sydney", 68)
-- Display the top ten players
printTopTenPlayers()
GetRequestBudgetForRequestType
Hàm này trả lại số lượng yêu cầu lưu trữ dữ liệu mà hiện tại địa điểm có thể thực hiện dựa trên Enum.DataStoreRequestType đã được cung cấp. Bất kỳ yêu cầu nào vượt quá giới hạn này đều bị giảm giá. Lưu ý rằng theo dõi và điều chỉnh tần suất yê
Tham Số
Lợi Nhuận
Mẫu mã
local DataStoreService = game:GetService("DataStoreService")
local globalStore = DataStoreService:GetGlobalDataStore()
local function printBudget()
local budget = DataStoreService:GetRequestBudgetForRequestType(Enum.DataStoreRequestType.SetIncrementAsync)
print("Current set/increment budget:", budget)
end
for i = 1, 5 do
local key = "key" .. i
local success, err = pcall(function()
globalStore:SetAsync(key, true)
end)
if success then
printBudget()
else
print(err)
end
end
ListDataStoresAsync
Đều nhận một DataStoreListingPages đối tượng để đếm tất cả các kho dữ liệu trong trải nghiệm. Nó hỗ trợ một prefix 参数 opzional để chỉ định các kho dữ liệu có tên bắt đầu bằng cấu hình cung cấp.
Chỉ các dữ liệu chứa ít nhất một đối tượng sẽ được liệt kê thông qua chức năng này.
Tham Số
(Tùy chọn) Hệ thống Prefix để đếm dữ liệu lưu khởi đầu bằng cấu hình được cung cấp.
(Tùy chọn) Số lượng các mục được trả lại trong mỗi trang. Mặc định là 32.
(Bắt buộc) Cursor để tiếp tục lặp.
Lợi Nhuận
DataStoreListingPages một instance đứng chứa DataStoreInfo instances cung cấp chi tiết như tên, thời gian tạo và thời gian cập nhật cuối cùng.