public void Update(long GUID, XLRUpdateFlags flags) { if (!xlr_players.ContainsKey(GUID)) { return; } XLREntry entry = xlr_players[GUID]; if (flags.HasFlag(XLRUpdateFlags.kill)) { entry.kills += 1; } if (flags.HasFlag(XLRUpdateFlags.death)) { entry.deaths += 1; } if (flags.HasFlag(XLRUpdateFlags.headshot)) { entry.headshots += 1; } if (flags.HasFlag(XLRUpdateFlags.tk_kill)) { entry.tk_kills += 1; } if (flags.HasFlag(XLRUpdateFlags.weapon_fired)) { entry.shots_total += 1; } entry.score = math_score(entry); xlr_players[GUID] = entry; }
public float math_precision(XLREntry entry) { return((entry.shots_total == 0) ? 0 : (entry.kills - entry.tk_kills) / (float)entry.shots_total); }
public float math_score(XLREntry entry) { return(math_kd(entry) * math_precision(entry) * 100); }
public float math_kd(XLREntry entry) { return(entry.kills / (float)((entry.deaths == 0) ? 1 : entry.deaths)); }