Adjustments to stats to support zombie client
This commit is contained in:
parent
3c9a1f62a3
commit
108aac83a5
@ -181,7 +181,7 @@ public class HitCalculator : IClientStatisticCalculator
|
|||||||
|
|
||||||
foreach (var hitInfo in new[] {attackerHitInfo, victimHitInfo})
|
foreach (var hitInfo in new[] {attackerHitInfo, victimHitInfo})
|
||||||
{
|
{
|
||||||
if (hitInfo.MeansOfDeath == null || hitInfo.Location == null || hitInfo.Weapon == null)
|
if (hitInfo.MeansOfDeath == null || hitInfo.Location == null || hitInfo.Weapon == null || hitInfo.EntityId == 0)
|
||||||
{
|
{
|
||||||
_logger.LogDebug("Skipping hit because it does not contain the required data");
|
_logger.LogDebug("Skipping hit because it does not contain the required data");
|
||||||
continue;
|
continue;
|
||||||
|
@ -148,7 +148,7 @@ namespace Stats.Helpers
|
|||||||
public static Expression<Func<EFClientStatistics, bool>> GetRankingFunc(int minPlayTime, TimeSpan expiration, double? zScore = null,
|
public static Expression<Func<EFClientStatistics, bool>> GetRankingFunc(int minPlayTime, TimeSpan expiration, double? zScore = null,
|
||||||
long? serverId = null)
|
long? serverId = null)
|
||||||
{
|
{
|
||||||
var oldestStat = DateTimeOffset.UtcNow.Subtract(expiration);
|
var oldestStat = DateTime.UtcNow.Subtract(expiration);
|
||||||
return stats => (serverId == null || stats.ServerId == serverId) &&
|
return stats => (serverId == null || stats.ServerId == serverId) &&
|
||||||
stats.UpdatedAt >= oldestStat &&
|
stats.UpdatedAt >= oldestStat &&
|
||||||
stats.Client.Level != EFClient.Permission.Banned &&
|
stats.Client.Level != EFClient.Permission.Banned &&
|
||||||
|
@ -1198,11 +1198,12 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
|
|||||||
oldestStat = bucketConfig.RankingExpiration;
|
oldestStat = bucketConfig.RankingExpiration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var oldestStateDate = DateTime.UtcNow - oldestStat;
|
||||||
var performances = await context.Set<EFClientStatistics>()
|
var performances = await context.Set<EFClientStatistics>()
|
||||||
.AsNoTracking()
|
.AsNoTracking()
|
||||||
.Where(stat => stat.ClientId == clientId)
|
.Where(stat => stat.ClientId == clientId)
|
||||||
.Where(stat => stat.ServerId != serverId) // ignore the one we're currently tracking
|
.Where(stat => stat.ServerId != serverId) // ignore the one we're currently tracking
|
||||||
.Where(stats => stats.UpdatedAt >= DateTimeOffset.UtcNow - oldestStat)
|
.Where(stats => stats.UpdatedAt >= oldestStateDate)
|
||||||
.Where(stats => stats.TimePlayed >= minPlayTime)
|
.Where(stats => stats.TimePlayed >= minPlayTime)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user