DataStoreService 揭示方法獲得 GlobalDataStore 和 OrderedDataStore 對象。 資料存取僅可由遊戲服務器訪問,因此您只能在 0>Class.DataStoreService0>
參閱「數據存取」了解有關數據結構、管理、錯誤處理等方面的深度指南。
範例程式碼
local DataStoreService = game:GetService("DataStoreService")
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end
概要
屬性
設定資料存取功能是否應該自動重試。DataStoreService 因技術原因而無法執行此操作,因此您必須自行實現重試操作。
方法
建立一個 DataStore 實例,並且提供指定的名稱和範圍。
返回預設資商店 商家存取。
獲得一個 OrderedDataStore 有名字和可選擇的範圍。
返回指定請求類型的可以發出的請求輸入。
返回 DataStoreListingPages 個對象,以檢索所有體驗資料存儲。
屬性
AutomaticRetry
設定資料存取功能是否應自動重試。
DataStoreService 不遵守此屬性,因為技術原因而導致自動重試被禁用。因此,您必須自行實現退出操作的機制。 可能會在未來導致自動重試被啟用。
方法
GetDataStore
此功能會建立一個 DataStore 實例,並且以提供的名稱和範圍提供。與此方法的後續呼叫會以相同的對象返回相同的對物件。
使用 scope 參數將操作限制在該範圍內,因為它會自動預先將範圍預付給所有操商店 商家上的鑰匙。此功能也接受可選的 DataStoreOptions 實例,其包括啟用 AllScopes 的選項。 查看 1>數據存取</
參數
返回
Class.DataStore 實例,包含指定名稱和可選範圍。
GetGlobalDataStore
此函數返回預設 GlobalDataStore。如果您想要存取特定名稱的資料存檔,您應該使用 Class.DataStoreService:GetDataStore() 函數。
返回
範例程式碼
local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)
GetOrderedDataStore
此方法會返回 OrderedDataStore ,與 GetDataStore() 的方式相似。與 GlobalDataStores 的後續呼叫此方法會返回相同的對物件。
參數
返回
範例程式碼
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
此功能返回當前位置可以根據指定的 Enum.DataStoreRequestType 來執行的數據存取請求數量。任何超出此預算的請求都將受到限制。監視並調整使用此功能來調整數據存取請求頻率是重要的。
參數
返回
範例程式碼
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
返回一個 DataStoreListingPages 對象,用於檢索所有體驗的數據儲存。它接受可選的 prefix 參數,以僅僅找到名稱為所提供參數的數據儲存。
只有包含至少一個對象的資料才會以此功能列出。
參數
(可選) 預碼列,用於列出開始以指定樣子的資料存取。
(可選) 每個頁面要返回的項目數量。預設為 32 個。
(可選) 滑鼠指針以繼續執行。
返回
DataStoreListingPages 實例,包含 DataStoreInfo 實例,提供名稱、創建時間和最後更新時間等詳細資訊。