创造你的世界
社交
排行榜
17 分
设置排行榜 排行榜是一个模块,提供保存和管理每个玩家排名和高分的功能。 步骤 1 创建排行榜 要创建排行榜,请在 projectsettings → zepeto → zepetoleaderboard 菜单中选择 \[获取排行榜信息] 按钮。 选择 \[添加排行榜] 以添加新的排行榜。 如果已经存在排行榜,排行榜将出现在设置屏幕上。 步骤 2 自定义排行榜 当选择 \[添加排行榜] 按钮时,将出现如下弹出窗口。您将能够调整每个参数的值。 参数 描述 名称 排行榜名称 更新规则 得分更新规则 最高分 记录用户的最高分 最低分 记录用户的最低分 累计得分 添加用户的得分并保存为记录 重置信息(s) 您可以设置一个周期来重置得分。 \ 如果排行榜需要每个赛季更新,这将很有帮助。 \ 默认情况下,得分不会被重置,但您可以通过设置重置周期(每月、每周、每天)进行调整。 步骤 3 设置分数重置 分数重置规则如下: 周期 描述 无 分数不会重置 天 分数将在设定时间每天重置(例如:每日排名) 周 分数将在设定日期和时间每周重置(例如:每周排名) 月 分数将在设定日期和时间每月重置(例如:每月排名;最大天数为31,但如果该月没有31天,将自动调整为该月的最后一天) 步骤 4 排行榜 id 要使用 zepetoscript 和排行榜,您必须拥有排行榜 id 信息。 要访问排行榜信息,您可以前往设置(在项目设置菜单的编辑下,转到 zepeto → zepeto 排行榜 → 编辑),或从 zepetoscript api 加载。 一旦重置规则设置完成,排行榜将无法修改。 要更改重置规则,您必须创建一个新的排行榜。 重置时间基于 utc+0。将提供偏移量,以便将来可以更改时区。 记录分数 leaderboardapi setscore() 是一个记录用户在排行榜上得分的 api。 排行榜 id、得分值、完成点和错误点作为参数传递。 得分的用户信息将自动保存。 以下是加载 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、起始排名、最后排名、重置规则和上赛季的排名信息,完成时间和错误发生时间的回调函数作为参数传递。 查询排名信息的用户信息会自动输入,每次查询最多可以处理 100 条排名信息(例如:以 1 的格式进行分页 100, 101 200 格式进行实现) ❗️ 注意 如果一次加载超过 100 条数据,可能由于 api 负载问题和速率限制而无法正常工作。 示例函数调用 调用 leaderboardapi getrangerank() 函数的示例如下: leaderboardapi getrangerank(this leaderboardid, this startrank, this endrank, this resetrule, false, this onresult, this onerror); 以下代码是加载特定范围排名信息的示例。 您可以使用 onresult 中的 member 值加载个人资料照片。 📘 请参考以下指南。 \[ 用户信息 docid\ llhncmccxktu lkeb14qb ] 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 函数加载指定世界中的所有排行榜信息。 从完成时到发生错误时的回调函数作为参数传递。 加载 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函数加载特定排行榜信息。 排行榜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); } } 排行榜使用示例 以下是应用于官方zepeto世界史莱姆派对的排行榜示例。 通过设置、读取和利用api调用来获取特定范围内的排名,您可以在ui中将其结构化如下。