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 an
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-09 12:08:55 |
👁️ 阅读: 0
根据你提供的代码,问题出在`showLvStr`的计算逻辑上。
目前代码中:
```lua
local showLvStr = data.Value..'转'..SL:GetMetaValue("ACTOR_LEVEL", data.UserID)
```
这一行会为所有玩家拼接“转”和等级,但只有在`Rank._showLevel`为`true`时才会显示到`ui.Text_3`上。
如果只有第一名显示了普通等级,而其他名次没有显示,可能是以下原因:
1. `data.Value`在其他名次中可能为`nil`或空字符串,导致拼接后`showLvStr`为空。
2. `Rank._showLevel`变量可能只在第一名时为`true`,其他名次时为`false`,所以没有执行`GUI:Text_setString(ui.Text_3, ...)`。
3. `SL:GetMetaValue("ACTOR_LEVEL", data.UserID)`在其他名次可能返回`nil`,导致拼接出错。
建议检查:
- 打印`data.Value`和`SL:GetMetaValue("ACTOR_LEVEL", data.UserID)`的值,确认每个名次是否都有有效数据。
- 确认`Rank._showLevel`的赋值逻辑,是否只在特定条件下才为`true`。
如果还有疑问,可以把相关日志发出来,我再帮你分析!
根据你提供的代码,问题出在`showLvStr`的计算逻辑上。
目前代码中:
```lua
local showLvStr = data.Value..'转'..SL:GetMetaValue("ACTOR_LEVEL", data.UserID)
```
这一行会为所有玩家拼接“转”和等级,但只有在`Rank._showLevel`为`true`时才会显示到`ui.Text_3`上。
如果只有第一名显示了普通等级,而其他名次没有显示,可能是以下原因:
1. `data.Value`在其他名次中可能为`nil`或空字符串,导致拼接后`showLvStr`为空。
2. `Rank._showLevel`变量可能只在第一名时为`true`,其他名次时为`false`,所以没有执行`GUI:Text_setString(ui.Text_3, ...)`。
3. `SL:GetMetaValue("ACTOR_LEVEL", data.UserID)`在其他名次可能返回`nil`,导致拼接出错。
建议检查:
- 打印`data.Value`和`SL:GetMetaValue("ACTOR_LEVEL", data.UserID)`的值,确认每个名次是否都有有效数据。
- 确认`Rank._showLevel`的赋值逻辑,是否只在特定条件下才为`true`。
如果还有疑问,可以把相关日志发出来,我再帮你分析!
← 返回问答库