寶箱十連抽保底設計思路
阿新 • • 發佈:2018-11-26
表結構
id |
type |
weight |
attachments |
gm |
1 |
chest_normal |
5 |
[{"name": "shard_1", "number": 1}] |
0 |
2 |
chest_normal |
5 |
[{"name": "shard_2", "number": 1}] |
0 |
3 |
chest_adv |
5 |
[{"name": "shard_1", "number": 1}] |
0 |
4 |
chest_adv |
5 |
[{"name": "shard_2", "number": 1}] |
0 |
5 |
chest_adv |
1 |
[{"name": "hero_1", "number": 1}] |
1 |
6 |
chest_adv |
1 |
[{"name": "hero_2", "number": 1}] |
1 |
weight:權重
attachments:獎品
gm:是否是保底
普通寶箱抽獎就如同type =chest_normal普通寶箱這一種,只能得到碎片,沒有保底,利用權重來抽。
如果是需要十連抽並且保底的,就如同type =chest_adv高階寶箱這種,10連抽必定得到一個英雄。
實現方式
先從表中找到type =chest_adv 的配置,也就是id:3-6行按照權重,抽10次,之後檢查保底是否達到。
如果沒有達到,則從type =chest_adv且gm=1中進行抽取,然後替換掉一個非保底專案。反覆抽取直到達到保底。