CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
界面UI

【界面UI】排行榜界面:榜单分页与我的排名

2026-09-21 19:46 作者:996 技术组 0 阅读 界面UI

实战应用:用在哪里

排行榜是全服的竞技场公告栏:等级榜、战力榜、行会榜的排名是玩家的社交货币。榜单界面的要点是分页的加载、我的排名的常驻与刷新的节奏——看榜的人最关心的两件事:第一名是谁、我排第几。

榜单的分页

lua

---排行榜的界面:分页加载
RankUI.page = 1
RankUI.perPage = 20

function RankUI.show(rankKey)
    RankUI.key = rankKey
    RankUI.page = 1
    RankUI.request(1)
end

function RankUI.request(page)
    SL:SendNetMsg(MSGID.RANK_QUERY, RankUI.keyOf(RankUI.key),
        page, RankUI.perPage, "")
end

---榜单数据的渲染:名次与数值
SL:RegisterLuaNetMsg("RANKDATA", function(data)
    local d = SL:JsonDecode(data)
    if not d then return end
    RankUI.clear()
    for i, row in ipairs(d.list) do
        local color = row.rank <= 3 and "#FFD700" or "#DDDDDD"
        local line = GUI:Text_Create(RankUI.list, "r" .. i,
            0, 0, 12, color,
            row.rank .. ". " .. row.name .. "  " .. row.value)
    end
    RankUI.showMine(d.mine)
end)

榜单按页请求:每页 20 名,翻页按需拉取——万人的榜单一次全拉是带宽的浪费,分页把流量摊到玩家的浏览路径上。前三名的金色标注,榜眼的荣耀在颜色上拉开。数据的渲染按名次排列,数值的格式(等级、战力、贡献)按榜单的类型走格式化模板。

我的排名

lua

---我的排名:常驻底栏
function RankUI.showMine(mine)
    if not mine then
        GUI:Text_setString(RankUI.mineBar, "暂未上榜,继续努力!")
        return
    end
    GUI:Text_setString(RankUI.mineBar,
        "我的排名:" .. mine.rank .. "(" .. mine.value .. ")")
end

---排名变化的即时推送
SL:RegisterLuaNetMsg("RANKCHANGE", function(data)
    local d = SL:JsonDecode(data)
    if not d or d.key ~= RankUI.key then return end
    SL:ShowSystemTips("排名变化:当前第 " .. d.rank .. " 名")
end)

我的排名常驻底栏:翻到任何一页,自己的名次都钉在屏幕下方——找自己的名字翻十页是榜单界面的经典反人类,常驻栏一劳永逸。未上榜的提示不空着:暂未上榜的文案带激励,榜单的门槛值(上榜需要多少分)顺带展示,追赶的目标可视化。排名变化的即时推送:名次的升降在变化发生的当下提醒,上榜与掉榜的关键节点推送,刷榜的玩家有正反馈的回路。刷新的节奏按榜单的类型分级:等级榜 5 分钟一刷、行会榜 1 小时一刷,实时性按玩法的敏感度定。

验证与监控

榜单数据与服务器结算的一致性抽检,名次与数值的错位即结算的缺陷;分页的请求量与翻页页数的分布监控,翻页超 10 页的占比提示默认页容量的调整。

踩坑记录

我的排名曾经单独查询接口,榜单页与底栏的数据不一致(差一次刷新),同源的数据包合并。名次的渲染曾经没有格式化,百万的战力显示成 1000000 的长串,数值的千分位格式化。翻页的边界曾经越界请求,第 0 页与空页的请求打给服务器白跑,边界的客户端钳制。

上线要点

榜单的类型进配置:键、数值格式、刷新周期三要素登记。冲榜活动的截止时刻在榜单页倒计时,冲刺的紧迫感可视。榜单的前三名在全服公告轮播,榜首的荣耀是榜单的生命力。

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

玩法策划答题行会

【玩法策划】行会篝火答题:行会社交活动的答题玩法设计

实战应用:用在哪里 行会活动集中在攻城战,日常缺乏轻量社交场景。行会篝火答题做行会固定社交活动:每周三、周日晚在行会驻地点燃…

2026-09-23 05:48 996 技术组 · 0 阅读
玩法策划答题科举

【玩法策划】科举答题:全服答题与殿试排名的玩法设计

实战应用:用在哪里 全服答题活动办过几期,参与的人不少但黏性不足,答完就散。科举答题把答题做成两段式:每天晚八点的乡试答题筛…

2026-09-23 05:48 996 技术组 · 0 阅读
界面UI短语栏聊天

【界面UI】快捷短语栏:战斗场景的快捷消息发送栏实现

n n n 实战应用:用在哪里 n战斗中打字沟通慢且危险,队伍协作靠喊话效率太低。快捷短语栏在屏幕底部提供八条可自定义的战斗…

2026-09-23 05:48 996 技术组 · 0 阅读
引擎触发宝箱龙脉

【引擎触发】龙脉宝箱:整点宝箱刷新与开启奖励的触发设计

n n n 实战应用:用在哪里 n龙脉区域的野外宝箱是散人玩家的每日福利:每逢整点在龙脉区域随机刷新十五个宝箱,分三档给不同…

2026-09-23 05:48 996 技术组 · 0 阅读
网络通信有序性包序

【网络通信】消息有序性:同一玩家的包序保证

实战应用:用在哪里 同一玩家的两条消息走了不同的处理路径,先发的后到,装备穿上的消息比脱下的消息晚处理,面板状态错乱。消息有…

2026-09-23 05:48 996 技术组 · 0 阅读
运维发布日志采样

【运维发布】日志采样:高流量日志的采样降耗设计

实战应用:用在哪里 战斗日志全量打印,一天写满一块硬盘,翻日志像大海捞针。日志采样按类别分策略:错误日志全量保留、行为日志按…

2026-09-23 05:48 996 技术组 · 0 阅读