เอกสารที่เกี่ยวข้อง
บทนำเกี่ยวกับโมดูลจัดเก็บข้อมูลทางประวัติศาสตร์
โมดูลจัดเก็บข้อมูล
แม้ว่าจะได้อธิบายไว้อย่างละเอียดในเอกสารข้างต้นแล้ว แต่ที่นี่เป็นภาพรวมโดยย่อของโมดูลจัดเก็บข้อมูลการเก็บข้อมูลเป็นโมดูลเสริม เมื่อเปิดใช้งานแล้ว จะอนุญาตให้นักพัฒนาแผนที่ใช้งานตารางข้อมูลบนเซิร์ฟเวอร์สำหรับการจัดเก็บข้อมูล โดยหลักแล้วจะใช้สำหรับการซิงโครไนซ์ข้อมูลข้ามแผนที่และข้ามการจับคู่, กระดานผู้นำ, และฟังก์ชันที่คล้ายกัน บทความนี้จะเน้นเฉพาะการใช้งานตารางเก็บข้อมูลใหม่สำหรับฟังก์ชันกระดานผู้นำ
จุดเข้าถึง
โหลดโมดูลการเก็บข้อมูลจากรายการโมดูลเพื่อเริ่มกำหนดค่าข้อมูลคอลัมน์สำหรับตารางข้อมูลทั้งสี่:

บทนำสู่ตารางใหม่
เช่นเดียวกับตารางข้อมูลทุกตาราง คุณต้องระบุคอลัมน์ “คีย์” ในแต่ละตาราง คอลัมน์นี้ทำหน้าที่เป็นคีย์หลักของตาราง ข้อมูลในคอลัมน์คีย์ต้องไม่ซ้ำกันและทำหน้าที่เป็นดัชนีสำหรับทั้งตาราง โดยการค้นหาคีย์ คุณสามารถระบุแถวข้อมูลเฉพาะในตารางที่กำหนดได้ เมื่อคุณแก้ไขแถวที่มีคีย์เดียวกันหลายครั้งโดยใช้ส่วนประกอบกราฟิก การแก้ไขครั้งถัดไปจะเขียนทับข้อมูลก่อนหน้าเสมอ
แผงข้อมูลการจัดอันดับ
แผงข้อมูลการจัดอันดับเป็นตารางหลายรายการที่มีความเฉพาะเจาะจง คุณสามารถปรับแต่งหลายคอลัมน์เพื่อเก็บข้อมูลเพิ่มเติม เช่น คะแนน ระยะเวลาการอยู่รอด หรือเวลาการเล่นทั้งหมด อย่างไรก็ตาม แผงข้อมูลการจัดอันดับต้องมีคอลัมน์ข้อมูลหนึ่งคอลัมน์ (คอลัมน์ค่า) สำหรับการจัดเรียงตามลำดับขึ้นหรือลง
การเลือก UID เป็นคีย์จะทำการแปลงคอลัมน์คีย์เป็นไพ่ผู้เล่นโดยอัตโนมัติ:
ตัวอย่างแผ่นข้อมูล
เอกสารข้อมูลการจัดอันดับ1
ลำดับ | กุญแจ | ค่า | คอลัมน์กำหนดเอง1 | คอลัมน์กำหนดเอง2 | คอลัมน์กำหนดเอง…… |
---|---|---|---|---|---|
1 | Player1 UUID | 100 | อะไรก็ตามที่คุณต้องการเก็บ | ||
2 | Player2 UUID | 90 |
ตารางข้อมูลหลายคอลัมน์
ตารางหลายคอลัมน์รองรับหลายคอลัมน์ข้อมูล (แยกจากตารางมาตรฐานที่รองรับข้อมูลเพียงคอลัมน์เดียว) คุณสามารถจัดเก็บข้อมูลประเภทต่างๆ ภายใต้คีย์เดียวได้ ในสภาพแวดล้อมของ Genscript มี API ให้สำหรับแก้ไขทั้งตารางอันดับและตารางข้อมูลหลายคอลัมน์ที่เกี่ยวข้อง เมื่อคีย์เหมือนกัน (เช่น ทั้งคู่เป็น UUID ของผู้เล่น) Genscript เฉพาะสามารถแก้ไขทั้งตารางอันดับและตารางข้อมูลหลายคอลัมน์พร้อมกันได้
ภาพประกอบตาราง
ตารางข้อมูลหลายคอลัมน์1
คีย์ | ค่า | คอลัมน์กำหนดเอง1 | คอลัมน์กำหนดเอง2 | คอลัมน์กำหนดเอง…… |
---|---|---|---|---|
Player1 UUID | 100 | ข้อมูลที่คุณต้องการเก็บ | ||
Player2 UUID | 90 |
ฟังก์ชันกระดานผู้นำ
การเปิดใช้งานฟีเจอร์
เพื่อเปิดใช้งานฟังก์ชันกระดานผู้นำ คุณต้องเปิดใช้งานโมดูลการจัดเก็บข้อมูลภายในโปรเจกต์ของคุณและสร้างตารางข้อมูลกระดานผู้นำอย่างน้อยหนึ่งตาราง
เมื่อเตรียมเสร็จแล้ว ให้แก้ไขแผนที่ที่คุณต้องการเผยแพร่ภายในอินเทอร์เฟซการเผยแพร่แผนที่ของ ศูนย์ผู้สร้าง เพื่อเข้าถึงการตั้งค่าที่เกี่ยวข้องกับกระดานผู้นำ:

