PRD-049 好友召回
文档编号:PRD-049
版本:v1.0
状态:已通过
适用端:服务端 / 客户端
脚本挂载:lua/activity/recall.lua
1. 背景与目标
召回活动用于拉回流失玩家与促进邀请。邀请码、回流判定、里程碑奖励适合用 Lua 编排,可快速调整活动周期。
目标
- 活跃玩家生成邀请码,邀请回流玩家绑定。
- 回流玩家完成指定任务,双方获得奖励。
- 邀请人数达到里程碑额外奖励,防刷小号。
2. 核心规则
- 流失定义:连续 7 天未登录且等级 ≥ 20。
- 活跃玩家每日可邀请 3 人,绑定关系 30 天。
- 回流玩家填写邀请码后,完成 5 个回流任务。
- 每完成 1 个任务,双方获得积分;全部完成额外宝箱。
- 邀请 1/3/5/10 人解锁里程碑奖励。
- 同 IP/同设备/同支付账号判定为小号,不计入。
3. 服务端设计
3.1 Lua 脚本设计
-- lua/activity/recall.lua
Recall = {
min_level = 20,
inactive_days = 7,
bind_days = 30,
daily_invite = 3,
milestones = { 1, 3, 5, 10 },
}
function OnGenerateCode(ctx, role)
local code = ctx:GetOrCreateInviteCode(role)
ctx:Send(role, "SC_RecallCode", code)
end
function OnBind(ctx, new_role, code)
local inviter = ctx:GetRoleByCode(code)
if not inviter then return ctx:Fail(new_role, "邀请码无效") end
if not ctx:IsReturning(new_role, Recall.inactive_days) then
return ctx:Fail(new_role, "不符合回流条件")
end
if not ctx:CanInvite(inviter, Recall.daily_invite) then
return ctx:Fail(new_role, "邀请次数已用完")
end
ctx:BindRecall(inviter, new_role, Recall.bind_days)
end
function OnRecallTask(ctx, role, task_id)
local inviter = ctx:GetInviter(role)
if not inviter then return end
ctx:AddRecallScore(inviter, role, 10)
if ctx:AllTasksDone(role) then
ctx:GrantRecallChest(inviter, role)
end
end
- 邀请码、绑定关系、任务进度持久化。
- 回流判定使用最后登录时间,服务端时间。
- 小号判定在绑定与发奖时双重校验。
3.2 协议
| 方向 | 协议 | 说明 |
|---|---|---|
| C→S | CS_RecallCode | 获取邀请码 |
| C→S | CS_RecallBind | 填写邀请码 |
| S→C | SC_RecallInfo | 绑定/任务/积分 |
| S→C | SC_RecallReward | 奖励/里程碑 |
3.3 防刷
- 同 IP/设备/支付账号绑定多个新号,只计首个。
- 回流玩家 30 天内不可被重复绑定。
- 奖励领取幂等,按
inviter + invitee + task唯一。
4. 客户端设计
- 召回面板:邀请码、复制/分享、绑定入口。
- 回流任务列表与进度。
- 里程碑奖励预览与领取。
- 绑定成功提示、双方奖励展示。
- 活动倒计时与规则说明。
5. 配置与 Lua 接口
| 配置 | 说明 |
|---|---|
inactive_days | 回流判定 |
bind_days | 绑定有效期 |
daily_invite | 每日邀请 |
tasks | 回流任务 |
milestones | 里程碑 |
Lua 接口:GetOrCreateInviteCode、GetRoleByCode、IsReturning、BindRecall、AddRecallScore、GrantRecallChest。
6. 边界与异常
| 场景 | 处理 |
|---|---|
| 邀请码重复使用 | 每个回流号只能绑定一次 |
| 绑定后未登录 | 7 天未登录自动解绑 |
| 活动结束 | 未领取奖励邮件补发 |
| 小号判定 | 不计入、不发奖、记录风控 |
| 脚本异常 | 绑定回滚,记录日志 |
7. 验收标准
- 邀请码/绑定/回流任务/积分/里程碑正确。
- 回流判定、绑定有效期、每日邀请限制生效。
- 小号/同 IP 防刷生效。
- 奖励幂等,活动结束可补发。
- 客户端进度与服务端一致。