學習
引擎類別
MemoryStoreSortedMap
無法建立
未複製

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡


概要
方法
GetRangeAsync(direction: Enum.SortDirection,count: number,exclusiveLowerBound: Variant,exclusiveUpperBound: Variant):{any}
SetAsync(key: string,value: Variant,expiration: number,sortKey: Variant):boolean
UpdateAsync(key: string,transformFunction: function,expiration: number):Tuple
繼承成員

API 參考
方法
GetAsync
暫停
功能: DataStore
MemoryStoreSortedMap:GetAsync(key:string):Tuple
參數
key:string
返回

GetRangeAsync
暫停
功能: DataStore
MemoryStoreSortedMap:GetRangeAsync(
direction:Enum.SortDirection, count:number, exclusiveLowerBound:Variant, exclusiveUpperBound:Variant
參數
count:number
exclusiveLowerBound:Variant
exclusiveUpperBound:Variant
返回
範例程式碼
檢索 MemoryStore 鍵
local MemoryStoreService = game:GetService("MemoryStoreService")
local myMap = MemoryStoreService:GetSortedMap("MySortedMap")
function printAllKeys(map)
-- 初始下限為 nil,這意味著從第一個項目開始
local exclusiveLowerBound = nil
-- 這個迴圈將持續直到到達地圖的結尾
while true do
-- 從當前下限取最多一百個項目
local items = map:GetRangeAsync(Enum.SortDirection.Ascending, 100, exclusiveLowerBound)
for _, item in ipairs(items) do
print(item.key)
print(item.sortKey)
end
-- 如果調用返回的項目少於一百個,這意味著我們已經到達地圖的結尾
if #items < 100 then
break
end
-- 最後檢索到的鍵是下一次迭代的獨佔下限
exclusiveLowerBound = {}
exclusiveLowerBound["key"] = items[#items].key
exclusiveLowerBound["sortKey"] = items[#items].sortKey
end
end
printAllKeys(myMap)

GetSizeAsync
暫停
功能: DataStore
MemoryStoreSortedMap:GetSizeAsync():number
返回

RemoveAsync
暫停
功能: DataStore
MemoryStoreSortedMap:RemoveAsync(key:string):()
參數
key:string
返回
()

SetAsync
暫停
功能: DataStore
MemoryStoreSortedMap:SetAsync(
key:string, value:Variant, expiration:number, sortKey:Variant
參數
key:string
value:Variant
expiration:number
sortKey:Variant
返回

UpdateAsync
暫停
功能: DataStore
MemoryStoreSortedMap:UpdateAsync(
key:string, transformFunction:function, expiration:number
參數
key:string
transformFunction:function
expiration:number
返回
範例程式碼
更新記憶體存儲排序地圖
local MemoryStoreService = game:GetService("MemoryStoreService")
local map = MemoryStoreService:GetSortedMap("Leaderboard")
local Players = game:GetService("Players")
function updateLeaderboard(itemKey, killsToAdd, deathsToAdd)
local success, newStats, newScore = pcall(function()
return map:UpdateAsync(itemKey, function(playerStats, playerScore)
playerStats = playerStats or { kills = 0, deaths = 0 }
playerStats.kills += killsToAdd
playerStats.deaths += deathsToAdd
if playerStats then
-- `playerScore` 是用於對 排行榜中的項目進行排序的 sortKey
playerScore = playerStats.kills / math.max(playerStats.deaths, 1)
return playerStats, playerScore
end
return nil
end, 30)
end)
end
-- 對所有玩家增加一次擊殺
for i, player in pairs(Players:GetPlayers()) do
updateLeaderboard(player.UserId, 1, 0)
end
-- 對用戶ID 12345 的玩家增加 5 次擊殺和 1 次死亡
updateLeaderboard(12345, 5, 1)

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。