|
@@ -14,6 +14,7 @@ import (
|
|
|
"github.com/mhaya/game/game_cluster/internal/token"
|
|
|
mhayaLogger "github.com/mhaya/logger"
|
|
|
"math/rand"
|
|
|
+ "slices"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
@@ -232,24 +233,34 @@ func (p *Player) RefreshRoll() bool {
|
|
|
if len(arr) != 2 {
|
|
|
return false
|
|
|
}
|
|
|
- h, _ := mhayaString.ToInt64(arr[0])
|
|
|
- m, _ := mhayaString.ToInt64(arr[1])
|
|
|
- s := mhayaTime.CreateFromTimestamp(p.RollDay).DiffInSeconds(mhayaTime.Now())
|
|
|
- if s >= h {
|
|
|
- p.RollDay = mhayaTime.Now().Unix()
|
|
|
- num := p.Item[ItemRoll].AddAll()
|
|
|
- if num > 0 {
|
|
|
- p.SetPlayerRewardLog(SourceRefreshRoll, 1, []data.ItemReward{{ItemID: ItemRoll, ItemBaseType: 1, Amount: num}}, []data.ItemReward{}, 0)
|
|
|
- }
|
|
|
- mhayaLogger.Infof("RefreshRoll by condition 1 rollDay:%d,num:%v", s, num)
|
|
|
- return true
|
|
|
- } else if s >= m {
|
|
|
+
|
|
|
+ slice := make([]int, 0)
|
|
|
+ for _, s := range arr {
|
|
|
+ hour, _ := mhayaString.ToInt(s)
|
|
|
+ slice = append(slice, hour)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 小时数,24小时制
|
|
|
+ curHour := time.Now().Hour()
|
|
|
+ if curHour == 0 {
|
|
|
+ curHour = 24
|
|
|
+ }
|
|
|
+ rollHour := time.Unix(p.RollDay, 0).Hour()
|
|
|
+
|
|
|
+ isToday := mhayaTime.CreateFromTimestamp(p.RollDay).IsToday()
|
|
|
+ if isToday {
|
|
|
+ slice = slices.DeleteFunc(slice, func(x int) bool {
|
|
|
+ return x <= rollHour
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if slices.Contains(slice, curHour) && isToday {
|
|
|
p.RollDay = mhayaTime.Now().Unix()
|
|
|
- num := p.Item[ItemRoll].AddSame()
|
|
|
+ num := p.Item[ItemRoll].AddSameTwo(8)
|
|
|
if num > 0 {
|
|
|
p.SetPlayerRewardLog(SourceRefreshRoll, 2, []data.ItemReward{{ItemID: ItemRoll, ItemBaseType: 1, Amount: num}}, []data.ItemReward{}, 0)
|
|
|
}
|
|
|
- mhayaLogger.Infof("RefreshRoll by condition 2 rollDay:%d,num:%v", s, num)
|
|
|
+ mhayaLogger.Infof("RefreshRoll by condition 2 rollDay:%d,num:%v", p.RollDay, num)
|
|
|
return true
|
|
|
}
|
|
|
return false
|