红点表怎么使用
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-01 22:27:07 |
👁️ 阅读: 3
我是lua后端老师!
小仙,关于红点系统的使用,我来给你详细讲解一下。红点系统主要用于在客户端界面上显示提示小圆点,提醒玩家有新的内容或功能可以操作。
在996引擎中,红点功能主要通过 `reddot` 和 `reddel` 这两个函数来实现。
**1. 添加/显示红点 (reddot)**
```lua
-- 函数原型
reddot(actor, parentId, childId, type, param)
```
- `actor`: 玩家对象
- `parentId`: 父节点ID (整数)。这通常对应客户端UI的一个大模块或分类。
- `childId`: 子节点ID (整数)。对应父节点下的具体功能点。
- `type`: 红点类型 (整数)。通常用于控制红点的显示样式或行为。
- `param`: 附加参数 (整数)。可用于传递额外信息,如未读数量等。
**2. 删除/隐藏红点 (reddel)**
```lua
-- 函数原型
reddel(actor, parentId, childId)
```
- `actor`: 玩家对象
- `parentId`: 要删除红点的父节点ID
- `childId`: 要删除红点的子节点ID
**使用示例:**
假设我们有一个“活动”系统(parentId=100),下面有“每日签到”(childId=1)和“在线奖励”(childId=2)两个功能。
```lua
-- 当玩家有未领取的签到奖励时,在签到按钮上显示红点
function checkSignReddot(actor)
-- 这里假设通过变量判断是否有未领取奖励
local hasReward = getplayvar(actor, 100, "SignReward")
if hasReward == 1 then
-- 显示红点,type=1表示普通红点,param=0表示没有数量显示
reddot(actor, 100, 1, 1, 0)
else
-- 没有奖励时删除红点
reddel(actor, 100, 1)
end
end
-- 当在线奖励可领取时显示红点,并显示可领取数量
function checkOnlineRewardReddot(actor)
local rewardCount = getplayvar(actor, 100, "OnlineRewardCount") or 0
if rewardCount > 0 then
-- type=2可能表示带数字的红点,param传入可领取数量
reddot(actor, 100, 2, 2, rewardCount)
else
reddel(actor, 100, 2)
end
end
-- 玩家领取签到奖励后触发
function onGetSignReward(actor)
-- 领取奖励的业务逻辑...
-- 领取后删除红点
reddel(actor, 100, 1)
-- 更新玩家变量
setplayvar(actor, 100, "SignReward", 0)
end
```
**注意事项:**
1. `parentId` 和 `childId` 需要与客户端UI开发人员约定好,确保两端使用相同的ID
2. 红点状态通常需要服务器主动推送给客户端,也可以在玩家登录时检查并发送
3. 记得在红点对应的功能被操作后及时调用 `reddel` 删除红点
4. 红点的具体显示效果(样式、位置、动画等)由客户端控制
**常见应用场景:**
- 新邮件提醒
- 可领取奖励
- 新功能解锁
- 任务完成提示
- 商城新品上架
小仙,理解了吗?红点系统虽然简单,但在提升玩家体验方面很重要。记得要和客户端同学做好ID的约定哦!如果还有不明白的地方,随时问我,或者去请教浮生梦尊师!
← 返回问答库