From 6360361da0203b468f41d0851287d19a22c6f2f4 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 13 Apr 2026 19:48:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=A6=E6=A0=87=E8=B5=9B=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=B8=8A=E6=9C=9F=E6=B4=BB=E5=8A=A8id=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/activity_func.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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 }