From 850d9e8c1ab0fb63cd73dd9b61ed0efb42f797aa Mon Sep 17 00:00:00 2001 From: RaidMax Date: Thu, 8 Feb 2018 01:23:45 -0600 Subject: [PATCH] Fixed non player killstreak kills counting as suicide (custom callbacks) RCON tweaks to hopefully prevent RCON flooding Stats reimp added IW4x extra weapons --- Admin/Manager.cs | 2 +- Admin/Server.cs | 16 +-- Admin/lib/SharedLibrary.dll | Bin 149504 -> 149504 bytes Admin/version.txt | 6 +- Plugins/SimpleStats/Helpers/StatManager.cs | 114 +++++++++++++++--- Plugins/SimpleStats/IW4Info.cs | 113 ++++++++++++++++- .../SimpleStats/Models/EFClientStatistics.cs | 13 +- Plugins/SimpleStats/Plugin.cs | 2 +- Plugins/Tests/Plugin.cs | 2 - SharedLibrary/Database/Models/EFClient.cs | 1 + SharedLibrary/File.cs | 44 ++++++- SharedLibrary/Helpers/AsyncStatus.cs | 2 +- SharedLibrary/RCON.cs | 10 +- SharedLibrary/Server.cs | 12 +- SharedLibrary/SharedLibrary.csproj | 1 + _customcallbacks.gsc | 5 +- 16 files changed, 298 insertions(+), 45 deletions(-) diff --git a/Admin/Manager.cs b/Admin/Manager.cs index cb0ee736e..8988867ec 100644 --- a/Admin/Manager.cs +++ b/Admin/Manager.cs @@ -34,7 +34,7 @@ namespace IW4MAdmin AliasService AliasSvc; PenaltyService PenaltySvc; #if FTP_LOG - const int UPDATE_FREQUENCY = 15000; + const int UPDATE_FREQUENCY = 700; #else const int UPDATE_FREQUENCY = 300; #endif diff --git a/Admin/Server.cs b/Admin/Server.cs index 836ed3eb9..7335ab826 100644 --- a/Admin/Server.cs +++ b/Admin/Server.cs @@ -19,7 +19,7 @@ namespace IW4MAdmin public override int GetHashCode() { - return IP.GetHashCode() + Port; + return Math.Abs(IP.GetHashCode() + Port); } override public async Task AddPlayer(Player polledPlayer) { @@ -405,11 +405,7 @@ namespace IW4MAdmin if (lines != oldLines) { l_size = LogFile.Length(); - int end; - if (lines.Length == oldLines.Length) - end = lines.Length - 1; - else - end = Math.Abs((lines.Length - oldLines.Length)) - 1; + int end = (lines.Length == oldLines.Length) ? lines.Length - 1 : Math.Abs((lines.Length - oldLines.Length)) - 1; for (int count = 0; count < lines.Length; count++) { @@ -434,7 +430,6 @@ namespace IW4MAdmin await ExecuteEvent(event_); } } - } } } @@ -537,8 +532,13 @@ namespace IW4MAdmin #endif } else + { +#if !DEBUG LogFile = new IFile(logPath); - +#else + } + LogFile = new RemoteFile("https://raidmax.org/IW4MAdmin/getlog.php"); +#endif Logger.WriteInfo("Log file is " + logPath); await ExecuteEvent(new Event(Event.GType.Start, "Server started", null, null, this)); #if !DEBUG diff --git a/Admin/lib/SharedLibrary.dll b/Admin/lib/SharedLibrary.dll index bbc2a686ddbf48ae9354fa6cf065d9ca574381fe..46fc446849aa4e8cb324af7b86ac873fa31afb99 100644 GIT binary patch literal 149504 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
    6=jI)_VMLFY{@J8u?^V3T0UEv%^(EGZLN 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 M`v3p?e~$wH1HxfvDF6Tf diff --git a/Admin/version.txt b/Admin/version.txt index 4b1b281cf..170ea5492 100644 --- a/Admin/version.txt +++ b/Admin/version.txt @@ -1,4 +1,8 @@ -Version 1.6: +Version 1.7: +CHANGELOG: +-EntityFramework is now the main database system + +Version 1.6: CHANGELOG: -got rid of pesky "error on character" message -optimizations to commands diff --git a/Plugins/SimpleStats/Helpers/StatManager.cs b/Plugins/SimpleStats/Helpers/StatManager.cs index ecec31f05..d0475d338 100644 --- a/Plugins/SimpleStats/Helpers/StatManager.cs +++ b/Plugins/SimpleStats/Helpers/StatManager.cs @@ -102,10 +102,15 @@ namespace StatsPlugin.Helpers clientStats = ClientStatSvc.Insert(clientStats); } - else - lock (playerStats) + { + if (playerStats.ContainsKey(pl.ClientNumber)) + { + Log.WriteWarning($"Duplicate clientnumber in stats {pl.ClientId} vs {playerStats[pl.ClientNumber].ClientId}"); + playerStats.Remove(pl.ClientNumber); + } playerStats.Add(pl.ClientNumber, clientStats); + } return clientStats; } @@ -113,29 +118,32 @@ namespace StatsPlugin.Helpers { int serverId = pl.CurrentServer.GetHashCode(); var playerStats = Servers[serverId].PlayerStats; - // get individual client's stats var clientStats = playerStats[pl.ClientNumber]; // remove the client from the stats dictionary as they're leaving lock (playerStats) playerStats.Remove(pl.ClientNumber); - + // allow accessing certain properties + //clientStats.Client = pl; + // update skill + // clientStats = UpdateStats(clientStats); + // reset for EF cache + //clientStats.SessionDeaths = 0; + // clientStats.SessionKills = 0; + // prevent mismatched primary key + //clientStats.Client = null; // update in database - await ClientStatSvc.SaveChangesAsync(); + //await ClientStatSvc.SaveChangesAsync(); } /// /// Process stats for kill event /// /// - public async Task AddKill(Player attacker, Player victim, int serverId, string map, string hitLoc, string type, + public async Task AddScriptKill(Player attacker, Player victim, int serverId, string map, string hitLoc, string type, string damage, string weapon, string killOrigin, string deathOrigin) { - var attackerStats = Servers[serverId].PlayerStats[attacker.ClientNumber]; - attackerStats.Kills += 1; - - var victimStats = Servers[serverId].PlayerStats[victim.ClientNumber]; - victimStats.Deaths += 1; + AddStandardKill(attacker, victim); var kill = new EFClientKill() { @@ -156,10 +164,88 @@ namespace StatsPlugin.Helpers await KillSvc.SaveChangesAsync(); } - private EFClientStatistics UpdateStats(EFClientStatistics cs) + public void AddStandardKill(Player attacker, Player victim) { - // todo: everything - return cs; + var attackerStats = Servers[attacker.CurrentServer.GetHashCode()].PlayerStats[attacker.ClientNumber]; + // set to access total time + attackerStats.Client = attacker; + var victimStats = Servers[victim.CurrentServer.GetHashCode()].PlayerStats[victim.ClientNumber]; + + CalculateKill(attackerStats, victimStats); + } + + /// + /// Performs the incrementation of kills and deaths for client statistics + /// + /// Stats of the attacker + /// Stats of the victim + public void CalculateKill(EFClientStatistics attackerStats, EFClientStatistics victimStats) + { + attackerStats.Kills += 1; + attackerStats.SessionKills += 1; + attackerStats.KillStreak += 1; + attackerStats.DeathStreak = 0; + + victimStats.Deaths += 1; + victimStats.SessionDeaths += 1; + victimStats.DeathStreak += 1; + victimStats.KillStreak = 0; + + // process the attacker's stats after the kills + UpdateStats(attackerStats); + attackerStats.Client = null; + + // immediately write changes in debug +#if DEBUG + ClientStatSvc.SaveChanges(); +#endif + } + + /// + /// Update the client stats (skill etc) + /// + /// Client statistics + /// + private EFClientStatistics UpdateStats(EFClientStatistics clientStats) + { + // if it's their first kill we need to set the last kill as the time they joined + clientStats.LastStatCalculation = (clientStats.LastStatCalculation == DateTime.MinValue) ? DateTime.UtcNow : clientStats.LastStatCalculation; + double timeSinceLastCalc = (DateTime.UtcNow - clientStats.LastStatCalculation).TotalSeconds / 60.0; + + // each 'session' is one minute + if (timeSinceLastCalc >= 1) + { + Log.WriteDebug($"Updated stats for {clientStats.ClientId} ({clientStats.SessionKills})"); + // calculate the players Score Per Minute for the current session + // todo: score should be based on gamemode + double killSPM = clientStats.SessionKills * 100.0; + + // calculate how much the KDR should weigh + // 1.637 is a Eddie-Generated number that weights the KDR nicely + double KDRWeight = Math.Round(Math.Pow(clientStats.KDR, 1.637 / Math.E), 3); + + // if no SPM, weight is 1 else the weight ishe current session's spm / lifetime average score per minute + double SPMWeightAgainstAverage = (clientStats.SPM < 1) ? 1 : killSPM / clientStats.SPM; + + // calculate the weight of the new play time against last 10 hours of gameplay + int totalConnectionTime = (clientStats.Client.TotalConnectionTime == 0) ? + (int)(DateTime.UtcNow - clientStats.Client.FirstConnection).TotalSeconds : + clientStats.Client.TotalConnectionTime + (int)(DateTime.UtcNow - clientStats.Client.LastConnection).TotalSeconds; + + double SPMAgainstPlayWeight = timeSinceLastCalc / Math.Min(600, (totalConnectionTime / 60.0)); + + // calculate the new weight against average times the weight against play time + clientStats.SPM = (killSPM * SPMAgainstPlayWeight) + (clientStats.SPM * (1 - SPMAgainstPlayWeight)); + clientStats.SPM = Math.Round(clientStats.SPM, 3); + clientStats.Skill = Math.Round((clientStats.SPM * KDRWeight) / 10.0, 3); + + clientStats.SessionKills = 0; + clientStats.SessionDeaths = 0; + + clientStats.LastStatCalculation = DateTime.UtcNow; + } + + return clientStats; } } } diff --git a/Plugins/SimpleStats/IW4Info.cs b/Plugins/SimpleStats/IW4Info.cs index ff42a3f8e..7d40cfefb 100644 --- a/Plugins/SimpleStats/IW4Info.cs +++ b/Plugins/SimpleStats/IW4Info.cs @@ -1225,7 +1225,118 @@ namespace StatsPlugin nuke_mp = 1190, barrel_mp = 1191, lightstick_mp = 1192, - throwingknife_rhand_mp = 1193 + throwingknife_rhand_mp = 1193, + deserteaglegold_akimbo_mp, + deserteaglegold_fmj_mp, + deserteaglegold_tactical_mp, + deserteaglegold_akimbo_fmj_mp, + deserteaglegold_fmj_tactical_mp, + ak47classic_mp, + ak47classic_acog_mp, + ak47classic_eotech_mp, + ak47classic_fmj_mp, + ak47classic_gl_mp, + gl_ak47classic_mp, + ak47classic_heartbeat_mp, + ak47classic_reflex_mp, + ak47classic_shotgun_mp, + ak47classic_shotgun_attach_mp, + ak47classic_silencer_mp, + ak47classic_thermal_mp, + ak47classic_xmags_mp, + ak47classic_acog_fmj_mp, + ak47classic_acog_gl_mp, + ak47classic_acog_heartbeat_mp, + ak47classic_acog_shotgun_mp, + ak47classic_acog_silencer_mp, + ak47classic_acog_xmags_mp, + ak47classic_eotech_fmj_mp, + ak47classic_eotech_gl_mp, + ak47classic_eotech_heartbeat_mp, + ak47classic_eotech_shotgun_mp, + ak47classic_eotech_silencer_mp, + ak47classic_eotech_xmags_mp, + ak47classic_fmj_gl_mp, + ak47classic_fmj_heartbeat_mp, + ak47classic_fmj_reflex_mp, + ak47classic_fmj_shotgun_mp, + ak47classic_fmj_silencer_mp, + ak47classic_fmj_thermal_mp, + ak47classic_fmj_xmags_mp, + ak47classic_gl_heartbeat_mp, + ak47classic_gl_reflex_mp, + ak47classic_gl_silencer_mp, + ak47classic_gl_thermal_mp, + ak47classic_gl_xmags_mp, + ak47classic_heartbeat_reflex_mp, + ak47classic_heartbeat_shotgun_mp, + ak47classic_heartbeat_silencer_mp, + ak47classic_heartbeat_thermal_mp, + ak47classic_heartbeat_xmags_mp, + ak47classic_reflex_shotgun_mp, + ak47classic_reflex_silencer_mp, + ak47classic_reflex_xmags_mp, + ak47classic_shotgun_silencer_mp, + ak47classic_shotgun_thermal_mp, + ak47classic_shotgun_xmags_mp, + ak47classic_silencer_thermal_mp, + ak47classic_silencer_xmags_mp, + ak47classic_thermal_xmags_mp, + ak74u_mp, + ak74u_acog_mp, + ak74u_eotech_mp, + ak74u_fmj_mp, + ak74u_gl_mp, + gl_ak74u_mp, + ak74u_heartbeat_mp, + ak74u_reflex_mp, + ak74u_shotgun_mp, + ak74u_shotgun_attach_mp, + ak74u_silencer_mp, + ak74u_thermal_mp, + ak74u_xmags_mp, + ak74u_acog_fmj_mp, + ak74u_acog_gl_mp, + ak74u_acog_heartbeat_mp, + ak74u_acog_shotgun_mp, + ak74u_acog_silencer_mp, + ak74u_acog_xmags_mp, + ak74u_eotech_fmj_mp, + ak74u_eotech_gl_mp, + ak74u_eotech_heartbeat_mp, + ak74u_eotech_shotgun_mp, + ak74u_eotech_silencer_mp, + ak74u_eotech_xmags_mp, + ak74u_fmj_gl_mp, + ak74u_fmj_heartbeat_mp, + ak74u_fmj_reflex_mp, + ak74u_fmj_shotgun_mp, + ak74u_fmj_silencer_mp, + ak74u_fmj_thermal_mp, + ak74u_fmj_xmags_mp, + ak74u_gl_heartbeat_mp, + ak74u_gl_reflex_mp, + ak74u_gl_silencer_mp, + ak74u_gl_thermal_mp, + ak74u_gl_xmags_mp, + ak74u_heartbeat_reflex_mp, + ak74u_heartbeat_shotgun_mp, + ak74u_heartbeat_silencer_mp, + ak74u_heartbeat_thermal_mp, + ak74u_heartbeat_xmags_mp, + ak74u_reflex_shotgun_mp, + ak74u_reflex_silencer_mp, + ak74u_reflex_xmags_mp, + ak74u_shotgun_silencer_mp, + ak74u_shotgun_thermal_mp, + ak74u_shotgun_xmags_mp, + ak74u_silencer_thermal_mp, + ak74u_silencer_xmags_mp, + ak74u_thermal_xmags_mp, + m40a3_mp = 1194, + peacekeeper_mp, + dragunov_mp, + cobra_player_minigun_mp } public enum MapName diff --git a/Plugins/SimpleStats/Models/EFClientStatistics.cs b/Plugins/SimpleStats/Models/EFClientStatistics.cs index ead4afd1b..f514af24b 100644 --- a/Plugins/SimpleStats/Models/EFClientStatistics.cs +++ b/Plugins/SimpleStats/Models/EFClientStatistics.cs @@ -28,11 +28,22 @@ namespace StatsPlugin.Models [NotMapped] public double KDR { - get => Deaths == 0 ? 0.0 : Math.Round((float)Kills / (float)Deaths, 2); + get => Deaths == 0 ? Kills : Math.Round((float)Kills / (float)Deaths, 2); } [Required] public double SPM { get; set; } [Required] public double Skill { get; set; } + + [NotMapped] + public int SessionKills { get; set; } + [NotMapped] + public int SessionDeaths { get; set; } + [NotMapped] + public int KillStreak { get; set; } + [NotMapped] + public int DeathStreak { get; set; } + [NotMapped] + public DateTime LastStatCalculation { get; set; } } } diff --git a/Plugins/SimpleStats/Plugin.cs b/Plugins/SimpleStats/Plugin.cs index a1268deb7..b043c670c 100644 --- a/Plugins/SimpleStats/Plugin.cs +++ b/Plugins/SimpleStats/Plugin.cs @@ -62,7 +62,7 @@ namespace StatsPlugin case Event.GType.Kill: string[] killInfo = (E.Data != null) ? E.Data.Split(';') : new string[0]; if (killInfo.Length >= 9 && killInfo[0].Contains("ScriptKill")) - await Manager.AddKill(E.Origin, E.Target, S.GetHashCode(), S.CurrentMap.Name, killInfo[7], killInfo[8], killInfo[5], killInfo[6], killInfo[3], killInfo[4]); + await Manager.AddScriptKill(E.Origin, E.Target, S.GetHashCode(), S.CurrentMap.Name, killInfo[7], killInfo[8], killInfo[5], killInfo[6], killInfo[3], killInfo[4]); break; case Event.GType.Death: break; diff --git a/Plugins/Tests/Plugin.cs b/Plugins/Tests/Plugin.cs index 20f47e88f..1bfe2b064 100644 --- a/Plugins/Tests/Plugin.cs +++ b/Plugins/Tests/Plugin.cs @@ -202,8 +202,6 @@ namespace IW4MAdmin.Plugins Interval = DateTime.Now; if (S.ClientNum > 0) { - - //"K;26d2f66b95184934;1;allies;egor;5c56fef676b3818d;0;axis;1_din;m21_heartbeat_mp;98;MOD_RIFLE_BULLET;torso_lower"; var victimPlayer = S.Players.Where(pl => pl != null).ToList()[rand.Next(0, S.ClientNum - 1)]; var attackerPlayer = S.Players.Where(pl => pl != null).ToList()[rand.Next(0, S.ClientNum - 1)]; diff --git a/SharedLibrary/Database/Models/EFClient.cs b/SharedLibrary/Database/Models/EFClient.cs index 1cb058017..8304cee15 100644 --- a/SharedLibrary/Database/Models/EFClient.cs +++ b/SharedLibrary/Database/Models/EFClient.cs @@ -18,6 +18,7 @@ namespace SharedLibrary.Database.Models [Required] public int Connections { get; set; } [Required] + // in seconds public int TotalConnectionTime { get; set; } [Required] public DateTime FirstConnection { get; set; } diff --git a/SharedLibrary/File.cs b/SharedLibrary/File.cs index f81b9b28c..7a534ca8d 100644 --- a/SharedLibrary/File.cs +++ b/SharedLibrary/File.cs @@ -3,19 +3,53 @@ using System.Collections.Generic; using System.Text; using System.IO; using System.Net; +using System.Net.Http; namespace SharedLibrary { + public class RemoteFile : IFile + { + string Location; + string[] FileCache; + + public RemoteFile(string location) : base(string.Empty) + { + Location = location; + } + + private void Retrieve() + { + using (var cl = new HttpClient()) + FileCache = cl.GetStringAsync(Location).Result.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + } + + public override string[] Tail(int lineCount) + { + Retrieve(); + return FileCache; + } + + public override long Length() + { + Retrieve(); + return FileCache[0].Length; + } + + } + public class IFile { public IFile(String fileName) { - Name = fileName; - Handle = new StreamReader(new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); - sze = Handle.BaseStream.Length; + if (fileName != string.Empty) + { + Name = fileName; + Handle = new StreamReader(new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)); + sze = Handle.BaseStream.Length; + } } - public long Length() + public virtual long Length() { sze = Handle.BaseStream.Length; return sze; @@ -36,7 +70,7 @@ namespace SharedLibrary return Handle?.ReadToEnd(); } - public String[] Tail(int lineCount) + public virtual String[] Tail(int lineCount) { var buffer = new List(lineCount); string line; diff --git a/SharedLibrary/Helpers/AsyncStatus.cs b/SharedLibrary/Helpers/AsyncStatus.cs index c42d2fc92..73da78a63 100644 --- a/SharedLibrary/Helpers/AsyncStatus.cs +++ b/SharedLibrary/Helpers/AsyncStatus.cs @@ -40,7 +40,7 @@ namespace SharedLibrary.Helpers public void Update(Task T) { RequestedTask = T; - Console.WriteLine($"Starting Task {T.Id} "); + // Console.WriteLine($"Starting Task {T.Id} "); RequestedTask.Start(); if (TimesRun > 25) diff --git a/SharedLibrary/RCON.cs b/SharedLibrary/RCON.cs index 9c376342e..2780fc50e 100644 --- a/SharedLibrary/RCON.cs +++ b/SharedLibrary/RCON.cs @@ -26,12 +26,12 @@ namespace SharedLibrary.Network static string[] SendQuery(QueryType Type, Server QueryServer, string Parameters = "") { - if ((DateTime.Now - LastQuery).TotalMilliseconds < 30) - Task.Delay(30).Wait(); + if ((DateTime.Now - LastQuery).TotalMilliseconds < 100) + Task.Delay(100).Wait(); LastQuery = DateTime.Now; var ServerOOBConnection = new UdpClient(); - ServerOOBConnection.Client.SendTimeout = 5000; - ServerOOBConnection.Client.ReceiveTimeout = 5000; + ServerOOBConnection.Client.SendTimeout = 1000; + ServerOOBConnection.Client.ReceiveTimeout = 1000; var Endpoint = new IPEndPoint(IPAddress.Parse(QueryServer.GetIP()), QueryServer.GetPort()); string QueryString = String.Empty; @@ -139,7 +139,7 @@ namespace SharedLibrary.Network public static async Task> GetStatusAsync(this Server server) { -#if DEBUG +#if DEBUG && DEBUG_PLAYERS string[] response = await Task.Run(() => System.IO.File.ReadAllLines("players.txt")); #else string[] response = await Task.FromResult(SendQuery(QueryType.DVAR, server, "status")); diff --git a/SharedLibrary/Server.cs b/SharedLibrary/Server.cs index 8d19aa726..8a6571d01 100644 --- a/SharedLibrary/Server.cs +++ b/SharedLibrary/Server.cs @@ -140,11 +140,13 @@ namespace SharedLibrary /// Message to be sent to all players public async Task Broadcast(String Message) { -#if DEBUG - //return; -#endif + string sayCommand = (GameName == Game.IW4) ? "sayraw" : "say"; +#if !DEBUG await this.ExecuteCommandAsync($"{sayCommand} {Message}"); +#else + Logger.WriteVerbose(Message.StripColors()); +#endif } /// @@ -156,8 +158,12 @@ namespace SharedLibrary { string tellCommand = (GameName == Game.IW4) ? "tellraw" : "tell"; +#if !DEBUG if (Target.ClientNumber > -1 && Message.Length > 0 && Target.Level != Player.Permission.Console) await this.ExecuteCommandAsync($"{tellCommand} {Target.ClientNumber} {Message}^7"); +#else + Logger.WriteVerbose($"{Target.ClientNumber}->{Message.StripColors()}"); +#endif if (Target.Level == Player.Permission.Console) { diff --git a/SharedLibrary/SharedLibrary.csproj b/SharedLibrary/SharedLibrary.csproj index 3deb30bdd..dd143beed 100644 --- a/SharedLibrary/SharedLibrary.csproj +++ b/SharedLibrary/SharedLibrary.csproj @@ -86,6 +86,7 @@ ..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll True + diff --git a/_customcallbacks.gsc b/_customcallbacks.gsc index 9d1943aff..7f1523c83 100644 --- a/_customcallbacks.gsc +++ b/_customcallbacks.gsc @@ -13,9 +13,10 @@ init() Callback_PlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration ) { victim = self; + _attacker = attacker; if (!isDefined(attacker) || !isPlayer(attacker)) - attacker = victim; + _attacker = victim; - logPrint("ScriptKill;" + attacker.guid + ";" + victim.guid + ";" + attacker.origin + ";" + victim.origin + ";" + iDamage + ";" + sWeapon + ";" + sHitLoc + ";" + sMeansOfDeath + "\n"); + logPrint("ScriptKill;" + _attacker.guid + ";" + victim.guid + ";" + _attacker.origin + ";" + victim.origin + ";" + iDamage + ";" + sWeapon + ";" + sHitLoc + ";" + sMeansOfDeath + "\n"); self maps\mp\gametypes\_damage::Callback_PlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration ); } \ No newline at end of file