package player import ( "f1-game/internal/data" "f1-game/nodes/game/player/chapter" "f1-game/nodes/game/player/lord" "f1-game/nodes/game/player/vip" "time" ) func (p *actorPlayer) startTimer() { if !p.isOnline { return } //移除所有定时器 p.Timer().RemoveAll() // 添加跨天定时器 p.Timer().AddFixedHour(int(data.Const.ResetTime), 0, 0, p.onCrossDayTimer) // 添加每秒定时器 p.Timer().Add(1*time.Second, p.every1STimer) // 资源定时器 p.Timer().Add(3*time.Second, p.every3STimer) } // onCrossDayTimer 跨天执行定时器 func (p *actorPlayer) onCrossDayTimer() { // 不在线不处理跨天,等下次登录的时候处理 if !p.isOnline { return } // 更新时间 p.updateNowTime() // 跨天重置处理 p.onReset(p.PlayerTable(), false) p.Debug("[crossDay] isOnline = %v", p.isOnline) } // oneSecondTimer 每1秒定时器 func (p *actorPlayer) every1STimer() { if !p.isOnline { return } p.updateNowTime() nowSecond := p.now.ToSecond() chapter.Service().StaminaRecoverTimer(p.playerID, nowSecond) lord.Service().CheckShowExpireTimer(p.playerID, nowSecond) vip.Service().CheckVipExpired(p.playerID) } // threeSecondTimer 每3秒定时器 func (p *actorPlayer) every3STimer() { p.checkFriendSend() }