การเปิดใช้งานคุณสมบัตินี้จะทำให้ปรากฏปุ่มลีดเดอร์บอร์ดบนหน้าข้อมูลของแผนที่ของคุณ ซึ่งจะทำให้ผู้เล่นสามารถดูข้อมูลลีดเดอร์บอร์ดที่คุณได้แก้ไขไว้ได้:


บรรณาธิการการจัดอันดับ
ภายในอินเทอร์เฟซบรรณาธิการการจัดอันดับสำหรับแผนที่ที่เผยแพร่แล้ว คุณสามารถเลือกแสดงข้อมูลการจัดอันดับได้จากตารางข้อมูลเพียงหนึ่งตารางเท่านั้น (แม้ว่าในโครงการอาจมีการใช้ตารางข้อมูลหลายตารางเพื่อเก็บข้อมูลก็ตาม)

คุณสามารถแก้ไขแง่มุมอื่น ๆ ของกระดานผู้นำได้: รวมถึงการแสดงผลนอกเกม, คอลัมน์ที่จะใช้สำหรับรูปแบบของกระดานผู้นำ, และลำดับของคอลัมน์เหล่านั้น
การเลือกหลายภาษาจะช่วยให้คุณสามารถแก้ไขข้อมูลหลายภาษาของชื่อกระดานผู้นำได้ด้วยตนเอง:

