1. 程式人生 > >寶箱十連抽保底設計思路

寶箱十連抽保底設計思路

表結構

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

type:抽獎型別
weight:權重
attachments:獎品
gm:是否是保底

普通寶箱抽獎就如同type =chest_normal普通寶箱這一種,只能得到碎片,沒有保底,利用權重來抽。
如果是需要十連抽並且保底的,就如同type =chest_adv高階寶箱這種,10連抽必定得到一個英雄。


實現方式

先從表中找到type =chest_adv 的配置,也就是id:3-6行
按照權重,抽10次,之後檢查保底是否達到。
如果沒有達到,則從type =chest_adv且gm=1中進行抽取,然後替換掉一個非保底專案。反覆抽取直到達到保底。