A 排隊 是一個線性的資料結構,包含一個追蹤第一個-第一個-出的原則或優先權基於預設原則的元素的集合。 內存存儲 支持兩種類型的排隊,FIFO 原則 和 2>優先權
記憶體存取隊列有助於處理基於順序的處理和儲存用戶信息,例如技能等級,以便基於您所希望的條件進行匹配。 為了此目的,您可以將大廳位置作為您的體驗的開始位置,並使用記憶體存取隊列作為中央存取用戶信息存放系統,並且通過隊列管理員將匹配傳送到
取得佇列
要取得排隊列,請使用 MemoryStoreService:GetQueue() 並且在名稱上包含 名稱 ,這是在體驗中對任何指令碼的存取的全球標準,並且在秒鐘內結束的時間延遲,以防止複製處理相同的排隊項道具。延遲時間預設為 30 秒,如果您在下方的代碼示例中離
獲取空白排隊
local MemoryStoreService = game:GetService("MemoryStoreService")local queue = MemoryStoreService:GetQueue("Queue1")
當遞送佇處理一個項道具時,隱形時間從被其他服務器處理為不可見,因為多個服務器可以同時更新隱形時間,因此在隱形時間範圍內完成閱取和移除操作對於一個項目來說是不可能的。雖然如果發生錯誤
在您獲得佇列之後,請使用以下任何一項功能來閱取或寫入佇列中的資料:
函數 | 行動 |
---|---|
MemoryStoreQueue:AddAsync() | Add 新項目到佇列。 |
MemoryStoreQueue:ReadAsync() | 閱讀 一個或多個項目從佇列作為一個操作。 |
MemoryStoreQueue:RemoveAsync() | 移除 一個或多個以前從佇列閱取的項目。 |
添加資料
要將新道具目添加到佇列,請使用 MemoryStoreQueue:AddAsync() 與項目值、0 和任務優先權,並且提供可選的優先權。如果您想要保持您的佇列在 FIFO 順序中,您可以將優先權為空或傳送 0。
將資料添加到佇列
local MemoryStoreService = game:GetService("MemoryStoreService")
local queue = MemoryStoreService:GetQueue("Queue1")
local addSuccess, addError = pcall(function()
queue:AddAsync("User_1234", 30, 1)
end)
if not addSuccess then
warn(addError)
end
閱取並移除資料
要在一次閱取多個項目從排隊中,請呼叫 MemoryStoreQueue:ReadAsync() ,其中返回一個 id 代表閱取項道具。當你完成處理項目時,立即呼叫 Class.Memory
閱取並從排隊中移除資料
local MemoryStoreService = game:GetService("MemoryStoreService")
local queue = MemoryStoreService:GetQueue("Queue1")
local addSuccess, addError = pcall(function()
queue:AddAsync("User_1234", 30, 1)
end)
if not addSuccess then
warn(addError)
end
-- 排隊處理循環
while true do
local readSuccess, items, id = pcall(function()
return queue:ReadAsync(1, false, 30)
end)
if not readSuccess then
task.wait(1)
elseif #items > 0 then
print(items, id)
local removeSuccess, removeError = pcall(function()
queue:RemoveAsync(id)
end)
if not removeSuccess then
warn(removeError)
end
end
end