add official T4/WaW support for issue #178
CoD4x parser tweak to parse full guid as decimal
This commit is contained in:
parent
f03626c3ae
commit
02b910234a
@ -93,16 +93,25 @@ namespace IW4MAdmin.Application.EventParsers
|
|||||||
public virtual GameEvent GenerateGameEvent(string logLine)
|
public virtual GameEvent GenerateGameEvent(string logLine)
|
||||||
{
|
{
|
||||||
var timeMatch = Configuration.Time.PatternMatcher.Match(logLine);
|
var timeMatch = Configuration.Time.PatternMatcher.Match(logLine);
|
||||||
int gameTime = 0;
|
var gameTime = 0L;
|
||||||
|
|
||||||
if (timeMatch.Success)
|
if (timeMatch.Success)
|
||||||
{
|
{
|
||||||
gameTime = timeMatch
|
if (timeMatch.Values[0].Contains(":"))
|
||||||
.Values
|
{
|
||||||
.Skip(2)
|
gameTime = timeMatch
|
||||||
// this converts the timestamp into seconds passed
|
.Values
|
||||||
.Select((_value, index) => int.Parse(_value.ToString()) * (index == 0 ? 60 : 1))
|
.Skip(2)
|
||||||
.Sum();
|
// this converts the timestamp into seconds passed
|
||||||
|
.Select((_value, index) => long.Parse(_value.ToString()) * (index == 0 ? 60 : 1))
|
||||||
|
.Sum();
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gameTime = long.Parse(timeMatch.Values[0]);
|
||||||
|
}
|
||||||
|
|
||||||
// we want to strip the time from the log line
|
// we want to strip the time from the log line
|
||||||
logLine = logLine.Substring(timeMatch.Values.First().Length);
|
logLine = logLine.Substring(timeMatch.Values.First().Length);
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ namespace IW4MAdmin
|
|||||||
private readonly ITranslationLookup _translationLookup;
|
private readonly ITranslationLookup _translationLookup;
|
||||||
private readonly IMetaService _metaService;
|
private readonly IMetaService _metaService;
|
||||||
private const int REPORT_FLAG_COUNT = 4;
|
private const int REPORT_FLAG_COUNT = 4;
|
||||||
private int lastGameTime = 0;
|
private long lastGameTime = 0;
|
||||||
|
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
private readonly IServiceProvider _serviceProvider;
|
private readonly IServiceProvider _serviceProvider;
|
||||||
|
@ -44,6 +44,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ScriptPlugins", "ScriptPlug
|
|||||||
Plugins\ScriptPlugins\SampleScriptPluginCommand.js = Plugins\ScriptPlugins\SampleScriptPluginCommand.js
|
Plugins\ScriptPlugins\SampleScriptPluginCommand.js = Plugins\ScriptPlugins\SampleScriptPluginCommand.js
|
||||||
Plugins\ScriptPlugins\SharedGUIDKick.js = Plugins\ScriptPlugins\SharedGUIDKick.js
|
Plugins\ScriptPlugins\SharedGUIDKick.js = Plugins\ScriptPlugins\SharedGUIDKick.js
|
||||||
Plugins\ScriptPlugins\VPNDetection.js = Plugins\ScriptPlugins\VPNDetection.js
|
Plugins\ScriptPlugins\VPNDetection.js = Plugins\ScriptPlugins\VPNDetection.js
|
||||||
|
Plugins\ScriptPlugins\ParserT4.js = Plugins\ScriptPlugins\ParserT4.js
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{A848FCF1-8527-4AA8-A1AA-50D29695C678}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{A848FCF1-8527-4AA8-A1AA-50D29695C678}"
|
||||||
|
@ -23,10 +23,13 @@ var plugin = {
|
|||||||
rconParser.Configuration.Dvar.Pattern = '^"(.+)" is: "(.+)?" default: "(.+)?" info: "(.+)?"$';
|
rconParser.Configuration.Dvar.Pattern = '^"(.+)" is: "(.+)?" default: "(.+)?" info: "(.+)?"$';
|
||||||
rconParser.Configuration.Dvar.AddMapping(109, 2); // DVAR latched value
|
rconParser.Configuration.Dvar.AddMapping(109, 2); // DVAR latched value
|
||||||
rconParser.Configuration.Dvar.AddMapping(110, 4); // dvar info
|
rconParser.Configuration.Dvar.AddMapping(110, 4); // dvar info
|
||||||
|
rconParser.Configuration.GuidNumberStyle = 7; // Integer
|
||||||
|
rconParser.Configuration.NoticeLineSeparator = '. '; // CoD4x does not support \n in the client notice
|
||||||
rconParser.Version = 'CoD4 X - win_mingw-x86 build 963 Mar 12 2019';
|
rconParser.Version = 'CoD4 X - win_mingw-x86 build 963 Mar 12 2019';
|
||||||
rconParser.GameName = 1; // IW3
|
rconParser.GameName = 1; // IW3
|
||||||
|
|
||||||
eventParser.Configuration.GameDirectory = 'main';
|
eventParser.Configuration.GameDirectory = 'main';
|
||||||
|
eventParser.Configuration.GuidNumberStyle = 7; // Integer
|
||||||
eventParser.Version = 'CoD4 X - win_mingw-x86 build 963 Mar 12 2019';
|
eventParser.Version = 'CoD4 X - win_mingw-x86 build 963 Mar 12 2019';
|
||||||
eventParser.GameName = 1; // IW3
|
eventParser.GameName = 1; // IW3
|
||||||
eventParser.URLProtocolFormat = 'cod4://{{ip}}:{{port}}';
|
eventParser.URLProtocolFormat = 'cod4://{{ip}}:{{port}}';
|
||||||
|
30
Plugins/ScriptPlugins/ParserT4.js
Normal file
30
Plugins/ScriptPlugins/ParserT4.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
var rconParser;
|
||||||
|
var eventParser;
|
||||||
|
|
||||||
|
var plugin = {
|
||||||
|
author: 'RaidMax',
|
||||||
|
version: 0.1,
|
||||||
|
name: 'Call of Duty 5: World at War Parser',
|
||||||
|
isParser: true,
|
||||||
|
|
||||||
|
onEventAsync: function (gameEvent, server) {
|
||||||
|
},
|
||||||
|
|
||||||
|
onLoadAsync: function (manager) {
|
||||||
|
rconParser = manager.GenerateDynamicRConParser(this.name);
|
||||||
|
eventParser = manager.GenerateDynamicEventParser(this.name);
|
||||||
|
rconParser.Configuration.CommandPrefixes.RConResponse = '\xff\xff\xff\xffprint\n';
|
||||||
|
rconParser.Configuration.GuidNumberStyle = 7; // Integer
|
||||||
|
rconParser.Version = "Call of Duty Multiplayer COD_WaW MP build 1.7.1263 CL(350073) JADAMS2 Thu Oct 29 15:43:55 2009 win-x86";
|
||||||
|
|
||||||
|
eventParser.Configuration.GuidNumberStyle = 7; // Integer
|
||||||
|
eventParser.GameName = 5; // T4
|
||||||
|
eventParser.Version = "Call of Duty Multiplayer COD_WaW MP build 1.7.1263 CL(350073) JADAMS2 Thu Oct 29 15:43:55 2009 win-x86";
|
||||||
|
},
|
||||||
|
|
||||||
|
onUnloadAsync: function () {
|
||||||
|
},
|
||||||
|
|
||||||
|
onTickAsync: function (server) {
|
||||||
|
}
|
||||||
|
};
|
@ -235,7 +235,7 @@ namespace SharedLibraryCore
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Specifies the game time offset as printed in the log
|
/// Specifies the game time offset as printed in the log
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? GameTime { get; set; }
|
public long? GameTime { get; set; }
|
||||||
public EFClient Origin;
|
public EFClient Origin;
|
||||||
public EFClient Target;
|
public EFClient Target;
|
||||||
public EFClient ImpersonationOrigin { get; set; }
|
public EFClient ImpersonationOrigin { get; set; }
|
||||||
|
@ -366,7 +366,8 @@ namespace SharedLibraryCore
|
|||||||
/// <returns>true if is bot guid, otherwise false</returns>
|
/// <returns>true if is bot guid, otherwise false</returns>
|
||||||
public static bool IsBotGuid(this string guid)
|
public static bool IsBotGuid(this string guid)
|
||||||
{
|
{
|
||||||
return guid.Contains("bot") || guid == "0";
|
// todo: revisit this magic number for cod5 bot guid
|
||||||
|
return guid.Contains("bot") || guid == "0" || guid == "1075569476";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user