bindbox-game/.trae/documents/用户头衔体系与权益设计.md
邹方成 8141a47690
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(称号系统): 新增称号管理功能与抽奖效果集成
- 新增系统称号模板与效果配置表及相关CRUD接口
- 实现用户称号分配与抽奖效果应用逻辑
- 优化抽奖接口支持用户ID参数以应用称号效果
- 新增称号管理前端页面与分配功能
- 修复Windows时区错误与JSON字段初始化问题
- 移除无用管理接口代码并更新文档说明
2025-11-16 11:37:40 +08:00

2.3 KiB
Raw Blame History

奖品双倍头衔设计补充

目标

  • 为“头衔”新增一种权益:抽奖命中后有一定概率将奖励倍数提升(默认双倍)。

模型与配置

  • system_title_effects.effect_type = DRAW_REWARD_DOUBLE_CHANCE
  • params_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 阶段,在完成“中奖项选择”之后执行一次“是否倍增”的伯努利试验。
  • 步骤:
    1. EffectEngine 汇总用户激活头衔的 DRAW_REWARD_DOUBLE_CHANCE,计算 p_total 与期望倍数通常为2x
    2. 使用抽奖同一随机源或受控RNG进行试验命中则将当前中奖奖励按倍数提升。
    3. 将结果写入 activity_draw_effects.reward_multiplier_x1000,并记录 source_type=TITLEsource_id=title_id、命中与否、概率参数。
    4. 回执与发奖按倍数后的值结算(库存/道具类型按现有规则处理)。

审计与风控

  • 落盘:在抽奖效果表记录每次试验的参数与结果,便于复核与分析。
  • 上限:概率与倍数均受可配置总封顶约束,防止过度放大。
  • 并发:同一抽奖回合仅进行一次合并后的试验,避免重复计算。

管理端与前端

  • 管理端在“头衔效果”配置表单中提供:倍数、概率、封顶、作用范围、每日上限等字段。
  • 用户端抽奖页面展示“我的双倍概率与倍数”提示;在中奖结果处标注“头衔加成(双倍)”。

测试与验收

  • 用例:
    • 单头衔15%双倍 → 约15%回合出现倍增且倍数=2x。
    • 多头衔概率合并10%与20%)→ 总概率约28%倍数与其他倍数效果如1.5x道具卡)相乘并≤总封顶。
    • 封顶与每日上限有效;审计记录完整。

确认后,我将把该效果纳入头衔体系的实现与抽奖流程接入。