概率与保底
这一页完整说明一次抽奖是怎么决定结果的。所有数字范例都使用插件自带的示例奖池 example(星辉宝箱)。
示例奖池
| 奖品 | 权重 | 稀有度 | 终极大奖 | 概率 |
|---|---|---|---|---|
| p1 星辉面包 ×16 | 40 | 普通 | 40% | |
| p2 铁锭 ×8 | 30 | 普通 | 30% | |
| p3 金锭 ×6 | 15 | 稀有 | 15% | |
| p4 绿宝石 ×5 | 8 | 稀有 | 8% | |
| p5 星辉钻石 ×3 | 5 | 史诗 | 5% | |
| p6 星陨合金 | 1.5 | 传说 | ✦ | 1.5% |
| p7 神话 · 星核 | 0.5 | 神话 | ✦ | 0.5% |
保底设定:hard: 50、soft-start: 35、soft-step: 5、ten-guarantee: rare。
1. 权重换算概率
概率 = 奖品的权重 ÷ 这位玩家这一抽能抽到的所有奖品的权重总和。
上表的权重总和刚好是 100,所以权重就等于百分比。权重不必加起来等于 100,写 4、3、2、1 一样可以(总和 10,概率 40% / 30% / 20% / 10%)。
「能抽到的奖品」会先排除:
| 排除的奖品 | 说明 |
|---|---|
权重 0 | 只展示,永远抽不到 |
玩家没有奖品的 permission | 对这位玩家来说这个奖品不存在,其他奖品的概率按比例变大 |
玩家已经达到奖品的 limit | 同上 |
例:p7 设了 limit: 1,玩家已经拿过一次。之后他的权重总和变成 99.5,p6 的概率是 1.5 ÷ 99.5 ≈ 1.51%,p1 是 40 ÷ 99.5 ≈ 40.2%。
2. 保底次数
每位玩家在每个奖池都有一个保底次数:距离上一次抽到终极大奖(grand: true)已经抽了几次。
- 每抽一次(十连算 10 次)+1;抽到终极大奖时归零。
- 只有终极大奖会让它归零,史诗、传说等稀有度本身不影响保底。
- 自选奖池 不影响保底次数。
- 预览界面的「保底进度」、变量
%starcrate_pity_<奖池>%显示的就是它;管理员可以用/sc pity <玩家> <奖池> [次数]查看或修改。
3. 硬保底(pity.hard)
距离上一次终极大奖的第 hard 抽,必定是终极大奖。
hard: 50:连续 49 抽都没出终极大奖,第 50 抽只会在终极大奖之中抽(按它们自己的权重):
| 奖品 | 权重 | 第 50 抽的概率 |
|---|---|---|
| p6 星陨合金 | 1.5 | 1.5 ÷ 2 = 75% |
| p7 神话 · 星核 | 0.5 | 0.5 ÷ 2 = 25% |
| 其他奖品 | — | 0% |
保底触发的奖品在抽奖结果界面会标示「✦ 保底触发」。
- 只要这位玩家还有能抽到的终极大奖,硬保底就有效;终极大奖全部达到每人上限(或他没有权限)时,硬保底不会触发。
- 调低
hard时,保底次数已经超过新数值的玩家,下一抽就会触发。
4. 软保底(pity.soft-start / pity.soft-step)
软保底让终极大奖的概率在接近硬保底时逐抽提高,玩家不会一直到第 50 抽才「突然」出货。
设这一抽是距离上一次终极大奖的第 n 抽(也就是保底次数 + 1)。当 n > soft-start 时:
终极大奖这一组的总概率 = 原本的总概率 + (n − soft-start) × soft-step 个百分点(最高 100%)
- 提高的是「所有终极大奖加起来」的总概率;终极大奖之间的比例不变,其他奖品之间的比例也不变,其他奖品按比例一起变小。
soft-start与soft-step都要大于 0 才有作用;奖池里没有终极大奖,或全部都是终极大奖时没有作用。- 硬保底的那一抽仍然是 100% 终极大奖。
示例奖池(终极大奖原本合计 2%,soft-start: 35、soft-step: 5):
| 第 n 抽 | 终极大奖合计 | p6 星陨合金 | p7 神话 · 星核 | p1 星辉面包 |
|---|---|---|---|---|
| 1 ~ 35 | 2% | 1.5% | 0.5% | 40% |
| 36 | 2 + 1 × 5 = 7% | 5.25% | 1.75% | 40 × 93/98 ≈ 37.96% |
| 40 | 2 + 5 × 5 = 27% | 20.25% | 6.75% | 40 × 73/98 ≈ 29.80% |
| 45 | 2 + 10 × 5 = 52% | 39% | 13% | 40 × 48/98 ≈ 19.59% |
| 49 | 2 + 14 × 5 = 72% | 54% | 18% | 40 × 28/98 ≈ 11.43% |
| 50 | 硬保底 100% | 75% | 25% | 0% |
(p1 那一栏:普通奖品原本占 98%,提高后只剩「100% − 终极大奖合计」,按原本的比例分配。)
如果 soft-step 设得很大(例如 soft-start: 10、soft-step: 30),第 14 抽就会到达 2 + 4 × 30 = 122% → 封顶 100%,等于提前保底。
5. 十连
十连就是连续抽 10 次:每一抽都会照上面的规则重新计算(保底次数在十连中途一样会累加、触发、归零)。 例如保底次数是 45 时十连,第 5 抽就是第 50 抽,必定是终极大奖,后面 5 抽从 0 重新累计。
设了每人上限的奖池
抽奖前(扣费之前)会先算出这位玩家还能抽到几个奖品:所有他抽得到的奖品,「上限 − 已获得次数」加起来(只要有一个奖品没有上限,就是无限)。
| 剩下可抽的数量 | 结果 |
|---|---|
| 0 | 提示「这个奖池里已经没有你能抽到的奖品了」,不抽、不扣费 |
| 少于这次的抽数(例如剩 3 个却要十连) | 提示「这个奖池你最多只能再抽 3 次(其余奖品已达获得上限),请改用单抽」(messages.yml 的 capacity),不抽、不扣费 |
| 足够 | 照常抽奖 |
所以十连一定会抽满 10 个,不会出现「付了十连的钱却只拿到几个」的情况。
6. 十连保底(pity.ten-guarantee)
ten-guarantee: rare:十连的 10 个结果里,如果没有任何一个是「稀有」或更稀有的奖品,就把最后一个不是终极大奖的结果换掉,
换成从「稀有以上」的奖品中按权重抽出的一个。被换上的奖品在结果界面标示「✦ 十连保底」。
示例奖池里,「稀有以上」的奖品是 p3 ~ p7(权重合计 30),所以替换时:
| 奖品 | 权重 | 被换上的概率 |
|---|---|---|
| p3 金锭 | 15 | 50% |
| p4 绿宝石 | 8 | 26.67% |
| p5 星辉钻石 | 5 | 16.67% |
| p6 星陨合金 ✦ | 1.5 | 5% |
| p7 神话 · 星核 ✦ | 0.5 | 1.67% |
一次十连 10 抽全部是普通(每抽 70%)的机会约为 0.7¹⁰ ≈ 2.8%,也就是大约每 35 次十连会有 1 次靠十连保底补上。
细节:
- 稀有度高低看
rarities.yml的排列顺序(越下面越稀有),见 稀有度。 - 判断「有没有达到」只看稀有度,不看是不是终极大奖:一个稀有度低于保底等级的终极大奖不算数。
- 替换时会遵守每人上限与奖品权限;如果没有任何符合条件的奖品可以换,就不替换。
- 换上的如果是终极大奖,保底次数会按最后的 10 个结果重新计算(等于这一抽抽到了终极大奖)。
- 奖池没写
ten-guarantee时,使用config.yml的defaults.ten-guarantee。
7. 预览显示的概率
奖池开启「显示概率」(show-chance: true)时,玩家预览界面的每个奖品下方会显示「概率 x%」。这个数字是这位玩家下一抽的真实概率:
- 已经排除他没有权限的奖品、已经达到上限的奖品(这些显示 0%);
- 已经算进他目前的软保底加成;
- 下一抽会触发硬保底时,终极大奖显示合计 100%,其他奖品显示 0%。
所以在示例奖池里,保底次数 39 的玩家打开预览,会看到 p6 显示 20.25%、p1 显示 29.80%(对应上面软保底表的第 40 抽)。 十连保底不会反映在预览概率里(它只在十连全部不达标时才介入)。
小数位数:10% 以上显示 1 位小数,0.01% ~ 10% 显示 2 位,更小的显示 4 位。
编辑器、宝箱物品的奖励列表、/sc stats 里的「设定」概率,都是单纯的「权重 ÷ 全部奖品权重总和」,不含保底加成,也不考虑上限与权限。
8. 核对实际出现率
/sc stats example
列出这个奖池每个奖品实际被抽到的次数与比例,旁边附上设定概率:
星辉宝箱 统计:共 1200 次 · 37 名玩家
▪ 星辉面包 470 次 (实际 39.2% · 设定 40.0%)
▪ 铁锭 352 次 (实际 29.3% · 设定 30.0%)
…
终极大奖的实际比例通常会比设定概率高一些,这是保底的效果。统计来自抽奖记录,会受 config.yml 的 history-keep-days 影响(超过天数的记录会被清除)。
9. 跨服与保底
使用 MySQL 时,保底次数、每个奖品的获得次数(每人上限)、每日次数在所有子服共享。玩家在一服抽到保底次数 40,到二服接着抽就是第 41 抽。见 跨服。