DataStoreService
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
DataStoreService เปิดเผยวิธีการสำหรับการรับ GlobalDataStore และ OrderedDataStore วัตถุคลังข้อมูลสามารถเข้าถึงได้โดยเซิร์ฟเวอร์เกมเท่านั้น ดังนั้นคุณสามารถใช้ DataStoreService ภายใน Script หรือ ModuleScript ที่ใช้โดย Script เท่านั้น
ดู ร้านข้อมูล สำหรับคู่มือแบบละเอียดเกี่ยวกับโครงสร้างข้อมูลการจัดการการจัดการข้อผิดพลาดฯลฯ
ตัวอย่างโค้ด
This code sample prints the request budget for all data store request types.
local DataStoreService = game:GetService("DataStoreService")
for _, enumItem in pairs(Enum.DataStoreRequestType:GetEnumItems()) do
print(enumItem.Name, DataStoreService:GetRequestBudgetForRequestType(enumItem))
end
สรุป
คุณสมบัติ
ตั้งค่าว่าฟังก์ชันของคลังข้อมูลควรลองอีกครั้งอัตโนมัติหรือไม่บริการข้อมูลไม่เคารพคุณสมบัตินี้เพราะการลองอีกครั้งอัตโนมัติถูกปิดใช้งานเนื่องจากเหตุผลทางเทคนิคดังนั้นคุณจะต้องดำเนินการตามระบบสำหรับการทดสอบการดำเนินการอีกครั้งด้วยตัวคุณเอง
วิธีการ
สร้างตัวอย่าง DataStore ด้วยชื่อและขอบเขตที่กำหนด
ร้านค้า
รับ OrderedDataStore ที่มีชื่อและขอบเขตที่เลือกได้
คืนจํานวนคําขอที่สามารถทําได้โดยประเภทคําขอที่กำหนด
คืนวัตถุ DataStoreListingPages สำหรับการจัดเรียงผ่านทุกสถานที่เก็บข้อมูลประสบการณ์
คุณสมบัติ
AutomaticRetry
ตั้งค่าว่าฟังก์ชันของคลังข้อมูลควรลองอีกครั้งอัตโนมัติหรือไม่
บริการข้อมูลไม่เคารพคุณสมบัตินี้เพราะการลองอีกครั้งอัตโนมัติถูกปิดใช้งานเนื่องจากเหตุผลทางเทคนิคดังนั้นคุณจะต้องดำเนินการตามระบบสำหรับการทดสอบการดำเนินการอีกครั้งด้วยตัวคุณเองเป็นไปได้ว่าการลองอีกครั้งอัตโนมัติจะถูกเปิดใช้งานอีกครั้งในอนาคต
วิธีการ
GetDataStore
ฟังก์ชันนี้สร้างตัวอย่าง DataStore ด้วยชื่อและขอบเขตที่กำหนดไว้การโทรต่อไปนี้กับวิธีนี้ด้วยชื่อและขอบเขตเดียวกันจะส่งคืนวัตถุเดียวกัน
การใช้พารามิเตอร์ scope จะจำกัดการดำเนินการในขอบเขตนั้นโดยการเพิ่มขอบเขตไปยังกุญแจในการดำเนินการทั้งหมดที่ทำบนคลังข้อมูลโดยอัตโนมัติฟังก์ชันนี้ยังยอมรับตัวอย่างไม่บังคับ DataStoreOptions ซึ่งรวมถึงตัวเลือกสำหรับการเปิดใช้งาน AllScopesดู การจัดระเบียบรุ่น, รายการ, และการแคช สำหรับรายละเอียดเกี่ยวกับขอบเขต
พารามิเตอร์
ร้านค้า
(ตัวเลือก) สตริงที่ระบุขอบเขต
(ตัวเลือก) ตัวอย่าง DataStoreOptions เพื่อเปิดใช้งานคุณลักษณะการทดลองและคุณลักษณะ API v2
ส่งค่ากลับ
GetGlobalDataStore
ฟังก์ชันนี้คืนค่าเริ่มต้น GlobalDataStoreหากต้องการเข้าถึงคลังข้อมูลที่มีชื่อเฉพาะ แทน คุณควรใช้ฟังก์ชัน GetDataStore()
โปรดทราบว่า DataStore ที่ส่งคืนโดยฟังก์ชันนี้เสมอใช้ขอบเขต u ดู ร้านข้อมูล สำหรับรายละเอียดเกี่ยวกับขอบเขต
ส่งค่ากลับ
ตัวอย่างโค้ด
The following example retrieves a default data store instance which behaves like a regular Instance. Since a GlobalDataStore is an Instance, functions such as GlobalDataStore:GetChildren() will execute without error.
local DataStoreService = game:GetService("DataStoreService")
local GlobalDataStore = DataStoreService:GetGlobalDataStore()
print(GlobalDataStore.Name)
GetOrderedDataStore
วิธีนี้จะคืน OrderedDataStore ซึ่งคล้ายกับวิธีที่ GetDataStore() ทำกับ GlobalDataStoresการโทรต่อไปนี้กับวิธีนี้ด้วยชื่อและขอบเขตเดียวกันจะส่งคืนวัตถุเดียวกัน
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
This code sample demonstrates usage of an OrderedDataStore and pages.
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 เพื่อค้นหาไดเรกทอรีข้อมูลที่มีชื่อเริ่มต้นด้วยคำนำหน้าที่ให้ไว้เท่านั้น
เฉพาะคลังข้อมูลที่มีอย่างน้อยหนึ่งวัตถุจะถูกระบุรายชื่อผ่านฟังก์ชันนี้
พารามิเตอร์
(ตัวเลือก) คํานําหน้าเพื่อระบุสถานที่เก็บข้อมูลที่เริ่มต้นด้วยคํานําหน้าที่กำหนด
(ตัวเลือก) จํานวนรายการที่จะถูกส่งคืนในแต่ละหน้าหากไม่มีค่าที่กำหนด เครื่องยนต์จะส่งค่าเริ่มต้นของ 0 ไปยังบริการเก็บข้อมูลเว็บ ซึ่งในทางกลับกันจะเริ่มต้นที่ 32 รายการต่อหน้า
(ตัวเลือก) เคอร์เซอร์เพื่อดำเนินการต่อการซ้ำ
ส่งค่ากลับ
DataStoreListingPages ตัวอย่างที่มี DataStoreInfo ตัวอย่างที่ให้รายละเอียดเช่นชื่อเวลาที่สร้างและเวลาล่าสุดที่อัปเดต