กระดานผู้นำ
การตั้งค่าอันดับ
อันดับคือโมดูลที่ให้ฟังก์ชันสำหรับการบันทึกและจัดการอันดับและคะแนนสูงสุดของผู้เล่นแต่ละคน
ขั้นตอนที่ 1 : สร้างอันดับ
ในการสร้างอันดับ ให้เลือกปุ่ม [Get LeaderboardInfo] ใน ProjectSettings → Zepeto → ZepetoLeaderboard เมนู

เลือก [Add Leaderboard] เพื่อเพิ่มอันดับใหม่
หากมีอันดับที่มีอยู่แล้ว อันดับจะปรากฏบนหน้าจอการตั้งค่า

ขั้นตอนที่ 2 : ปรับแต่งกระดานคะแนน
หน้าต่างป๊อปอัพที่แสดงด้านล่างจะปรากฏเมื่อเลือกปุ่ม [เพิ่มกระดานคะแนน] คุณจะสามารถปรับค่าพารามิเตอร์แต่ละค่าได้

พารามิเตอร์ | คำอธิบาย |
|---|---|
ชื่อ | ชื่อกระดานคะแนน |
กฎการอัปเดต | กฎการอัปเดตคะแนน |
คะแนนสูงสุด | บันทึกคะแนนสูงสุดของผู้ใช้ |
คะแนนต่ำสุด | บันทึกคะแนนต่ำสุดของผู้ใช้ |
สะสมคะแนน | เพิ่มคะแนนของผู้ใช้และบันทึกเป็นบันทึก |
ResetInfo(s) | คุณสามารถตั้งระยะเวลาในการรีเซ็ตคะแนนได้ - นี่มีประโยชน์หากกระดานคะแนนต้องการการอัปเดตทุกฤดูกาล - คะแนนจะไม่ถูกรีเซ็ตโดยค่าเริ่มต้น แต่คุณสามารถปรับเปลี่ยนได้โดยการตั้งระยะเวลารีเซ็ต (รายเดือน, รายสัปดาห์, รายวัน) |
ขั้นตอนที่ 3 : ตั้งค่าการรีเซ็ตคะแนน

กฎการรีเซ็ตคะแนนมีดังนี้:
ช่วงเวลา | คำอธิบาย |
|---|---|
ไม่มี | คะแนนจะไม่ถูกรีเซ็ต |
วัน | คะแนนจะถูกรีเซ็ตทุกวันในเวลาที่กำหนด (เช่น การจัดอันดับรายวัน) |
สัปดาห์ | คะแนนจะถูกรีเซ็ตทุกสัปดาห์ในวันที่และเวลาที่กำหนด (เช่น การจัดอันดับรายสัปดาห์) |
เดือน | คะแนนจะถูกรีเซ็ตทุกเดือนในวันที่และเวลาที่กำหนด (เช่น การจัดอันดับรายเดือน; ค่าสูงสุดของวันคือ 31 แต่ถ้าเดือนนั้นไม่มี 31 วัน จะปรับให้เป็นวันสุดท้ายของเดือนโดยอัตโนมัติ) |
ขั้นตอนที่ 4 : รหัสลีดเดอร์บอร์ด
ในการใช้ ZEPETOScript และลีดเดอร์บอร์ด คุณต้องมีข้อมูลรหัสลีดเดอร์บอร์ด
ในการเข้าถึงข้อมูลลีดเดอร์บอร์ด คุณสามารถไปที่การตั้งค่า (ภายใต้การแก้ไขในเมนูการตั้งค่าโปรเจกต์ ไปที่ Zepeto → Zepeto Leaderboard → แก้ไข) หรือโหลดจาก API ของ ZEPETOScript


