如何使用排行榜功能
如何使用排行榜功能
- 解答:
仅地图发布后生效,排行榜数据只有在游戏结束后才计入。
创建排行榜
![]() | (1) 在【地图设置】-【其他设置】-【排行榜设置】中点击”+“添加排行榜。 |
|---|---|
![]() | (2) 点击”编辑”按钮。 |
![]() | (3) 设置排行榜信息及规则。 |
排行榜元件
![]() | (1) 在【玩法】-【功能】中有排行榜元件。 |
|---|---|
![]() | (2) 拖入到场景中,点击”编辑”打开详情栏。【基础】-【功能基础】-【数据来源】选择创建的排行榜。 |
![]() | (3) 在【外观】-【皮肤】中有多种皮肤可选。 |
![]() | (4) 在【功能基础】-【排行榜类型】中可选择显示全局或好友。 |
如何向排行榜记录玩家数据
功能说明:角色进入信号触发盒时记录玩家排行榜数据。
GameServer.lua
--@description 游戏开始时服务端的操作function OBTest:OnServerStart() -- 当角色进入信号触发盒 System:RegisterEvent( Events.ON_CHARACTER_ENTER_SIGNAL_BOX, function (playerId, signalBoxId) --playerId = 玩家id, signalBoxId = 信号触发盒id -- 记录玩家排行榜数据(排行榜数据只有在游戏结束后才计入) Rank:SetRankById(RankIndex,playerId, 100, nil) -- 排行榜id按创建顺序依次为:1、2、3,如果是首次创建RankIndex填入为1) end )end如何使用好友排行榜
功能说明:获取玩家超过多少名好友。超过了哪些好友。
GameEntry.lua
-- 网络协议NetMsg = { ShowTips = 1005,}GameClient.lua
--客户端展示屏幕提示function GameClient:ShowTips(msgId, msg) UI:ShowMessageTip(table.unpack(msg))endGameServer.lua
-- 屏幕提示输出,方便地图发布后调试local function ShowTips(...) -- 将服务端日志发送至客户端 System:SendToAllClients( NetMsg.ShowTips, {...} )end
--@description 游戏开始时服务端的操作function GameServer:OnStart() -- 当角色进入触发盒 System:RegisterEvent( Events.ON_CHARACTER_ENTER_SIGNAL_BOX, function (playerId, signalBoxId) --playerId = 玩家id, signalBoxId = 触发盒id local playerScore = 100 local surpassedCount = 0 local data = {110,100,90,80} local Id = {110,100,90,80}
-- 遍历排行榜中的所有好友 for i = 1, 100 do -- 假设最多检查前100名好友 local friendData = data[i]--Rank:GetTheFrinedsRankingData(playerId, rankingIndex, i)
-- 如果获取不到数据,说明没有更多好友了 if not friendData then break end
-- 如果玩家分数高于或等于好友分数,说明超过了这个好友 if playerScore > friendData then surpassedCount = surpassedCount + 1 local friendId = Id[i]--Rank:GetTheFrinedsRankingPlayer(playerId, 1, 1) local name = Chat:GetCustomName(friendId) ShowTips("超过了", name) end end
ShowTips("共计超过了", surpassedCount, "名好友") end )end





