锦标赛

This commit is contained in:
hahwu 2026-04-13 23:09:01 +08:00
parent a2189782be
commit 6b379a2de5
2 changed files with 43 additions and 11 deletions

View File

@ -531,7 +531,7 @@ func (p *Player) CatnipBackData() {
func (p *Player) GetChampshipActivityId() (int, int) { func (p *Player) GetChampshipActivityId() (int, int) {
var todayActivityId int var todayActivityId int
var yesterdayActivityId int var yesterdayActivityId int
activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList() activiyCfgList := G_GameLogicPtr.ActivityMgr.GetChampshipCfgList()
now := GoUtil.Now() now := GoUtil.Now()
level := p.GetBaseMod().GetLevel() level := p.GetBaseMod().GetLevel()
type sortData struct { type sortData struct {

View File

@ -70,23 +70,55 @@ func (r *ActivityMgr) GetActivityList() []ActivityCfg {
list := make([]ActivityCfg, 0, len(data.List)) list := make([]ActivityCfg, 0, len(data.List))
now := GoUtil.Now() now := GoUtil.Now()
for _, v := range data.List { for _, v := range data.List {
info := *v
//循环活动,重新计算活动时间 //循环活动,重新计算活动时间
if v.Interval > 0 { if info.Interval > 0 {
if now > v.Endtime { if now >= info.Endtime {
//活动已结束,计算下一次活动时间 //活动已结束,计算下一次活动时间
interval := (now - v.Startime) / v.Interval interval := (now - info.Startime) / info.Interval
v.Startime += interval * v.Interval info.Startime += interval * info.Interval
v.Endtime += interval * v.Interval info.Endtime += interval * info.Interval
if now > v.Endtime { if now > info.Endtime {
v.Startime += v.Interval info.Startime += info.Interval
v.Endtime += v.Interval info.Endtime += info.Interval
} }
} }
v.AId = int(v.Startime) //活动id用开始时间表示方便客户端排序 v.AId = int(info.Startime) //活动id用开始时间表示方便客户端排序
} else { } else {
v.AId = v.Id v.AId = v.Id
} }
list = append(list, *v) list = append(list, info)
}
return list
}
func (r *ActivityMgr) GetChampshipCfgList() []ActivityCfg {
// 获取活动列表
data := r.getData()
data.mu.Lock()
defer data.mu.Unlock()
list := make([]ActivityCfg, 0, len(data.List))
now := GoUtil.Now()
for _, v := range data.List {
info := *v
if info.Type != activity.ACT_TYPE_CHAMPION {
continue
}
//循环活动,重新计算活动时间
if info.Interval > 0 {
v.AId = int(info.Startime)
list = append(list, info)
internal := (now - info.Startime) / info.Interval
for i := int64(0); i <= internal; i++ {
v.Startime += info.Interval
v.Endtime += info.Interval
v.AId = int(info.Startime) //活动id用开始时间表示方便客户端排序
list = append(list, info)
}
} else {
info.AId = info.Id
list = append(list, info)
}
} }
return list return list
} }