diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 90b890db..aba0ff84 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -16,6 +16,7 @@ import ( "server/game/mod/mail" GoUtil "server/game_util" "server/msg" + "sort" "gitea.bywaystudios.com/pet_home/leaf/log" ) @@ -532,8 +533,12 @@ func (p *Player) GetChampshipActivityId() (int, int) { var yesterdayActivityId int activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList() now := GoUtil.Now() - yesterday := GoUtil.ZeroTimestamp() - 1 level := p.GetBaseMod().GetLevel() + type sortData struct { + Id int + EndTime int64 + } + var sortList []sortData for _, v := range activiyCfgList { if v.Type != activity.ACT_TYPE_CHAMPION { continue @@ -544,10 +549,16 @@ func (p *Player) GetChampshipActivityId() (int, int) { if v.Startime <= now && v.Endtime >= now { todayActivityId = v.Id } - if v.Startime <= yesterday && v.Endtime >= yesterday { - yesterdayActivityId = v.Id + if v.Endtime < now { + sortList = append(sortList, sortData{Id: v.Id, EndTime: v.Endtime}) } } + if len(sortList) > 0 { + sort.Slice(sortList, func(i, j int) bool { + return sortList[i].EndTime > sortList[j].EndTime + }) + yesterdayActivityId = sortList[0].Id + } return todayActivityId, yesterdayActivityId }