锦标赛优化
This commit is contained in:
parent
6b379a2de5
commit
e0b73ccf6f
@ -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.GetChampshipCfgList()
|
activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList()
|
||||||
now := GoUtil.Now()
|
now := GoUtil.Now()
|
||||||
level := p.GetBaseMod().GetLevel()
|
level := p.GetBaseMod().GetLevel()
|
||||||
type sortData struct {
|
type sortData struct {
|
||||||
|
|||||||
@ -44,6 +44,23 @@ func (ac *ActivityCfg) String() string {
|
|||||||
ac.Id, ac.Type, ac.Startime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.cfg, ac.Extra)
|
ac.Id, ac.Type, ac.Startime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.cfg, ac.Extra)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ac *ActivityCfg) Copy() ActivityCfg {
|
||||||
|
return ActivityCfg{
|
||||||
|
Id: ac.Id,
|
||||||
|
AId: ac.AId,
|
||||||
|
Type: ac.Type,
|
||||||
|
Startime: ac.Startime,
|
||||||
|
Endtime: ac.Endtime,
|
||||||
|
Level: ac.Level,
|
||||||
|
Title: ac.Title,
|
||||||
|
MailTitle: ac.MailTitle,
|
||||||
|
MailContent: ac.MailContent,
|
||||||
|
cfg: ac.cfg,
|
||||||
|
Interval: ac.Interval,
|
||||||
|
Extra: ac.Extra,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const ()
|
const ()
|
||||||
|
|
||||||
func (r *ActivityMgr) Init() {
|
func (r *ActivityMgr) Init() {
|
||||||
@ -70,53 +87,20 @@ 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
|
info := v.Copy()
|
||||||
//循环活动,重新计算活动时间
|
//循环活动,重新计算活动时间
|
||||||
if info.Interval > 0 {
|
if info.Interval > 0 {
|
||||||
if now >= info.Endtime {
|
info.AId = int(info.Startime)
|
||||||
//活动已结束,计算下一次活动时间
|
|
||||||
interval := (now - info.Startime) / info.Interval
|
|
||||||
info.Startime += interval * info.Interval
|
|
||||||
info.Endtime += interval * info.Interval
|
|
||||||
if now > info.Endtime {
|
|
||||||
info.Startime += info.Interval
|
|
||||||
info.Endtime += info.Interval
|
|
||||||
}
|
|
||||||
}
|
|
||||||
v.AId = int(info.Startime) //活动id用开始时间表示,方便客户端排序
|
|
||||||
} else {
|
|
||||||
v.AId = v.Id
|
|
||||||
}
|
|
||||||
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)
|
list = append(list, info)
|
||||||
internal := (now - info.Startime) / info.Interval
|
internal := (now - info.Startime) / info.Interval
|
||||||
for i := int64(0); i <= internal; i++ {
|
for i := int64(0); i <= internal; i++ {
|
||||||
v.Startime += info.Interval
|
newInfo := info.Copy()
|
||||||
v.Endtime += info.Interval
|
newInfo.Startime += info.Interval
|
||||||
v.AId = int(info.Startime) //活动id用开始时间表示,方便客户端排序
|
newInfo.Endtime += info.Interval
|
||||||
list = append(list, info)
|
newInfo.AId = int(newInfo.Startime) //活动id用开始时间表示,方便客户端排序
|
||||||
|
list = append(list, newInfo)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
info.AId = info.Id
|
|
||||||
list = append(list, info)
|
list = append(list, info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user