1.9 KiB
1.9 KiB
drawCat 抽猫云函数设计
目标
新增独立的 drawCat 云函数,使用玩家的 catArr 记录已拥有猫咪。它仿照 drawHead 的鉴权、权重抽取、代币扣除和返回结构,但不修改现有头像抽取功能。
接口
请求参数:
uid:玩家 ID。token:登录 token。gameName:可选;值为iaa时使用usersAd,否则使用users。
成功返回:
{
code: 1,
data: {
catArr: number[],
reward: number,
film: number
},
msg: "成功"
}
卡池与权重
- 普通猫咪:
4、5、6、7、8,每只权重150。 - 稀有猫咪:
9、10,每只权重50。 - 最高稀有猫咪:
11,权重8。 - 玩家已拥有的猫咪从当次抽取候选中移除。
- 抽到任何猫咪时都只追加本次抽中的一个 ID;抽到
11不赠送其他剩余猫咪。 catArr缺失时按[1, 2, 3]处理。- 卡池全部收集完成后返回“已抽取所有猫咪”,不扣除代币。
代币消耗
- 使用用户的
film字段。 film缺失时沿用drawHead行为,以levelAmount作为兼容值。- 按本期已收集数量使用阶梯消耗:
5、10、25、35、55、70、100、120。 - 余额不足时返回当前
film和本次cost,不修改数据库。 - 抽取成功后一次写回
{ catArr, film }。
校验与错误处理
- 用户不存在时返回“未获取到玩家信息”。
- 数据库用户存在 token 时必须通过现有 token 校验。
- 不接受客户端指定卡池、权重、奖励或扣费金额。
验证
- 验证云函数配置名为
drawCat。 - 验证普通、稀有和最高稀有权重区间。
- 验证已拥有猫咪不会再次抽中。
- 验证抽到
11只增加11。 - 验证阶梯扣费和余额不足行为。
- 验证全部收集完成时不扣费。
- 验证
gameName: "iaa"路由到usersAd。