七日签到-月度奖励优化

This commit is contained in:
hahwu 2026-03-05 15:14:29 +08:00
parent 850cceecaa
commit 4422dbc527
6 changed files with 44 additions and 11 deletions

View File

@ -40,7 +40,7 @@ func GetSevenLoginReward() []*gamedata.SevenLoginRewardData {
return result
}
func GetSevenLoginMonthReward() []*gamedata.SevenLoginRewardData {
func GetSevenLoginMonthReward(nowMonth int) []*gamedata.SevenLoginRewardData {
data, err := gamedata.GetData(CFG_SEVEN_LOGIN_MONTH)
if err != nil {
log.Debug("GetSevenLoginReward err:%v", err)
@ -48,6 +48,10 @@ func GetSevenLoginMonthReward() []*gamedata.SevenLoginRewardData {
}
var result []*gamedata.SevenLoginRewardData
for k, v := range data {
month := gamedata.GetIntValue(v, "Month")
if month != nowMonth {
continue
}
Id, _ := strconv.Atoi(k)
Diamond := gamedata.GetIntValue(v, "Diamond")
RewardNum := gamedata.GetIntValue(v, "RewardNum")

View File

@ -40,11 +40,11 @@ func (s *SevenLoginMod) ZeroUpdate(Add, LastLoginTime int) {
s.WeekResetTime = WeekZeroTimestamp
s.DayR = 0
}
if Now > s.MonthResetTime+GoUtil.MONTHDAYS {
monthZeroTimestamp := GoUtil.MonthZeroTimestamp()
if monthZeroTimestamp > s.MonthResetTime {
s.MonthReward = randMonthReward()
s.Active = 0
s.MonthResetTime = s.MonthResetTime + (Now-s.MonthResetTime)/GoUtil.MONTHDAYS*GoUtil.MONTHDAYS
s.MonthResetTime = monthZeroTimestamp
}
s.DayR++
}
@ -108,11 +108,12 @@ func (s *SevenLoginMod) BackData() *msg.ResSevenLogin {
Status := GoUtil.IfTrue(!v.Status && s.Active >= Active, 1, 0).(int)
Status = GoUtil.IfTrue(v.Status, 2, Status).(int)
MonthReward = append(MonthReward, &msg.SevenLoginReward{
Item1: item.ItemToMsg(v.Item1),
Item2: item.ItemToMsg(v.Item2),
Item3: item.ItemToMsg(v.Item3),
Status: int32(Status),
Id: int32(k),
Item1: item.ItemToMsg(v.Item1),
Item2: item.ItemToMsg(v.Item2),
Item3: item.ItemToMsg(v.Item3),
Status: int32(Status),
Id: int32(k),
NeedActive: int32(Active),
})
}

View File

@ -109,7 +109,8 @@ func randReward(RewardData *gamedata.SevenLoginRewardData, LastType int, jackpot
}
func randMonthReward() map[int]Reward {
RewardList := sevenLoginCfg.GetSevenLoginMonthReward()
month := GoUtil.NowMonth()
RewardList := sevenLoginCfg.GetSevenLoginMonthReward(month)
sort.Slice(RewardList, func(i, j int) bool {
return RewardList[i].Id < RewardList[j].Id
})

View File

@ -174,3 +174,7 @@ func IsFirstDayOfMonth() bool {
now := time.Now()
return now.Day() == 1
}
func NowMonth() int {
return int(time.Now().Month())
}

View File

@ -22,7 +22,7 @@ func TestFriendApply(t *testing.T) {
p1 := new(game.Player)
p1.InitPlayer("3625212")
FriendMod := p1.GetFriendMod()
FriendMod.AddFriendApply(100002, 0)
FriendMod.AddFriendApply(100002, 0, 1698000000)
if !FriendMod.CheckApply(100002) {
t.Error("FriendMod AddFriendApply failed")
}

View File

@ -0,0 +1,23 @@
package test
import (
sevenLoginCfg "server/conf/seven_login"
"server/game"
GoUtil "server/game_util"
"testing"
)
func TestGetSevenLoginMonthReward(t *testing.T) {
month := GoUtil.NowMonth()
res := sevenLoginCfg.GetSevenLoginMonthReward(month)
t.Logf("res:%v", res)
}
func TestSevenLoginZeroUpdate(t *testing.T) {
p1 := new(game.Player)
p1.InitPlayer("3625212")
SevenLoginMod := p1.GetSevenLoginMod()
SevenLoginMod.ZeroUpdate(0, 0)
SevenLoginMod.BackData()
t.Logf("SevenLoginMod:%v", SevenLoginMod)
}