8.3 KiB
抽卡与保底:原作设计与规则
版本:HEROLL 2.0.1 原作还原文档 v1.0。
1. 功能定位
抽卡由三个部分组成:玩家点击的抽卡按钮、按钮指向的奖励池、该池的保底规则。它们必须按池类型关联,不能按按钮名称或显示文字推断价格和保底。
2. 主要状态
下面是开发阅读所需的概念状态,属于开发映射,不要求与原作内部字段同名。
| 状态 | 用途 |
|---|---|
| 抽卡池类型 | 决定奖励候选 |
| 按钮档 | 决定抽数和消费 |
| 池保底计数 | 按池区分 |
| 广告周期使用状态 | 独立于付费次数 |
| 替代道具余额 | 用于展示抵扣 |
3. 功能规则
3.1 按钮与消费
shopGacha单抽配置钻石30、十连300。替代道具为204,抵扣字段30表示单道具可替代的资源量,不能显示成每抽消耗30张券。另有消耗资源110×35的按钮及每日广告按钮。
3.2 奖励池
奖励行同时记录类型、品质、ID、数量和权重。相同池类型才属于同一候选组;奖励ID为-1时表示指定类型全池,仍须保留奖励类型。
3.3 保底
高级装备池20次保底、提前命中重置标记False;增强装备池50次、重置标记False;坐骑池400次、重置标记True。坐骑记录名字虽带50,真实次数以400为准。
3.4 概率表达
配置权重先按池分组再讨论归一化,不能将某行权重100直接写成100%掉落。十连如何逐次推进保底及命中保底的优先级仍需要原作执行证据。
4. 操作流程
以下顺序用于拆解功能;涉及未确认的结算时机,以本章末尾具体缺口为准。
- 由按钮找到池类型、抽数、成本和免费广告标记。
- 读取同池候选与保底规则,展示价格及保底目标。
- 抽取结果保留奖励类型、ID、数量,交给对应内容模块展示。
- 更新计数的精确时点及十连分支待确认,不把整次十连当作一次保底进度。
5. 关键数值与计算
| 项目 | 数值 | 状态 |
|---|---|---|
| shopGacha单抽:道具101消耗30,存在替代道具204 | gachaCount=1;needItemID=101;needCount=30;isAlterBtn=True;alterItemID=204;alterCount=30 | 原作配置确认 |
| shopGacha十连:道具101消耗300;抵扣值并非已确认券消耗数 | gachaCount=10;needItemID=101;needCount=300;alterItemID=204;alterCount=30 | 原作配置确认 |
| 高级装备保底次数及提前命中重置标记 | type=advancedEquipmentGacha;ceilCount=20;isResetBeforeCeil=False;ceilRewardString=advancedEquipmentGacha_EQUIPMENT_3_-1_FALSE_1 | 原作配置确认 |
| 增强装备保底次数及提前命中重置标记 | type=enhancedEquipmentGacha;ceilCount=50;isResetBeforeCeil=False;ceilRewardString=enhancedEquipmentGacha_EQUIPMENT_3_-1_TRUE_1 | 原作配置确认 |
| 坐骑保底必须读取ceilCount=400;StringId尾部50不是实际次数 | type=mount_Gacha;ceilCount=400;isResetBeforeCeil=True;ceilRewardString=mount_Gacha_ITEM_0_169_FALSE_1 | 原作配置确认 |
5.A 权重检查公式
对指定池、并假定该池所有记录均按权重参与时,P(i)=weight(i)/Σweight(pool)。保底和动态筛选不在此式内,见条件概率检查。
抽卡操作与成本(全表)
| ID | 名称/键 | 类型/分组 | 抽取次数 | 免费标记 | 广告按钮标记 | 消耗道具ID | 消耗数量 |
|---|---|---|---|---|---|---|---|
| 1 | shopGacha_0_1 | shopGacha | 1 | False | False | 110 | 35 |
| 2 | shopGacha_1_1 | shopGacha | 1 | False | False | 101 | 30 |
| 3 | shopGacha_2_10 | shopGacha | 10 | False | False | 101 | 300 |
| 4 | shopGacha_3_1 | shopGacha | 1 | False | True | ||
| 5 | relicGacha_0_1 | relicGacha | 1 | False | True | ||
| 6 | relicGacha_1_1 | relicGacha | 1 | False | False | 125 | 100 |
| 7 | relicGacha_2_5 | relicGacha | 5 | False | False | 125 | 500 |
| 8 | advancedRelicGacha_0_1 | advancedRelicGacha | 1 | False | True | ||
| 9 | advancedRelicGacha_1_1 | advancedRelicGacha | 1 | False | False | 125 | 500 |
| 10 | advancedRelicGacha_2_5 | advancedRelicGacha | 5 | False | False | 125 | 2500 |
| 11 | equipmentGacha_0_1 | equipmentGacha | 1 | False | True | ||
| 12 | equipmentGacha_1_1 | equipmentGacha | 1 | False | False | 101 | 20 |
| 13 | equipmentGacha_2_5 | equipmentGacha | 5 | False | False | 101 | 100 |
| 14 | advancedEquipmentGacha_0_1 | advancedEquipmentGacha | 1 | False | True | ||
| 15 | advancedEquipmentGacha_1_1 | advancedEquipmentGacha | 1 | False | False | 101 | 50 |
| 16 | advancedEquipmentGacha_2_10 | advancedEquipmentGacha | 10 | False | False | 101 | 500 |
| 17 | enhancedEquipmentGacha_0_1 | enhancedEquipmentGacha | 1 | False | False | 101 | 100 |
| 18 | enhancedEquipmentGacha_1_10 | enhancedEquipmentGacha | 10 | False | False | 101 | 1000 |
| 19 | superballNormalGacha_0_1 | superballNormalGacha | 1 | False | True | ||
| 20 | superballAdvancedGacha_0_1 | superballAdvancedGacha | 1 | True | False | ||
| 21 | superballEnhancedGacha_0_1 | superballEnhancedGacha | 1 | False | True | ||
| 22 | mount_Gacha_0_1 | mount_Gacha | 1 | False | False | 167 | 1 |
| 23 | mount_Gacha_1_10 | mount_Gacha | 10 | False | False | 167 | 10 |
抽卡保底(全表)
| ID | 名称/键 | 类型/分组 | 保底次数 | 保底前命中是否重置标记 | 保底奖励Gacha字符串键 |
|---|---|---|---|---|---|
| 1 | advancedEquipmentGacha20 | advancedEquipmentGacha | 20 | False | advancedEquipmentGacha_EQUIPMENT_3_-1_FALSE_1 |
| 2 | enhancedEquipmentGacha50 | enhancedEquipmentGacha | 50 | False | enhancedEquipmentGacha_EQUIPMENT_3_-1_TRUE_1 |
| 3 | mount_00_Gacha50 | mount_Gacha | 400 | True | mount_Gacha_ITEM_0_169_FALSE_1 |
6. 原作中文内容
中文名称和效果使用原作文本;{0}、{B}等占位符未确认绑定时保留,文字不能代替参数公式。
本模块主要由数值和键值组成,原作文本对照见同目录CSV。
7. 开发权威表
| 配置用途 | 权威原字段表 | 记录数 | 开发阅读表 |
|---|---|---|---|
| 抽卡操作与成本 | gachatype.csv | 23 | 中文目录 |
| 抽卡候选奖励 | gacha.csv | 60 | 中文目录 |
| 抽卡保底 | gachaceildata.csv | 3 | 中文目录 |
执行规则 · 状态字段 · 验收样例 · 字段字典 · 关联全局配置
全局键按模块名称关联收录;其具体含义优先以正文已确认的规则为准。
| 配置键 | 原值 |
|---|---|
| enhancedGachaUnlockStage | 2 |
8. 开发验收与禁止误写
| 输入 | 检查内容 | 预期 |
|---|---|---|
| 读取gachatype中StringId=shopGacha_1_1 | 查询本条配置并核对界面/配置输出 | gachaCount=1;needItemID=101;needCount=30;isAlterBtn=True;alterItemID=204;alterCount=30 |
| 读取gachatype中StringId=shopGacha_2_10 | 查询本条配置并核对界面/配置输出 | gachaCount=10;needItemID=101;needCount=300;alterItemID=204;alterCount=30 |
| 读取gachaceildata中StringId=advancedEquipmentGacha20 | 查询本条配置并核对界面/配置输出 | type=advancedEquipmentGacha;ceilCount=20;isResetBeforeCeil=False;ceilRewardString=advancedEquipmentGacha_EQUIPMENT_3_-1_FALSE_1 |
| 读取gachaceildata中StringId=enhancedEquipmentGacha50 | 查询本条配置并核对界面/配置输出 | type=enhancedEquipmentGacha;ceilCount=50;isResetBeforeCeil=False;ceilRewardString=enhancedEquipmentGacha_EQUIPMENT_3_-1_TRUE_1 |
| 读取gachaceildata中StringId=mount_00_Gacha50 | 查询本条配置并核对界面/配置输出 | type=mount_Gacha;ceilCount=400;isResetBeforeCeil=True;ceilRewardString=mount_Gacha_ITEM_0_169_FALSE_1 |
验收样例覆盖已经确认的值;流程中的未知分支不能以本表通过代替规则确认。数值表内的空值、0和-1分别保留;升级数组不默认使用玩家等级作为索引。
9. 当前待补充边界
十连逐抽结算、券抵扣不足时的组合支付、跨池计数以及保底命中顺序尚待确认。