diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index 4f49ec0..8c550ef 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -2094,11 +2094,6 @@ func (this *Scene) Statistics(param *StaticParam) { logger.Logger.Tracef("Statistics gameId:%v wbLevel:%v gain:%v addGain:%v", this.GameId, wbLevel, param.Gain, addGain) - // 比赛场,私人房不统计 - if this.IsMatchScene() || this.IsPrivateScene() { - return - } - var totalIn int64 var totalOut int64 now := time.Now() @@ -2181,6 +2176,40 @@ func (this *Scene) Statistics(param *StaticParam) { statics = append(statics, &data.Statics) } + f := func(list []*model.PlayerGameStatics) { + for _, data := range list { + if data != nil { + if !this.IsMatchScene() && !this.IsPrivateScene() { // 比赛场,私人房不统计 + data.TotalIn += totalIn + data.TotalOut += totalOut + data.Tax += param.GainTax + } + if param.IsAddTimes { + data.GameTimes++ + if param.Gain > 0 { + data.WinGameTimes++ + data.WinGameTimesNum++ + data.LoseGameTimesNum = 0 + } else if param.Gain < 0 { + data.LoseGameTimes++ + data.LoseGameTimesNum++ + data.WinGameTimesNum = 0 + } else { + data.DrawGameTimes++ + data.WinGameTimesNum = 0 + data.LoseGameTimesNum = 0 + } + } + } + } + } + f(statics) + statics = statics[:0] + + if this.IsMatchScene() || this.IsPrivateScene() { + return + } + // 新手输赢统计 if !model.GameParamData.CloseNovice && !common.InSliceInt(model.GameParamData.CloseNoviceGame, int(this.GameId)) && isControl && wbLevel == 0 && isNovice { keyNoviceGameId := common.GetKeyNoviceGameId(int(this.GameId)) @@ -2249,29 +2278,8 @@ func (this *Scene) Statistics(param *StaticParam) { logger.Logger.Tracef("Statistics PlayerPool gameId:%v wbLevel:%v gain:%v addGain:%v", this.GameId, wbLevel, param.Gain, addGain) } - for _, data := range statics { - if data != nil { - data.TotalIn += totalIn - data.TotalOut += totalOut - data.Tax += param.GainTax - if param.IsAddTimes { - data.GameTimes++ - if param.Gain > 0 { - data.WinGameTimes++ - data.WinGameTimesNum++ - data.LoseGameTimesNum = 0 - } else if param.Gain < 0 { - data.LoseGameTimes++ - data.LoseGameTimesNum++ - data.WinGameTimesNum = 0 - } else { - data.DrawGameTimes++ - data.WinGameTimesNum = 0 - data.LoseGameTimesNum = 0 - } - } - } - } + f(statics) + statics = statics[:0] // 玩家身上元数据 if param.IsAddTimes {