diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 561e8ae6..d5651b23 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -514,6 +514,7 @@ func (ad *GameLogic) ClearData(args []interface{}) { if player != nil && player.M_DwUin != 0 { player.agent = nil log.Debug("player %d 断开连接", player.M_DwUin) + player.AutoSaveData() player.CallEvent(120*time.Second, func() { player.lock.Lock() defer player.lock.Unlock() diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 14e8a79f..d2595885 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -462,7 +462,8 @@ func (p *Player) GetChampshipActivityId() (int, int) { var yesterdayActivityId int activiyCfgList := activityCfg.GetActivityListOrigin() Now := GoUtil.Now() - YesterDay := GoUtil.ZeroTimestamp() - 1 + YesterDayEnd := GoUtil.ZeroTimestamp() - 1 + YesterDayStart := GoUtil.ZeroTimestamp() - 24*3600 level := p.GetBaseMod().GetLevel() champshipActivityIds := champshipCfg.GetChampshipActivityId() for _, v := range activiyCfgList { @@ -475,7 +476,10 @@ func (p *Player) GetChampshipActivityId() (int, int) { if v.StartTime <= Now && v.EndTime >= Now { 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 } } @@ -485,8 +489,9 @@ func (p *Player) GetChampshipActivityId() (int, int) { func (p *Player) GetDailyTaskActivityId() int { var activityId int activiyCfgList := activityCfg.GetActivityListOrigin() - Now := GoUtil.Now() level := p.GetBaseMod().GetLevel() + todayZeroStart := GoUtil.ZeroTimestamp() + todayZeroEnd := GoUtil.ZeroTimestamp() + 24*3600 - 1 activityIds := dailyTaskCfg.GetActivityIds() for _, v := range activiyCfgList { if !GoUtil.InArray(v.Type, activityIds) { @@ -495,9 +500,11 @@ func (p *Player) GetDailyTaskActivityId() int { if v.Level > level { 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 - break } } return activityId diff --git a/src/server/test/activity_test.go b/src/server/test/activity_test.go index 03dd8307..1b723262 100644 --- a/src/server/test/activity_test.go +++ b/src/server/test/activity_test.go @@ -11,3 +11,18 @@ func TestActivityOpenEnd(t *testing.T) { p.InitActivity() 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) +}