活动优化,活动类型判断以时间段为条件

This commit is contained in:
hahwu 2026-03-12 10:54:58 +08:00
parent 631944f2be
commit 37ef7dd434
3 changed files with 28 additions and 5 deletions

View File

@ -514,6 +514,7 @@ func (ad *GameLogic) ClearData(args []interface{}) {
if player != nil && player.M_DwUin != 0 {
player.agent = nil
log.Debug("player %d 断开连接", player.M_DwUin)
player.AutoSaveData()
player.CallEvent(120*time.Second, func() {
player.lock.Lock()
defer player.lock.Unlock()

View File

@ -462,7 +462,8 @@ func (p *Player) GetChampshipActivityId() (int, int) {
var yesterdayActivityId int
activiyCfgList := activityCfg.GetActivityListOrigin()
Now := GoUtil.Now()
YesterDay := GoUtil.ZeroTimestamp() - 1
YesterDayEnd := GoUtil.ZeroTimestamp() - 1
YesterDayStart := GoUtil.ZeroTimestamp() - 24*3600
level := p.GetBaseMod().GetLevel()
champshipActivityIds := champshipCfg.GetChampshipActivityId()
for _, v := range activiyCfgList {
@ -475,7 +476,10 @@ func (p *Player) GetChampshipActivityId() (int, int) {
if v.StartTime <= Now && v.EndTime >= Now {
todayActivityId = v.Id
}
if v.StartTime <= YesterDay && v.EndTime >= YesterDay {
if v.StartTime <= YesterDayStart && v.EndTime >= YesterDayStart {
yesterdayActivityId = v.Id
}
if v.StartTime <= YesterDayEnd && v.EndTime >= YesterDayEnd {
yesterdayActivityId = v.Id
}
}
@ -485,8 +489,9 @@ func (p *Player) GetChampshipActivityId() (int, int) {
func (p *Player) GetDailyTaskActivityId() int {
var activityId int
activiyCfgList := activityCfg.GetActivityListOrigin()
Now := GoUtil.Now()
level := p.GetBaseMod().GetLevel()
todayZeroStart := GoUtil.ZeroTimestamp()
todayZeroEnd := GoUtil.ZeroTimestamp() + 24*3600 - 1
activityIds := dailyTaskCfg.GetActivityIds()
for _, v := range activiyCfgList {
if !GoUtil.InArray(v.Type, activityIds) {
@ -495,9 +500,11 @@ func (p *Player) GetDailyTaskActivityId() int {
if v.Level > level {
continue
}
if v.StartTime <= Now && v.EndTime >= Now {
if v.StartTime <= todayZeroStart && v.EndTime >= todayZeroStart {
activityId = v.Id
}
if v.StartTime <= todayZeroEnd && v.EndTime >= todayZeroEnd {
activityId = v.Id
break
}
}
return activityId

View File

@ -11,3 +11,18 @@ func TestActivityOpenEnd(t *testing.T) {
p.InitActivity()
p.ActivityLogin()
}
func TestChampionshipActivityId(t *testing.T) {
p := new(game.Player)
p.InitPlayer("3625212")
todayActivityId, yesterdayActivityId := p.GetChampshipActivityId()
t.Logf("Current championship activity ID: %d", todayActivityId)
t.Logf("Yesterday's championship activity ID: %d", yesterdayActivityId)
}
func TestDailyTaskActivityId(t *testing.T) {
p := new(game.Player)
p.InitPlayer("3625212")
activityId := p.GetDailyTaskActivityId()
t.Logf("Current daily task activity ID: %d", activityId)
}