| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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()
- }
|