活动优化,活动类型判断以时间段为条件

This commit is contained in:
hahwu 2026-03-12 10:54:58 +08:00
parent 631944f2be
commit 37ef7dd434
3 changed files with 28 additions and 5 deletions

View File

@ -514,6 +514,7 @@ func (ad *GameLogic) ClearData(args []interface{}) {
if player != nil && player.M_DwUin != 0 { if player != nil && player.M_DwUin != 0 {
player.agent = nil player.agent = nil
log.Debug("player %d 断开连接", player.M_DwUin) log.Debug("player %d 断开连接", player.M_DwUin)
player.AutoSaveData()
player.CallEvent(120*time.Second, func() { player.CallEvent(120*time.Second, func() {
player.lock.Lock() player.lock.Lock()
defer player.lock.Unlock() defer player.lock.Unlock()

View File

@ -462,7 +462,8 @@ func (p *Player) GetChampshipActivityId() (int, int) {
var yesterdayActivityId int var yesterdayActivityId int
activiyCfgList := activityCfg.GetActivityListOrigin() activiyCfgList := activityCfg.GetActivityListOrigin()
Now := GoUtil.Now() Now := GoUtil.Now()
YesterDay := GoUtil.ZeroTimestamp() - 1 YesterDayEnd := GoUtil.ZeroTimestamp() - 1
YesterDayStart := GoUtil.ZeroTimestamp() - 24*3600
level := p.GetBaseMod().GetLevel() level := p.GetBaseMod().GetLevel()
champshipActivityIds := champshipCfg.GetChampshipActivityId() champshipActivityIds := champshipCfg.GetChampshipActivityId()
for _, v := range activiyCfgList { for _, v := range activiyCfgList {
@ -475,7 +476,10 @@ func (p *Player) GetChampshipActivityId() (int, int) {
if v.StartTime <= Now && v.EndTime >= Now { if v.StartTime <= Now && v.EndTime >= Now {
todayActivityId = v.Id todayActivityId = v.Id
} }
if v.StartTime <= YesterDay && v.EndTime >= YesterDay { if v.StartTime <= YesterDayStart && v.EndTime >= YesterDayStart {
yesterdayActivityId = v.Id
}
if v.StartTime <= YesterDayEnd && v.EndTime >= YesterDayEnd {
yesterdayActivityId = v.Id yesterdayActivityId = v.Id
} }
} }
@ -485,8 +489,9 @@ func (p *Player) GetChampshipActivityId() (int, int) {
func (p *Player) GetDailyTaskActivityId() int { func (p *Player) GetDailyTaskActivityId() int {
var activityId int var activityId int
activiyCfgList := activityCfg.GetActivityListOrigin() activiyCfgList := activityCfg.GetActivityListOrigin()
Now := GoUtil.Now()
level := p.GetBaseMod().GetLevel() level := p.GetBaseMod().GetLevel()
todayZeroStart := GoUtil.ZeroTimestamp()
todayZeroEnd := GoUtil.ZeroTimestamp() + 24*3600 - 1
activityIds := dailyTaskCfg.GetActivityIds() activityIds := dailyTaskCfg.GetActivityIds()
for _, v := range activiyCfgList { for _, v := range activiyCfgList {
if !GoUtil.InArray(v.Type, activityIds) { if !GoUtil.InArray(v.Type, activityIds) {
@ -495,9 +500,11 @@ func (p *Player) GetDailyTaskActivityId() int {
if v.Level > level { if v.Level > level {
continue continue
} }
if v.StartTime <= Now && v.EndTime >= Now { if v.StartTime <= todayZeroStart && v.EndTime >= todayZeroStart {
activityId = v.Id
}
if v.StartTime <= todayZeroEnd && v.EndTime >= todayZeroEnd {
activityId = v.Id activityId = v.Id
break
} }
} }
return activityId return activityId

View File

@ -11,3 +11,18 @@ func TestActivityOpenEnd(t *testing.T) {
p.InitActivity() p.InitActivity()
p.ActivityLogin() p.ActivityLogin()
} }
func TestChampionshipActivityId(t *testing.T) {
p := new(game.Player)
p.InitPlayer("3625212")
todayActivityId, yesterdayActivityId := p.GetChampshipActivityId()
t.Logf("Current championship activity ID: %d", todayActivityId)
t.Logf("Yesterday's championship activity ID: %d", yesterdayActivityId)
}
func TestDailyTaskActivityId(t *testing.T) {
p := new(game.Player)
p.InitPlayer("3625212")
activityId := p.GetDailyTaskActivityId()
t.Logf("Current daily task activity ID: %d", activityId)
}