diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index a32d4a49..6d1073ca 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -94,7 +94,7 @@ func (c *ChampshipMgr) Init() { Remain1 := 1800 - Remain%1800 c.mDispatr.AfterFunc(time.Duration(Remain1)*time.Second, func() { // 30分钟后重新分组 - c.group() + c.group(false) }) c.mDispatr.AfterFunc(time.Duration(60)*time.Second, func() { @@ -116,6 +116,7 @@ func (c *ChampshipMgr) NotifyAll() (interface{}, error) { } func (c *ChampshipMgr) ZeroUpdate() (interface{}, error) { + c.group(true) log.Debug("ChampshipMgr ZeroUpdate") data := c.getData() data.mu.Lock() @@ -365,15 +366,15 @@ func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank { } // 分组 -func (c *ChampshipMgr) group() (interface{}, error) { - c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { // 30分钟后重新分组 - c.group() - }) +func (c *ChampshipMgr) group(iszero bool) (interface{}, error) { Now := GoUtil.Now() Zero := GoUtil.ZeroTimestamp() - if Now-Zero < 1800 { // 0点30分钟内不分组 + if Now-Zero < 1800 && !iszero { // 0点30分钟内不分组 return nil, nil } + c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { // 30分钟后重新分组 + c.group(false) + }) ChampshipData := c.getData() ChampshipData.mu.Lock() defer ChampshipData.mu.Unlock()