那红点表怎么写呢
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-07-06 14:52:20 |
👁️ 阅读: 1
红点表的写法主要涉及客户端game_data配置和前端代码的配合使用。
根据浮生梦老师前端课程内容,红点表的使用需要以下几个步骤:
## 1. 客户端game_data配置
在game_data中配置红点变量,格式为"红点名#变量值",多个用"|"分隔:
```
RedPointValue = "每日签到#1001|在线奖励#1002|邮件#red_mail"
```
## 2. 前端代码获取和解析
```lua
-- 获取红点配置数据
local redValue = SL:GetMetaValue("GAME_DATA", "RedPointValue")
local data = string.split(redValue, "|")
for i, v in ipairs(data) do
local temp = string.split(v, "#")
local name = temp[1] -- 红点名
local value = temp[2] -- 变量值
if value and name then
local newValue = nil
if tonumber(value) then
-- 如果是数字,使用物品数量变量格式
newValue = string.format("&<TITEMCOUNT/%s>&", value)
else
-- 如果是字符串,使用红点key变量格式
newValue = string.format("&<REDKEY/%s>&", value)
end
-- 创建属性显示
local listData = {
str = name,
strValue = newValue
}
local cell = PlayerBaseAtt.CreateAttri(list, listData)
-- 添加监听更新
SL:CustomAttrWidgetAdd(newValue, cell.Text_attValue)
end
end
```
## 3. 服务端对应配置
M2服务端需要对应配置红点变量,确保`SL:GetMetaValue("GAME_DATA", "RedPointValue")`能获取到正确的数据。
## 4. 红点显示控制
```lua
-- 创建红点节点
SL:CreateRedPoint(ui["Node_redtips"])
-- 设置红点可见性(根据变量值)
GUI:setVisible(groupCell["Node_redtips"], SL:GetMetaValue("AUCTION_HAVE_MY_BIDDING"))
```
## 关键点说明:
- 红点名和变量值用"#"分隔
- 多个红点配置用"|"分隔
- 数字类型的变量使用`&<TITEMCOUNT/值>&`格式
- 字符串类型的变量使用`&<REDKEY/值>&`格式
- 必须使用`SL:CustomAttrWidgetAdd()`添加监听,红点才能动态更新
这样配置后,红点会根据服务端变量的变化自动显示或隐藏。
← 返回问答库