Compare commits
2 Commits
0217cca00f
...
a2e823ef7b
Author | SHA1 | Date |
---|---|---|
|
a2e823ef7b | |
|
00654c7bae |
|
@ -2363,7 +2363,7 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr
|
|||
// 记录参与次数
|
||||
if id == 0 {
|
||||
for _, v := range this.GetConfig(p.Platform).RedPacketConfig.GetList() {
|
||||
if v.GetOn() == common.On && now >= common.IntToTime(int(v.GetStartHMS())).Unix() || now < common.IntToTime(int(v.GetEndHMS())).Unix() {
|
||||
if v.GetOn() == common.On && now >= common.IntToTime(int(v.GetStartHMS())).Unix() && now < common.IntToTime(int(v.GetEndHMS())).Unix() {
|
||||
if p.WelfData.RedPacket[v.GetId()] == nil {
|
||||
p.WelfData.RedPacket[v.GetId()] = &model.RedPacketData{}
|
||||
}
|
||||
|
@ -2412,10 +2412,10 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr
|
|||
if remain <= 0 || (playerLimit > 0 && playerRN >= playerLimit) {
|
||||
// 空奖
|
||||
} else {
|
||||
f := func() {
|
||||
f := func(total int64) {
|
||||
// 概率抽奖
|
||||
rate := 0
|
||||
n := rand.Int63n(10000)
|
||||
n := rand.Int63n(total)
|
||||
for _, v := range cfg.GetRedList() {
|
||||
rate += int(v.GetRate())
|
||||
if n < int64(rate) {
|
||||
|
@ -2427,23 +2427,22 @@ func (this *WelfareMgr) GetRedPacket(p *Player, id int64) *welfare.SCRedPacketDr
|
|||
if cfg.GetMaxCount() > 0 {
|
||||
// 保底计算
|
||||
if data.RN >= cfg.GetLessCount() {
|
||||
f()
|
||||
f(10000)
|
||||
} else {
|
||||
sub := cfg.GetLessCount() - data.RN
|
||||
if cfg.GetMaxCount()-data.N <= sub {
|
||||
// 必中
|
||||
for i := 0; i < 1000; i++ {
|
||||
f()
|
||||
if reward > 0 {
|
||||
break
|
||||
}
|
||||
var total int64
|
||||
for _, v := range cfg.GetRedList() {
|
||||
total += v.GetRate()
|
||||
}
|
||||
f(total)
|
||||
} else {
|
||||
f()
|
||||
f(10000)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
f()
|
||||
f(10000)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue