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()
if not parent t
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-12 13:15:44 |
👁️ 阅读: 9
在排行榜代码中,获取等级信息的地方在 `Rank.CreateListCell` 函数里。你从 `data.Value` 获取到了原始的等级字符串,然后进行了格式化处理:
```lua
local showLvStr = data.Value
-- 修改后
if string.len(showLvStr) == 4 then
-- 字符为4的情况:前面2个字符 + '转' + 后2个字符 + '级'
local firstPart = string.sub(showLvStr, 1, 2)
local secondPart = string.sub(showLvStr, 3, 4)
showLvStr = string.format("%s转%s级", firstPart, secondPart)
elseif string.len(showLvStr) == 3 then
-- 字符为3的情况:前面1个字符 + '转' + 后2个字符 + '级'
local firstPart = string.sub(showLvStr, 1, 1)
local secondPart = string.sub(showLvStr, 2, 3)
showLvStr = string.format("%s转%s级", firstPart, secondPart)
elseif string.len(showLvStr) == 2 then
-- 字符为3的情况:前面1个字符 + '转' + 后2个字符 + '级'
showLvStr = showLvStr.."级"
end
```
这里 `data.Value` 就是排行榜数据中的等级信息,格式规则是:
- 2位字符:普通等级(如"45"表示45级)
- 3位字符:转生等级(如"145"表示1转45级)
- 4位字符:转生等级(如"1045"表示10转45级)
这个 `data.Value` 数据是从服务端通过 `SL:GetMetaValue("RANK_DATA_BY_TYPE", Rank._showDataType)` 获取的排行榜数据中的一部分。
如果你需要获取玩家自己的等级,可以使用:
```lua
local myLevel = SL:GetMetaValue("LEVEL") -- 获取玩家等级
local myReLevel = SL:GetMetaValue("RELEVEL") -- 获取玩家转生等级
```
你的代码逻辑是正确的,`data.Value` 就是按转生等级排名的等级数据。
← 返回问答库