Compare commits

...

2 Commits

1 changed files with 10 additions and 11 deletions

View File

@ -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(10000)
}
}
} else {
f()
}
}
} else {
f()
f(10000)
}
}