ภาษาที่ไม่ได้กรอกจะใช้ชื่อคอลัมน์ตารางเริ่มต้น
หลังจากแก้ไขแล้ว หน้าเว็บข้อมูลแผนที่จะแสดงตัวอย่างอันดับผู้นำปัจจุบันของคุณ ข้อความหลายภาษาจะไม่ปรากฏในตัวอย่างนี้:
Metadata
ใช้กราฟิกองค์ประกอบในจุดที่เหมาะสม เช่น เมื่อผู้เล่นทำคะแนนได้หรือเมื่อสิ้นสุดการแข่งขันแต่ละครั้ง เพื่อจัดเก็บข้อมูลในฐานข้อมูลของกระดานผู้นำ
โปรดทราบว่า ตารางข้อมูลกระดานผู้นำ ต้องเชื่อมโยงกับองค์ประกอบกราฟิกสำหรับพารามิเตอร์ SheetName เพื่อให้สามารถอ่าน ตารางข้อมูลกระดานผู้นำ ที่สร้างขึ้นได้
เพื่ออำนวยความสะดวกในการแก้ไขตารางหลายรายการสองตารางที่แนะนำในบทเรียนนี้ ได้มีการเพิ่มประเภทข้อมูล Tuple โดยเฉพาะ ซึ่งเป็นรูปแบบรายการเฉพาะทาง ประเภท Tuple รองรับการจดจำค่าโดยอัตโนมัติจากตารางข้อมูลที่กำหนดหรือตารางข้อมูลกระดานผู้นำ จึงสร้างรายการเฉพาะทางที่แต่ละองค์ประกอบเป็นไปตามประเภทข้อมูลที่ระบุ
ตัวแปรพื้นฐานแบบเทพลูอ่านตารางทั้งหมดโดยอัตโนมัติและใช้ประเภทข้อมูลของคอลัมน์ในตารางเป็นประเภทข้อมูลสำหรับรายการในลิสต์:
สำหรับตารางข้อมูลการจัดอันดับ เมื่อสร้างคอลัมน์ข้อมูลที่กำหนดเองแล้ว ค่าที่เก็บไว้จะมีคอลัมน์ข้อมูลจริง N คอลัมน์ ซึ่งจะทำให้เกิดเป็นทูเพิล:
ดังนั้น ในการใช้งานจริง ทูเพิลอาจซ้อนกันเป็นลำดับได้:
ตัวแปรพื้นฐานแบบเทปูลจะไม่ปรับปรุงชื่อคอลัมน์ของตารางหรือข้อมูลอื่น ๆ โดยอัตโนมัติ ดังนั้นการเปลี่ยนแปลงใด ๆ จะต้องทำการรีเฟรชตัวแปรพื้นฐานแบบเทปูลด้วยตนเอง
โค้ด
ตัวอย่างโค้ด:
- เขียน
WriteDBLeaderboardAssociationValue(``"rank"``, ``"test_uid_1"``, {``60``, ``"1:00"``}, ``""``, out var c, out var d)```
2. อ่าน
```go
ReadDBLeaderboardAssociationValue(``"rank"``, ``"test_uid_1"``, out var data, ``""``, out var a, out var b)``var data_normal List<object> = data[``2``] as List<object>``LogWarning(data_normal[``1``])
go
รายการ API ที่เกี่ยวข้อง
- SetTuple
- GetTuple
- WriteDBLeaderboardAssociationValue
- RemoveFromLeaderboardDataStoreByKey
- ReadDBLeaderboardAssociationValue
- WriteToLeaderboardDataStore
- RemoveFromLeaderboardDataStoreByKey
- ReadFromLeaderboardDataStore
โดยเฉพาะอย่างยิ่ง สำหรับฟังก์ชัน: ReadDBLeaderboardAssociationValue ค่าที่ส่งคืนคือเทปูล:
ผลลัพธ์: ประเภทคือ {rankname_value}Tuple
- {rank, key, value}
- rank: int
- key: string
- value: tuple
- {value, GameCompletionTime}
สำหรับฟังก์ชัน: WriteDBLeaderboardAssociationValue, พารามิเตอร์ Key และ Value:
- Key: แนะนำให้แปลง UID ของผู้เล่นเป็นสตริงเพื่อใช้เป็นคีย์ เพื่อให้สามารถแสดงชื่อเรียกของผู้เล่นใน Craftland ได้
- Value: ประเภทคือ {rankname} Tuple หลังจากเลือก SheetName แล้ว ให้ดับเบิลคลิกที่ Value เพื่อเพิ่มบล็อกที่สอดคล้องกันอย่างรวดเร็ว
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์ของ API และเอกสารประกอบ โปรดดูที่: เอกสารอย่างเป็นทางการ
การดีบักในเครื่อง
ระหว่างการแก้ไขแผนที่ ข้อมูลผู้เล่นแบบเรียลไทม์จะไม่สามารถใช้งานได้ อย่างไรก็ตาม Craftland Studio PC อนุญาตให้ดูข้อมูลดีบักที่จัดเก็บไว้ผ่านไฟล์ JSON ในเครื่องได้
หลังจากข้อมูลถูกจัดเก็บระหว่างการดีบั๊ก การคลิกตัวเลือกที่แสดงในภาพจะนำทางไปยังโฟลเดอร์ JSON ในเครื่อง ข้อมูลตารางจะถูกจัดเก็บในรูปแบบ JSON ซึ่งช่วยให้ผู้พัฒนาสามารถตรวจสอบความถูกต้องของตรรกะได้