diff --git a/AutoTrackR2/KillTrackR_MainScript.ps1 b/AutoTrackR2/KillTrackR_MainScript.ps1 index de51013..34d2dc3 100644 --- a/AutoTrackR2/KillTrackR_MainScript.ps1 +++ b/AutoTrackR2/KillTrackR_MainScript.ps1 @@ -2,7 +2,7 @@ # GitHub: https://github.com/BubbaGumpShrump/AutoTrackR2 # Script version -$script:TrackRver = "2.06-koda-mod-opt" +$script:TrackRver = "2.07-koda-mod" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 @@ -13,6 +13,7 @@ $script:AppName = "AutoTrackR2" $script:ScriptFolder = Join-Path -Path $env:LOCALAPPDATA -ChildPath $AppName $script:ConfigFileName= "config.ini" $script:ConfigFile = "$script:ScriptFolder\$script:ConfigFileName" + # File Data $script:CSVFileName = "Kill-log.csv" $script:CSVFile = "$script:ScriptFolder\$script:CSVFileName" @@ -68,8 +69,8 @@ $prefixes = @( # Define the regex pattern to extract information $script:KillPattern = "<Actor Death> CActor::Kill: '(?<VictimPilot>[^']+)' \[\d+\] in zone '(?<VictimShip>[^']+)' killed by '(?<AgressorPilot>[^']+)' \[[^']+\] using '(?<Weapon>[^']+)' \[Class (?<Class>[^\]]+)\] with damage type '(?<DamageType>[^']+)'" -$script:PuPattern = '<\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z> \[Notice\] <ContextEstablisherTaskFinished> establisher="CReplicationModel" message="CET completed" taskname="StopLoadingScreen" state=[^ ]+ status="Finished" runningTime=\d+\.\d+ numRuns=\d+ map="megamap" gamerules="SC_Default" sessionId="[a-f0-9\-]+" \[Team_Network\]\[Network\]\[Replication\]\[Loading\]\[Persistence\]' -$script:AcPattern = "ArenaCommanderFeature" +$script:PuPattern = '<\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z> \[Notice\] <ContextEstablisherTaskFinished> establisher="CReplicationModel" message="CET completed" taskname="StopLoadingScreen" state=[^ ]+ status="Finished" runningTime=\d+\.\d+ numRuns=\d+ map="megamap" gamerules="(?<Gamerules>[^"]+)" sessionId="[a-f0-9\-]+" \[Team_Network\]\[Network\]\[Replication\]\[Loading\]\[Persistence\]' +# $script:AcPattern = "Requesting Mode Change" # "ArenaCommanderFeature" $script:LoadoutPattern = '\[InstancedInterior\] OnEntityLeaveZone - InstancedInterior \[(?<InstancedInterior>[^\]]+)\] \[\d+\] -> Entity \[(?<Entity>[^\]]+)\] \[\d+\] -- m_openDoors\[\d+\], m_managerGEID\[(?<ManagerGEID>\d+)\], m_ownerGEID\[(?<OwnerGEID>[^\[]+)\]' $script:ShipManPattern = "^(" + ($prefixes -join "|") + ")" # $script:LoginPattern = "\[Notice\] <AccountLoginCharacterStatus_Character> Character: createdAt [A-Za-z0-9]+ - updatedAt [A-Za-z0-9]+ - geid [A-Za-z0-9]+ - accountId [A-Za-z0-9]+ - name (?<Player>[A-Za-z0-9_-]+) - state STATE_CURRENT" # KEEP THIS INCASE LEGACY LOGIN IS REMOVED @@ -255,28 +256,6 @@ function Read-LogEntry { Write-OutputData "LogInfo=GameVersion: $script:GameVersion" } - <# why sould this nessesary? - # Get Logged-in User - if ($initialised -and $line -match $script:LoginPattern) { - $script:UserName = $matches['Player'] - Write-OutputData "PlayerName=$script:UserName" - } - If ($initialised -eq $false -and $line -match $script:LoginPattern) { - # Load gamelog into memory - $authLog = Get-Content -Path $script:logFilePath - $authLog = $authlog -match $script:LoginPattern - $authLog = $authLog | Out-String - - # Extract User Name - $nameExtract = "name\s+(?<PlayerName>[^\s-]+)" - - If ($authLog -match $nameExtract -and $script:UserName -ne $nameExtract){ - $script:UserName = $matches['PlayerName'] - Write-OutputData "PlayerName=$script:UserName" - } - } - #> - # Get Logged-in User if ($line -match $script:LoginPattern) { $script:UserName = $matches['Player'] @@ -305,25 +284,28 @@ function Read-LogEntry { } #Get Game Mode - if ($line -match $script:PuPattern) { + if ($line -match $script:PuPattern) { + Write-OutputData "LogInfo=Gamerules: $($matches.Gamerules)" + if ($($matches.Gamerules) -match "SC_Default") { $script:GameMode = "PU" - Write-OutputData "GameMode=$script:GameMode" + + }else{ + $script:GameMode = "$($matches.Gamerules)" } - if ($line -match $script:AcPattern) { - $script:GameMode = "AC" Write-OutputData "GameMode=$script:GameMode" } +# if (-not $initialised -and $line -match $script:AcPattern) { +# $script:GameMode = "AC" +# Write-OutputData "GameMode=$script:GameMode" +# } + # Apply the regex pattern to the line if (-not $initialised -and $line -match $script:KillPattern) { Write-OutputData "LogInfo=KillPattern detected" $eventData = New-KillEvent -data $matches -location $location -vehicle_id $vehicle_id $type = New-EventType -eventData $eventData -userName $script:UserName -killLog $config.KillLog -deathLog $config.DeathLog -otherLog $config.OtherLog - #if(Test-EventForPVE -eventData $eventData -type $type -and -ne "none"){ - # if($type -eq "Death"){$type = "Other"}else{$type = "none"} - #} - if ($type -ne "none") { if ($type -ne "Other") { $playerInfo = Get-PlayerInfo $(if ($type -eq "Kill") { $eventData.VictimPilot } else { $eventData.AgressorPilot }) @@ -431,7 +413,6 @@ function New-KillEvent { AgressorShip = $agressorShip Weapon = $weapon DamageType = $damageType - #Location = if ($data.VictimShip -ne "vehicle_id") { $location } else { "NONE" } #I think this was an error Location = if ($data.VictimShip -ne $vehicle_id) { $location } else { "none" } } } diff --git a/AutoTrackR2/UpdatePage.xaml.cs b/AutoTrackR2/UpdatePage.xaml.cs index 9fa4fa9..11f4d24 100644 --- a/AutoTrackR2/UpdatePage.xaml.cs +++ b/AutoTrackR2/UpdatePage.xaml.cs @@ -9,7 +9,7 @@ namespace AutoTrackR2 { public partial class UpdatePage : UserControl { - private string currentVersion = "v2.06-koda-mod"; + private string currentVersion = "v2.07"; private string latestVersion; public UpdatePage() @@ -86,8 +86,8 @@ namespace AutoTrackR2 private bool IsNewVersionAvailable(string currentVersion, string latestVersion) { - // Compare version strings (you can implement more complex version parsing logic if needed) - return string.Compare(currentVersion, latestVersion, StringComparison.Ordinal) < 0; + // Return true if the versions are different + return !currentVersion.Equals(latestVersion, StringComparison.Ordinal); } private async void InstallButton_Click(object sender, RoutedEventArgs e)