PROJECT NOTES

7 日签到系统设计

围绕签到周期、奖励领取和边界条件,完成活动规则与系统逻辑设计。

个人研究 / 方案设计 · 时间待补充

系统策划活动规则
下载原始文档 ↓

《7日签到活动》系统规则文档

文档版本:V1.0编写人:系统策划实习生适用项目:7日签到活动系统文档用途:交付程序开发使用

一、活动开放条件

1. 玩家成功创建角色后,即自动开启7日签到活动。

2. 活动持续周期为创建角色当日(第1日)起至第7日止,共计7个自然日。

3. 活动面板在玩家创建角色后即可在主界面看到入口图标。

4. 活动结束后的入口图标置灰并保留24小时,供未领取玩家进行补领;24小时后入口消失。

二、签到天数计算规则

2.1 创建角色日定义

玩家创建角色的当天定义为第1日(SignDay = 1)。服务器以玩家角色创建时间戳(CreateTimestamp)为基准进行计算。

2.2 刷新时间

每日凌晨4:00:00(服务器时间)为签到天数刷新节点。玩家每日可签到的天数计算公式:

当前签到天数 SignDay = 当前日期 - 创建日期 + 1(日期以每日4:00为分界点计算,4:00前属于前一天)

2.3 跨天判定逻辑

以服务器时间为准,凌晨4:00:00前属于前一天,4:00:00及之后属于新一天。示例:玩家在周一凌晨3:50打开面板,此时仍属于周一的签到天数;4:00后系统刷新,变为周二的签到天数。

2.4 天数上限

SignDay 取值范围为1~7。超过第7日后,活动状态变为"已结束"。

三、每日领奖规则

3.1 领取顺序

奖励必须按天数顺序依次领取(第1日→第2日→…→第7日),不可跳领。

3.2 四种状态定义

表1:奖励状态定义

状态条件客户端表现
可领取当前日期 ≥ 该天数 且 该天数奖励未领取奖励格高亮,领取按钮可点击
已领取该天数奖励已成功领取奖励格显示已领取标记,领取按钮置灰
不可领取当前日期 < 该天数奖励格锁定,领取按钮不可点击
可补领当前日期 > 该天数 且 该天数奖励未领取 且 活动未结束奖励格显示补领标记,领取按钮可点击

3.3 领取前置校验

服务器在发放奖励前需校验:

1. 该天数 ≤ 当前可签到天数

2. 该天数奖励未被领取(去重校验)

3. 前一天的奖励已领取(顺序校验,补领场景除外)

四、补领规则

4.1 补领条件

当前日期已超过某天数,但该天数的奖励未领取。活动仍在进行中(即未超过第7日)。前序天数的奖励已全部领取完毕(保证顺序)。

4.2 补领方式

玩家打开活动面板后,可补领的天数奖励格显示特殊补领标识。玩家点击该天数的领取按钮,服务器校验通过后直接发放奖励,不消耗任何道具或货币。补领必须按顺序进行,即如果第3天和第4天都可补领,必须先补领第3天,再补领第4天。

4.3 活动结束后处理

活动结束后(第7日结束后),不可补领。未领取的奖励视为放弃,系统不做任何补偿。

五、奖励发放规则

5.1 发放方式

奖励直接发放到玩家背包(游戏内邮箱作为备用通道)。每天最多包含3种奖励,每种奖励有独立的ID和数量。

5.2 背包满处理

发奖前服务器校验背包剩余容量。若背包容量充足:直接发放到背包。若背包容量不足:通过游戏内邮箱发放,并提示玩家"背包已满,奖励已发放至邮箱,请及时领取"。

5.3 重复领取限制

服务器端为每位玩家维护一张签到记录表(sign_record),字段包含:role_id、sign_day、is_claimed、claim_timestamp。每次领取操作前,服务器查询该玩家对应天数的is_claimed状态。若is_claimed = 1,直接拒绝请求,返回"该奖励已领取"。领取成功后,立即将is_claimed置为1,并记录claim_timestamp。

六、客户端负责内容

表2:客户端负责内容

序号负责内容说明
1活动面板UI展示展示7天奖励格、当前状态、按钮
2状态图标显示根据服务器返回的状态数据展示对应图标(可领取/已领取/不可领取/补领)
3点击事件上报玩家点击领取按钮时,向服务器发送领取请求,携带天数参数
4等待与反馈请求发出后展示Loading,收到响应后展示结果动画或提示
5领取成功表现播放领取成功的动画效果,更新奖励格状态
6提示文案展示展示各类提示信息(如"背包已满"等)
7红点提示有可领取奖励时,活动入口显示红点

客户端不负责任何判定逻辑,所有状态数据均来自服务器下发。

七、服务器负责内容

表3:服务器负责内容

序号负责内容说明
1活动开启判定判断玩家是否创建角色,是否在活动周期内
2签到天数计算根据服务器时间计算玩家当前签到天数
3领取状态管理维护每位玩家的签到记录表,校验是否可领取/已领取/不可领取
4顺序校验校验前置天数是否已领取,保证领取顺序
5奖励发放校验背包容量,执行发奖或邮箱投递
6去重校验防止同一奖励被重复领取
7补领逻辑校验判断是否满足补领条件
8活动结束判定判断活动是否已结束,结束后拒绝所有领取请求
9配置表读取读取奖励配置表,获取每日奖励内容

八、异常处理

表4:异常处理方案

异常场景处理方案
断网客户端在请求发出后设置10秒超时;超时后提示"网络异常,请重试";服务器若已处理请求但客户端未收到响应,玩家重新点击时服务器根据is_claimed状态返回正确结果,不会重复发奖
重复点击客户端在收到服务器响应前,领取按钮置为不可点击状态(防连点);服务器端通过is_claimed状态做二次校验,即使重复请求也只发一次奖
卡顿/Loading超时客户端Loading超过10秒后自动隐藏,提示"请求超时,请重试";按钮恢复可点击状态
客户端与服务器数据不一致每次打开活动面板时,客户端向服务器请求最新签到状态数据并刷新界面;不使用客户端本地缓存的状态数据
服务器发奖失败服务器在发奖过程中出现异常时,将is_claimed回滚为0,允许玩家重新领取;同时记录错误日志,便于后续排查和人工补发
配置表缺失/错误服务器在读取配置表时若发现某天数配置缺失,拒绝该天数的领取请求,返回"活动配置异常,请联系客服";同时触发告警通知运维人员