This commit is contained in:
hahwu 2026-04-01 16:30:01 +08:00
parent bf20ca1a6f
commit 97b764367a
4 changed files with 26 additions and 9 deletions

View File

@ -415,7 +415,7 @@ func GetServerMailData(data *[]*SqlServerMailStruct) error {
}
func GetActivityData(data *[]*SqlActivityCfgStruct) error {
sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `cfg_buf`, `extra` from t_activity_mod"
sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `cfg_buf`, `extra`, `interval` from t_activity_mod"
err := SqlDb.Select(data, sql)
return err
}

View File

@ -507,6 +507,7 @@ type SqlActivityCfgStruct struct {
Start_time int64 `db:"start_time"`
End_time int64 `db:"end_time"`
Cfg []byte `db:"cfg_buf"`
Interval int64 `db:"interval"`
Extra string `db:"extra"`
}

View File

@ -5,6 +5,7 @@ import (
"server/db"
"server/game/mod/msg"
Msg "server/game/mod/msg"
GoUtil "server/game_util"
protoMsg "server/msg"
"sync"
@ -32,6 +33,7 @@ type ActivityCfg struct {
MailTitle string
MailContent string
cfg interface{}
Interval int64
Extra map[string]interface{}
}
@ -64,7 +66,18 @@ func (r *ActivityMgr) GetActivityList() []ActivityCfg {
data.mu.Lock()
defer data.mu.Unlock()
list := make([]ActivityCfg, 0, len(data.List))
now := GoUtil.Now()
for _, v := range data.List {
//循环活动,重新计算活动时间
if v.Interval > 0 {
if now > v.Endtime {
//活动已结束,计算下一次活动时间
interval := (now - v.Startime) / v.Interval
v.Startime += interval * v.Interval
v.Endtime += interval * v.Interval
}
v.Id = int(v.Startime) //活动id用开始时间表示方便客户端排序
}
list = append(list, *v)
}
return list
@ -112,6 +125,7 @@ func (r *ActivityMgr) Reload() error {
MailTitle: v.MailTitle,
MailContent: v.MailContent,
cfg: activityCfg,
Interval: v.Interval,
}
log.Debug("load activity cfg: %v", cfg)
data.List[v.Id] = cfg

View File

@ -23,6 +23,8 @@ const (
ACT_TYPE_SUPER_GIFT = 6 // 超值加购礼包
ACT_TYPE_CATNIP = 7 // 猫草大作战
ACT_TYPE_PASS = 8 // 通行证
ACT_TYPE_CHAMPION = 9 // 冠军赛
ACT_TYPE_MEOW_GIFT = 10 // 喵喵回礼
)
const (