Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
- 新增系统称号模板与效果配置表及相关CRUD接口 - 实现用户称号分配与抽奖效果应用逻辑 - 优化抽奖接口支持用户ID参数以应用称号效果 - 新增称号管理前端页面与分配功能 - 修复Windows时区错误与JSON字段初始化问题 - 移除无用管理接口代码并更新文档说明
2.3 KiB
2.3 KiB
奖品双倍头衔设计补充
目标
- 为“头衔”新增一种权益:抽奖命中后有一定概率将奖励倍数提升(默认双倍)。
模型与配置
system_title_effects.effect_type = DRAW_REWARD_DOUBLE_CHANCEparams_json示例:multiplier_x1000: 2000(默认2x,允许配置3x等)chance_x1000: 150(表示15%)max_multiplier_cap_x1000: 3000(总倍数上限,例如≤3x)limit_per_day: null 或数值(每日最多触发次数)applicable_activities/issues: 作用范围限定列表
- 叠加策略:
- 概率合并:
p_total = 1 - Π(1 - p_i),并设置上限(如≤50%)。 - 倍数合并:与其他“奖励倍数”效果(如道具卡)相乘,最终倍数受
max_multiplier_cap_x1000封顶。
- 概率合并:
抽奖流程接入
- 触发点:
DRAW_EXECUTE阶段,在完成“中奖项选择”之后执行一次“是否倍增”的伯努利试验。 - 步骤:
- EffectEngine 汇总用户激活头衔的
DRAW_REWARD_DOUBLE_CHANCE,计算p_total与期望倍数(通常为2x)。 - 使用抽奖同一随机源或受控RNG进行试验,命中则将当前中奖奖励按倍数提升。
- 将结果写入
activity_draw_effects.reward_multiplier_x1000,并记录source_type=TITLE、source_id=title_id、命中与否、概率参数。 - 回执与发奖按倍数后的值结算(库存/道具类型按现有规则处理)。
- EffectEngine 汇总用户激活头衔的
审计与风控
- 落盘:在抽奖效果表记录每次试验的参数与结果,便于复核与分析。
- 上限:概率与倍数均受可配置总封顶约束,防止过度放大。
- 并发:同一抽奖回合仅进行一次合并后的试验,避免重复计算。
管理端与前端
- 管理端在“头衔效果”配置表单中提供:倍数、概率、封顶、作用范围、每日上限等字段。
- 用户端抽奖页面展示“我的双倍概率与倍数”提示;在中奖结果处标注“头衔加成(双倍)”。
测试与验收
- 用例:
- 单头衔15%双倍 → 约15%回合出现倍增且倍数=2x。
- 多头衔概率合并(10%与20%)→ 总概率约28%,倍数与其他倍数效果(如1.5x道具卡)相乘并≤总封顶。
- 封顶与每日上限有效;审计记录完整。
确认后,我将把该效果纳入头衔体系的实现与抽奖流程接入。