Rank = {}
Rank._rankType = 1 -- 排行榜类型页签
Rank._showDataType = 1 -- 排行榜展示数据类型 (人物1-4 英雄6-9 总 战 法 道)
Rank._showLevel = false
Rank._path = "res/private/rank_ui/rank_ui_win32/"
function Rank.main(type)
local parent = GUI:Attach_Parent()
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-12 14:04:03 |
👁️ 阅读: 16
根据浮生梦老师前端课程内容,你需要在排行榜显示中同时展示转生和等级。从你提供的代码看,`showLvStr`变量目前只处理了等级,需要修改为“转生+等级”的格式。
以下是修改方案,主要修改`Rank.CreateListCell`函数中处理`showLvStr`的部分:
```lua
function Rank.CreateListCell(parent, data)
GUI:LoadExport(parent, "rank/rank_cell_win32")
local cell = GUI:getChildByName(parent, "Panel_cells")
local ui = GUI:ui_delegate(cell)
local rank = tonumber(data.rank) or 1
if rank > 0 and rank <= 3 then
GUI:setVisible(ui.Text_rank, false)
GUI:setVisible(ui.Image_rank, true)
GUI:Image_loadTexture(ui.Image_rank, Rank._path .. string.format("%s.png", 1900020024 + rank))
else
GUI:setVisible(ui.Text_rank, true)
GUI:setVisible(ui.Panel_ranks, false)
GUI:Text_setString(ui.Text_rank, rank == 0 and "未上榜" or rank)
end
-- 背景底图
GUI:setVisible(ui.Image_bg, rank % 2 == 1)
-- 修改这里:处理转生+等级的显示格式
local showLvStr = data.Value
if tonumber(Rank._rankType) == 1 then
-- 获取玩家的转生等级
local reLevel = data.ReLevel or 0 -- 转生等级
local level = data.Value or 0 -- 普通等级
-- 格式化为:转生等级在前,普通等级在后
-- 例如:0转75级 -> "075", 1转75级 -> "175", 10转75级 -> "1075"
showLvStr = string.format("%d%03d", reLevel, level)
end
local guildText = ui.Text_3
if Rank._showLevel then
guildText = ui.Text_4
GUI:Text_setString(ui.Text_3, showLvStr and (showLvStr..Rank.CheckLvDesc()) or "")
end
GUI:Text_setString(guildText, data.GuildName)
GUI:Text_setString(ui.Text_1, data.Name)
local function panelCB()
Rank.ResetSelectItem(data)
end
GUI:addOnClickEvent(ui.Panel_touch, panelCB)
return cell
end
```
**关键修改说明:**
1. **数据获取**:需要确保`data`表中包含转生等级字段(如`ReLevel`)和普通等级字段(如`Value`)
2. **格式化显示**:使用`string.format("%d%03d", reLevel, level)`确保格式统一:
- `%d`:转生等级(0-99)
- `%03d`:普通等级,固定3位数字,不足补0(001-999)
3. **显示效果**:
- 0转75级 → "075"
- 1转75级 → "175"
- 10转75级 → "1075"
**注意:**
- 你需要确保服务端返回的排行榜数据中包含转生等级信息
- 如果转生等级字段名不是`ReLevel`,请根据实际字段名修改
- 如果等级可能超过999级,需要调整格式化字符串
这个修改保持了原有的代码结构,只针对转生排行榜类型(`Rank._rankType == 1`)进行了特殊处理,其他排行榜类型不受影响。
← 返回问答库