- เมื่อกฎการรีเซ็ตถูกตั้งค่าแล้ว ลีดเดอร์บอร์ดไม่สามารถแก้ไขได้
- ในการเปลี่ยนกฎการรีเซ็ต คุณต้องสร้างลีดเดอร์บอร์ดใหม่
- เวลาที่รีเซ็ตจะอิงตาม UTC+0 จะมีการจัดเตรียมการปรับเวลาเพื่อให้สามารถเปลี่ยนเขตเวลาในอนาคตได้
การบันทึกคะแนน
LeaderboardAPI.SetScore() เป็น API ที่บันทึกคะแนนของผู้ใช้ในกระดานคะแนน รหัสกระดานคะแนน, ค่าคะแนน, จุดที่เสร็จสมบูรณ์ และจุดที่เกิดข้อผิดพลาดจะถูกส่งเป็นอาร์กิวเมนต์.
ข้อมูลผู้ใช้สำหรับคะแนนจะถูกบันทึกโดยอัตโนมัติ.
ต่อไปนี้คือตัวอย่างสำหรับการโหลดฟังก์ชัน LeaderboardAPI.SetScore.
LeaderboardAPI.SetScore(this.leaderBoardId, this.score, this.OnResult, this.OnError);
ต่อไปนี้คือตัวอย่างโค้ดสำหรับการดึงคะแนนของผู้ใช้ไปยังกระดานคะแนน.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { SetScoreResponse, LeaderboardAPI } from 'ZEPETO.Script.Leaderboard';
export default class SetScoreExample extends ZepetoScriptBehaviour {
public leaderboardId: string;
public score: number;
Start() {
LeaderboardAPI.SetScore(this.leaderboardId, this.score, this.OnResult, this.OnError);
}
OnResult(result: SetScoreResponse) {
console.log(`result.isSuccess: ${result.isSuccess}`);
}
OnError(error: string) {
console.error(error);
}
}
รายละเอียดการค้นหารายการ
รับข้อมูลการจัดอันดับในช่วงที่เฉพาะเจาะจง
ใช้ฟังก์ชัน LeaderboardAPI.GetRangeRank() เพื่อโหลดรายละเอียดการจัดอันดับในช่วงที่เฉพาะเจาะจง
ค่าบูลีนเพื่อดึงข้อมูล ID ของกระดานผู้นำ, การจัดอันดับเริ่มต้น, การจัดอันดับสุดท้าย, กฎการรีเซ็ต และข้อมูลการจัดอันดับของฤดูกาลล่าสุด และฟังก์ชัน callback จากเวลาที่เสร็จสิ้นและเวลาที่เกิดข้อผิดพลาดจะถูกส่งเป็นอาร์กิวเมนต์
ข้อมูลผู้ใช้ที่สอบถามข้อมูลการจัดอันดับจะถูกกรอกโดยอัตโนมัติ และสามารถประมวลผลข้อมูลการจัดอันดับได้สูงสุดถึง 100 รายการต่อการสอบถาม (เช่น: การแบ่งหน้าใน 1100, 101200 รูปแบบสำหรับการใช้งาน)
❗️ ระวัง หากโหลดข้อมูลมากกว่า 100 รายการในครั้งเดียว อาจทำงานไม่ถูกต้องเนื่องจากปัญหาการโหลด API และการจำกัดอัตรา
ตัวอย่างการเรียกฟังก์ชัน
ตัวอย่างการเรียกฟังก์ชัน LeaderboardAPI.GetRangeRank() มีดังนี้:
LeaderboardAPI.GetRangeRank(this.leaderboardId, this.startRank, this.endRank, this.resetRule, false, this.OnResult, this.OnError);โค้ดต่อไปนี้เป็นตัวอย่างสำหรับการโหลดข้อมูลการจัดอันดับในช่วงที่เฉพาะเจาะจง คุณสามารถใช้ค่าของสมาชิกจาก OnResult เพื่อโหลดรูปโปรไฟล์
📘 โปรดดูคู่มือต่อไปนี้.[ข้อมูลผู้ใช้]
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GetRangeRankResponse, LeaderboardAPI, ResetRule } from 'ZEPETO.Script.Leaderboard';
export default class GetRangeRankExample extends ZepetoScriptBehaviour {
public leaderboardId: string;
public startRank: number;
public endRank: number;
public resetRule: ResetRule;
Start() {
LeaderboardAPI.GetRangeRank(this.leaderboardId, this.startRank, this.endRank, this.resetRule, false,
this.OnResult, this.OnError);
}
OnResult(result: GetRangeRankResponse) {
console.log(`result.isSuccess: ${result.isSuccess}`);
if (result.rankInfo.myRank) {
console.log(`member: ${result.rankInfo.myRank.member}, rank: ${result.rankInfo.myRank.rank},
score: ${result.rankInfo.myRank.score}, name: ${result.rankInfo.myRank.name}`);
}
if (result.rankInfo.rankList) {
for (let i = 0; i < result.rankInfo.rankList.length; ++i) {
const rank = result.rankInfo.rankList.get_Item(i);
console.log(`i: ${i}, member: ${rank.member}, rank: ${rank.rank}, score: ${rank.score}, name: ${rank.name}`);
}
}
}
OnError(error: string) {
console.error(error);
}
}
การค้นหารายละเอียดกระดานคะแนน
ค้นหากระดานคะแนนทั้งหมด
ใช้ฟังก์ชัน LeaderboardAPI.GetAllLeaderboards เพื่อโหลดข้อมูลกระดานคะแนนทั้งหมดในโลกที่กำหนด. ฟังก์ชัน callback จากเวลาที่เสร็จสิ้นจนถึงเวลาที่เกิดข้อผิดพลาดจะถูกส่งเป็นอาร์กิวเมนต์.
ตัวอย่างการโหลดฟังก์ชัน LeaderboardAPI.GetAllLeaderboards มีดังนี้:
LeaderboardAPI.GetAllLeaderboards(this.OnResult, this.OnError);
ต่อไปนี้คือตัวอย่างการโหลดข้อมูลทั้งหมดของกระดานผู้นำ
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GetAllLeaderboardsResponse, LeaderboardAPI } from 'ZEPETO.Script.Leaderboard';
export default class GetAllLeaderboardExample extends ZepetoScriptBehaviour {
Start() {
LeaderboardAPI.GetAllLeaderboards(this.OnResult, this.OnError);
}
OnResult(result: GetAllLeaderboardsResponse) {
console.log(`result.isSuccess: ${result.isSuccess}`);
if (result.leaderboards) {
for (let i = 0; i < result.leaderboards.length; ++i) {
const leaderboard = result.leaderboards[i];
console.log(`i: ${i}, id: ${leaderboard.id}, name: ${leaderboard.name}`);
}
}
}
OnError(error: string) {
console.error(error);
}
}
ค้นหากระดานผู้นำเฉพาะ
ใช้ฟังก์ชัน LeaderboardAPI.GetLeaderboards เพื่อโหลดข้อมูลกระดานผู้นำเฉพาะ ฟังก์ชัน callback สำหรับ ID ของกระดานผู้นำ เวลาที่เสร็จสิ้น และเวลาที่เกิดข้อผิดพลาดจะถูกส่งเป็นอาร์กิวเมนต์
ตัวอย่างการโหลดฟังก์ชัน LeaderboardAPI.GetLeaderboard มีดังนี้:
LeaderboardAPI.GetLeaderboard(this.leaderboardId, this.OnResult, this.OnError);
ต่อไปนี้คือตัวอย่างสำหรับการโหลดข้อมูลลีดเดอร์บอร์ดบางส่วน
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GetLeaderboardResponse, LeaderboardAPI } from 'ZEPETO.Script.Leaderboard';
export default class GetLeaderboardExample extends ZepetoScriptBehaviour {
public leaderboardId: string;
Start() {
LeaderboardAPI.GetLeaderboard(this.leaderboardId, this.OnResult, this.OnError);
}
OnResult(result: GetLeaderboardResponse) {
console.log(`result.isSuccess: ${result.isSuccess}`);
if (result.leaderboard) {
console.log(`id: ${result.leaderboard.id}, name: ${result.leaderboard.name}`);
}
}
OnError(error: string) {
console.error(error);
}
}
ตัวอย่างการใช้งานลีดเดอร์บอร์ด
- ต่อไปนี้คือตัวอย่างของลีดเดอร์บอร์ดที่ใช้ในงาน Slime Party ของ ZEPETO World อย่างเป็นทางการ
- โดยการตั้งค่า การอ่าน และการใช้ API เพื่อดึงอันดับภายในช่วงที่กำหนด คุณสามารถจัดโครงสร้างได้ดังนี้ใน UI
