mirror of
https://github.com/BubbaGumpShrump/AutoTrackR2.git
synced 2025-06-17 20:29:07 +00:00
Compare commits
32 commits
v2.06-stab
...
default
Author | SHA1 | Date | |
---|---|---|---|
|
fd0a47b358 | ||
|
b7e888e351 | ||
|
6d7f789b89 | ||
|
12acdc27c0 | ||
|
2a4a4ebe42 | ||
|
82b9e365c1 | ||
|
408c071a85 | ||
|
bab96123c5 | ||
|
a09a99c064 | ||
|
bd8bbfb365 | ||
|
49dfbb2291 | ||
|
dfc2dd5477 | ||
|
e2df69526d | ||
|
1236f8b4d6 | ||
|
b680debb49 | ||
|
e5f968633d | ||
|
4a001801aa | ||
|
388b1b774e | ||
|
365a3ba08d | ||
|
1cc397ee34 | ||
|
69ef954d58 | ||
|
fe565b1abd | ||
|
9400a087e2 | ||
|
77a3c936fd | ||
|
d59fecfb2b | ||
|
b726fb4b7b | ||
|
e002e844a1 | ||
|
18924e67d8 | ||
|
3022ad03ed | ||
|
e43286bde1 | ||
|
e53fdc3c5d | ||
|
693904e53c |
15 changed files with 300 additions and 128 deletions
71
.github/workflows/build.yml
vendored
Normal file
71
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
name: Build and Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [default]
|
||||||
|
pull_request:
|
||||||
|
branches: [default]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Extract version
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
$version = (Select-String -Path "AutoTrackR2/UpdatePage.xaml.cs" -Pattern 'currentVersion = "(.+?)"' | Select-Object -First 1).Matches.Groups[1].Value
|
||||||
|
echo "version=$version" >> $env:GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Setup .NET
|
||||||
|
uses: actions/setup-dotnet@v3
|
||||||
|
with:
|
||||||
|
dotnet-version: "9.0.x"
|
||||||
|
|
||||||
|
- name: Restore dependencies
|
||||||
|
run: dotnet restore AutoTrackR2.sln
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: dotnet build AutoTrackR2.sln --configuration Release --no-restore
|
||||||
|
|
||||||
|
- name: List build output directories
|
||||||
|
run: |
|
||||||
|
Write-Host "Listing build output directories:"
|
||||||
|
Get-ChildItem -Recurse -Directory -Filter "Release" | ForEach-Object { Write-Host $_.FullName }
|
||||||
|
|
||||||
|
- name: Create artifacts directory
|
||||||
|
run: mkdir artifacts
|
||||||
|
|
||||||
|
- name: Copy build output
|
||||||
|
run: |
|
||||||
|
$releaseDir = Get-ChildItem -Recurse -Directory -Filter "Release" | Select-Object -First 1
|
||||||
|
if ($releaseDir) {
|
||||||
|
Write-Host "Copying from: $($releaseDir.FullName)"
|
||||||
|
Copy-Item "$($releaseDir.FullName)\*" "artifacts\" -Recurse
|
||||||
|
} else {
|
||||||
|
Write-Host "No Release directory found"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: Upload application artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: AutoTrackR2-${{ steps.version.outputs.version }}
|
||||||
|
path: artifacts/
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
|
- name: Upload visorwipe script
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: visorwipe.ahk
|
||||||
|
path: AutoTrackR2/scripts/visorwipe.ahk
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
|
- name: Upload videorecord script
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: videorecord.ahk
|
||||||
|
path: AutoTrackR2/scripts/videorecord.ahk
|
||||||
|
retention-days: 5
|
26
AutoTrackR2/.vscode/launch.json
vendored
Normal file
26
AutoTrackR2/.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
// Use IntelliSense to find out which attributes exist for C# debugging
|
||||||
|
// Use hover for the description of the existing attributes
|
||||||
|
// For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md
|
||||||
|
"name": ".NET Core Launch (console)",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "build",
|
||||||
|
// If you have changed target frameworks, make sure to update the program path.
|
||||||
|
"program": "${workspaceFolder}/bin/Debug/net9.0-windows/AutoTrackR2.dll",
|
||||||
|
"args": [],
|
||||||
|
"cwd": "${workspaceFolder}",
|
||||||
|
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
|
||||||
|
"console": "internalConsole",
|
||||||
|
"stopAtEntry": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": ".NET Core Attach",
|
||||||
|
"type": "coreclr",
|
||||||
|
"request": "attach"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
41
AutoTrackR2/.vscode/tasks.json
vendored
Normal file
41
AutoTrackR2/.vscode/tasks.json
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "build",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"build",
|
||||||
|
"${workspaceFolder}/AutoTrackR2.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary;ForceNoAlign"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "publish",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"publish",
|
||||||
|
"${workspaceFolder}/AutoTrackR2.csproj",
|
||||||
|
"/property:GenerateFullPaths=true",
|
||||||
|
"/consoleloggerparameters:NoSummary;ForceNoAlign"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "watch",
|
||||||
|
"command": "dotnet",
|
||||||
|
"type": "process",
|
||||||
|
"args": [
|
||||||
|
"watch",
|
||||||
|
"run",
|
||||||
|
"--project",
|
||||||
|
"${workspaceFolder}/AutoTrackR2.csproj"
|
||||||
|
],
|
||||||
|
"problemMatcher": "$msCompile"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
Before ![]() (image error) Size: 68 KiB After ![]() (image error) Size: 297 KiB ![]() ![]() |
BIN
AutoTrackR2/Assets/IP.png
Normal file
BIN
AutoTrackR2/Assets/IP.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 618 KiB |
BIN
AutoTrackR2/Assets/cinderborn.png
Normal file
BIN
AutoTrackR2/Assets/cinderborn.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 114 KiB |
BIN
AutoTrackR2/Assets/shadowguard.png
Normal file
BIN
AutoTrackR2/Assets/shadowguard.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 5.3 MiB |
|
@ -17,6 +17,7 @@
|
||||||
<None Remove="Assets\BlightVeil.png" />
|
<None Remove="Assets\BlightVeil.png" />
|
||||||
<None Remove="Assets\BOBGREL.png" />
|
<None Remove="Assets\BOBGREL.png" />
|
||||||
<None Remove="Assets\chibifox.png" />
|
<None Remove="Assets\chibifox.png" />
|
||||||
|
<None Remove="Assets\cinderborn.png" />
|
||||||
<None Remove="Assets\D3VL.png" />
|
<None Remove="Assets\D3VL.png" />
|
||||||
<None Remove="Assets\EMP.png" />
|
<None Remove="Assets\EMP.png" />
|
||||||
<None Remove="Assets\Gankhub.png" />
|
<None Remove="Assets\Gankhub.png" />
|
||||||
|
@ -26,6 +27,7 @@
|
||||||
<None Remove="Assets\NMOS.png" />
|
<None Remove="Assets\NMOS.png" />
|
||||||
<None Remove="Assets\NW.png" />
|
<None Remove="Assets\NW.png" />
|
||||||
<None Remove="Assets\RACKETEERS.png" />
|
<None Remove="Assets\RACKETEERS.png" />
|
||||||
|
<None Remove="Assets\shadowguard.png" />
|
||||||
<None Remove="Assets\SHADOWMOSES.png" />
|
<None Remove="Assets\SHADOWMOSES.png" />
|
||||||
<None Remove="Assets\VOX.png" />
|
<None Remove="Assets\VOX.png" />
|
||||||
<None Remove="Assets\WRITH.png" />
|
<None Remove="Assets\WRITH.png" />
|
||||||
|
@ -42,9 +44,18 @@
|
||||||
<Resource Include="Assets\BlightVeil.png">
|
<Resource Include="Assets\BlightVeil.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
<Resource Include="Assets\cinderborn.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Resource>
|
||||||
<Resource Include="Assets\Gankhub.png">
|
<Resource Include="Assets\Gankhub.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
<Resource Include="Assets\HEX.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Resource>
|
||||||
|
<Resource Include="Assets\IP.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Resource>
|
||||||
<Resource Include="Assets\NMOS.png">
|
<Resource Include="Assets\NMOS.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
@ -72,9 +83,6 @@
|
||||||
<Resource Include="Assets\AutoTrackR.png">
|
<Resource Include="Assets\AutoTrackR.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
<Resource Include="Assets\HEX.png">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Resource>
|
|
||||||
<Resource Include="Assets\HIT.png">
|
<Resource Include="Assets\HIT.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
@ -87,6 +95,9 @@
|
||||||
<Resource Include="Assets\RACKETEERS.png">
|
<Resource Include="Assets\RACKETEERS.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
<Resource Include="Assets\shadowguard.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Resource>
|
||||||
<Resource Include="Assets\SHADOWMOSES.png">
|
<Resource Include="Assets\SHADOWMOSES.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
<TextBlock Text="Theme:" Foreground="{DynamicResource TextBrush}" FontSize="16" Margin="0,7,0,5"/>
|
<TextBlock Text="Theme:" Foreground="{DynamicResource TextBrush}" FontSize="16" Margin="0,7,0,5"/>
|
||||||
<Slider x:Name="ThemeSlider"
|
<Slider x:Name="ThemeSlider"
|
||||||
Minimum="0"
|
Minimum="0"
|
||||||
Maximum="20"
|
Maximum="21"
|
||||||
Value="0"
|
Value="0"
|
||||||
TickFrequency="1"
|
TickFrequency="1"
|
||||||
IsSnapToTickEnabled="True"
|
IsSnapToTickEnabled="True"
|
||||||
|
|
|
@ -221,15 +221,15 @@ namespace AutoTrackR2
|
||||||
);
|
);
|
||||||
ChangeLogo("/Assets/WRITH.png", (Color)ColorConverter.ConvertFromString("#ff0000"));
|
ChangeLogo("/Assets/WRITH.png", (Color)ColorConverter.ConvertFromString("#ff0000"));
|
||||||
break;
|
break;
|
||||||
case 9: // VOX Theme
|
case 9: // Cinderborn Theme
|
||||||
UpdateThemeColors(
|
UpdateThemeColors(
|
||||||
(Color)ColorConverter.ConvertFromString("#C0C0C0"), // Accent/Border
|
(Color)ColorConverter.ConvertFromString("#E4080A"), // Accent/Border
|
||||||
(Color)ColorConverter.ConvertFromString("#1C1C1C"), // Button
|
(Color)ColorConverter.ConvertFromString("#1C1C1C"), // Button
|
||||||
(Color)ColorConverter.ConvertFromString("#424242"), // Background
|
(Color)ColorConverter.ConvertFromString("#000000"), // Background
|
||||||
(Color)ColorConverter.ConvertFromString("#FFD700"), // Text
|
(Color)ColorConverter.ConvertFromString("#FE934C"), // Text
|
||||||
(Color)ColorConverter.ConvertFromString("#817E79") // AltText
|
(Color)ColorConverter.ConvertFromString("#FE934C") // AltText
|
||||||
);
|
);
|
||||||
ChangeLogo("/Assets/VOX.png", (Color)ColorConverter.ConvertFromString("#FFD700"));
|
ChangeLogo("/Assets/cinderborn.png", (Color)ColorConverter.ConvertFromString("#DE5900"));
|
||||||
break;
|
break;
|
||||||
case 10: // EMP Theme
|
case 10: // EMP Theme
|
||||||
UpdateThemeColors(
|
UpdateThemeColors(
|
||||||
|
@ -281,15 +281,15 @@ namespace AutoTrackR2
|
||||||
);
|
);
|
||||||
ChangeLogo("/Assets/ShadowMoses.png", (Color)ColorConverter.ConvertFromString("#FF69B4"));
|
ChangeLogo("/Assets/ShadowMoses.png", (Color)ColorConverter.ConvertFromString("#FF69B4"));
|
||||||
break;
|
break;
|
||||||
case 15: // Mongrel Squad
|
case 15: // Shadow Guardian
|
||||||
UpdateThemeColors(
|
UpdateThemeColors(
|
||||||
(Color)ColorConverter.ConvertFromString("#00416A"), // Accent/Border - NyQuil Dark Blue
|
(Color)ColorConverter.ConvertFromString("#AC9248"), // Accent/Border - NyQuil Dark Blue
|
||||||
(Color)ColorConverter.ConvertFromString("#1B3F5C"), // Button - Midnight Blue
|
(Color)ColorConverter.ConvertFromString("#000920"), // Button - Midnight Blue
|
||||||
(Color)ColorConverter.ConvertFromString("#002E4D"), // Background - Deep NyQuil Blue
|
(Color)ColorConverter.ConvertFromString("#000000"), // Background - Deep NyQuil Blue
|
||||||
(Color)ColorConverter.ConvertFromString("#B0C4DE"), // Text - Light Steel Blue
|
(Color)ColorConverter.ConvertFromString("#B9B9B9"), // Text - Light Steel Blue
|
||||||
(Color)ColorConverter.ConvertFromString("#4F94CD") // AltText - Steel Blue
|
(Color)ColorConverter.ConvertFromString("#D20103") // AltText - Steel Blue
|
||||||
);
|
);
|
||||||
ChangeLogo("/Assets/Bobgrel.png", (Color)ColorConverter.ConvertFromString("#00BFFF"));
|
ChangeLogo("/Assets/shadowguard.png", (Color)ColorConverter.ConvertFromString("#E4080A"));
|
||||||
break;
|
break;
|
||||||
case 16: // Feezy
|
case 16: // Feezy
|
||||||
UpdateThemeColors(
|
UpdateThemeColors(
|
||||||
|
@ -341,6 +341,16 @@ namespace AutoTrackR2
|
||||||
);
|
);
|
||||||
ChangeLogo("/Assets/Gankhub.png");
|
ChangeLogo("/Assets/Gankhub.png");
|
||||||
break;
|
break;
|
||||||
|
case 21: // IronPoint
|
||||||
|
UpdateThemeColors(
|
||||||
|
(Color)ColorConverter.ConvertFromString("#C83300"), // Accent/Border
|
||||||
|
(Color)ColorConverter.ConvertFromString("#2D2D2D"), // Button
|
||||||
|
(Color)ColorConverter.ConvertFromString("#161515"), // Background
|
||||||
|
(Color)ColorConverter.ConvertFromString("#ffffff"), // Text
|
||||||
|
(Color)ColorConverter.ConvertFromString("#aaaaaa") // AltText
|
||||||
|
);
|
||||||
|
ChangeLogo("/Assets/IP.png", (Color)ColorConverter.ConvertFromString("#3F1210"));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
$TrackRver = "2.06"
|
$TrackRver = "2.09"
|
||||||
|
|
||||||
# Path to the config file
|
# Path to the config file
|
||||||
$appName = "AutoTrackR2"
|
$appName = "AutoTrackR2"
|
||||||
|
@ -32,41 +32,37 @@ $videoRecord = $config.VideoRecord
|
||||||
$offlineMode = $config.OfflineMode
|
$offlineMode = $config.OfflineMode
|
||||||
|
|
||||||
if ($offlineMode -eq 1){
|
if ($offlineMode -eq 1){
|
||||||
$offlineMode = $true
|
$offlineMode = $true
|
||||||
} else {
|
} else {
|
||||||
$offlineMode = $false
|
$offlineMode = $false
|
||||||
}
|
}
|
||||||
Write-Output "PlayerName=OfflineMode: $offlineMode"
|
Write-Output "PlayerName=OfflineMode: $offlineMode"
|
||||||
|
|
||||||
if ($videoRecord -eq 1){
|
if ($videoRecord -eq 1){
|
||||||
$videoRecord = $true
|
$videoRecord = $true
|
||||||
} else {
|
} else {
|
||||||
$videoRecord = $false
|
$videoRecord = $false
|
||||||
}
|
}
|
||||||
Write-Output "PlayerName=VideoRecord: $videoRecord"
|
Write-Output "PlayerName=VideoRecord: $videoRecord"
|
||||||
|
|
||||||
if ($visorWipe -eq 1){
|
if ($visorWipe -eq 1){
|
||||||
$visorWipe = $true
|
$visorWipe = $true
|
||||||
} else {
|
} else {
|
||||||
$visorWipe = $false
|
$visorWipe = $false
|
||||||
}
|
}
|
||||||
Write-Output "PlayerName=VisorWipe: $visorWipe"
|
Write-Output "PlayerName=VisorWipe: $visorWipe"
|
||||||
|
|
||||||
If (Test-Path $logFilePath) {
|
If (Test-Path $logFilePath) {
|
||||||
Write-Output "PlayerName=Logfile found"
|
Write-Output "PlayerName=Logfile found"
|
||||||
} else {
|
} else {
|
||||||
Write-Output "Logfile not found."
|
Write-Output "Logfile not found."
|
||||||
}
|
}
|
||||||
|
|
||||||
If ($null -ne $apiUrl){
|
If ($null -ne $apiUrl){
|
||||||
if ($apiUrl -notlike "*/register-kill") {
|
if ($apiUrl -notlike "*/register-kill") {
|
||||||
if ($apiUrl -like "*/"){
|
$apiUrl = $apiUrl.TrimEnd("/") + "/register-kill"
|
||||||
$apiUrl = $apiUrl + "register-kill"
|
}
|
||||||
}
|
Write-output "PlayerName=$apiURL"
|
||||||
if ($apiUrl -notlike "*/"){
|
|
||||||
$apiUrl = $apiUrl + "/register-kill"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Write-output "PlayerName=$apiURL"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ship Manufacturers
|
# Ship Manufacturers
|
||||||
|
@ -93,9 +89,9 @@ $prefixes = @(
|
||||||
|
|
||||||
# Define the regex pattern to extract information
|
# Define the regex pattern to extract information
|
||||||
$killPattern = "<Actor Death> CActor::Kill: '(?<EnemyPilot>[^']+)' \[\d+\] in zone '(?<EnemyShip>[^']+)' killed by '(?<Player>[^']+)' \[[^']+\] using '(?<Weapon>[^']+)' \[Class (?<Class>[^\]]+)\] with damage type '(?<DamageType>[^']+)'"
|
$killPattern = "<Actor Death> CActor::Kill: '(?<EnemyPilot>[^']+)' \[\d+\] in zone '(?<EnemyShip>[^']+)' killed by '(?<Player>[^']+)' \[[^']+\] using '(?<Weapon>[^']+)' \[Class (?<Class>[^\]]+)\] with damage type '(?<DamageType>[^']+)'"
|
||||||
$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\]'
|
$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=[^\s()]+\(\d+\) status="Finished" runningTime=\d+\.\d+ numRuns=\d+ map="megamap" gamerules="SC_Default" sessionId="[a-f0-9\-]+" \[Team_Network\]\[Network\]\[Replication\]\[Loading\]\[Persistence\]'
|
||||||
$acPattern = "ArenaCommanderFeature"
|
$loadoutPattern = '<Jump Drive State Changed>.*.adam: (?<ShipName>.*.) in'
|
||||||
$loadoutPattern = '\[InstancedInterior\] OnEntityLeaveZone - InstancedInterior \[(?<InstancedInterior>[^\]]+)\] \[\d+\] -> Entity \[(?<Entity>[^\]]+)\] \[\d+\] -- m_openDoors\[\d+\], m_managerGEID\[(?<ManagerGEID>\d+)\], m_ownerGEID\[(?<OwnerGEID>[^\[]+)\]'
|
$acPattern = "Requesting Mode Change" # "ArenaCommanderFeature"
|
||||||
$shipManPattern = "^(" + ($prefixes -join "|") + ")"
|
$shipManPattern = "^(" + ($prefixes -join "|") + ")"
|
||||||
# $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
|
# $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
|
||||||
$loginPattern = "\[Notice\] <Legacy login response> \[CIG-net\] User Login Success - Handle\[(?<Player>[A-Za-z0-9_-]+)\]"
|
$loginPattern = "\[Notice\] <Legacy login response> \[CIG-net\] User Login Success - Handle\[(?<Player>[A-Za-z0-9_-]+)\]"
|
||||||
|
@ -122,7 +118,7 @@ if (Test-Path "$scriptFolder\Kill-Log.csv") {
|
||||||
$currentDate = Get-Date
|
$currentDate = Get-Date
|
||||||
$dateFormat = "dd MMM yyyy HH:mm UTC"
|
$dateFormat = "dd MMM yyyy HH:mm UTC"
|
||||||
foreach ($kill in $historicKills) {
|
foreach ($kill in $historicKills) {
|
||||||
$killDate = [datetime]::ParseExact($kill.KillTime, $dateFormat, [System.Globalization.CultureInfo]::InvariantCulture)
|
$killDate = [datetime]::ParseExact($kill.KillTime.Trim(), $dateFormat, [System.Globalization.CultureInfo]::InvariantCulture)
|
||||||
If ($killdate.year -eq $currentDate.Year -and $killdate.month -eq $currentDate.Month) {
|
If ($killdate.year -eq $currentDate.Year -and $killdate.month -eq $currentDate.Month) {
|
||||||
$global:killTally++
|
$global:killTally++
|
||||||
}
|
}
|
||||||
|
@ -152,19 +148,13 @@ Do {
|
||||||
}
|
}
|
||||||
# Get Loadout
|
# Get Loadout
|
||||||
if ($line -match $loadoutPattern) {
|
if ($line -match $loadoutPattern) {
|
||||||
$entity = $matches['Entity']
|
If ($matches['ShipName'] -match $cleanupPattern){
|
||||||
$ownerGEID = $matches['OwnerGEID']
|
|
||||||
|
|
||||||
If ($ownerGEID -eq $global:userName -and $entity -match $shipManPattern) {
|
|
||||||
$tryloadOut = $entity
|
|
||||||
If ($tryloadOut -match $cleanupPattern){
|
|
||||||
if ($null -ne $matches[1]){
|
if ($null -ne $matches[1]){
|
||||||
$global:loadOut = $matches[1]
|
$global:loadOut = $matches[1]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
Write-Output "PlayerShip=$global:loadOut"
|
||||||
}
|
}
|
||||||
Write-Output "PlayerShip=$global:loadOut"
|
|
||||||
|
|
||||||
If ($line -match $versionPattern){
|
If ($line -match $versionPattern){
|
||||||
$global:GameVersion = $matches['gameversion']
|
$global:GameVersion = $matches['gameversion']
|
||||||
|
@ -254,15 +244,18 @@ function Read-LogEntry {
|
||||||
if ($damageType -eq "Bullet" -or $weapon -like "apar_special_ballistic*") {
|
if ($damageType -eq "Bullet" -or $weapon -like "apar_special_ballistic*") {
|
||||||
$ship = "Player"
|
$ship = "Player"
|
||||||
$enemyShip = "Player"
|
$enemyShip = "Player"
|
||||||
|
$global:got_location = "NONE"
|
||||||
}
|
}
|
||||||
If ($ship -match $cleanupPattern){
|
If ($ship -match $cleanupPattern){
|
||||||
$ship = $matches[1]
|
$ship = $matches[1]
|
||||||
}
|
}
|
||||||
if ($ship -notmatch $shipManPattern){
|
if ($ship -notmatch $shipManPattern){
|
||||||
$ship = "Player"
|
$ship = "Player"
|
||||||
|
$global:got_location = "NONE"
|
||||||
}
|
}
|
||||||
If ($enemyShip -notmatch $shipManPattern -and $enemyShip -notlike "Passenger" ) {
|
If ($enemyShip -notmatch $shipManPattern -and $enemyShip -notlike "Passenger" ) {
|
||||||
$enemyShip = "Player"
|
$enemyShip = "Player"
|
||||||
|
$global:got_location = "NONE"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Repeatedly remove all suffixes
|
# Repeatedly remove all suffixes
|
||||||
|
@ -370,6 +363,7 @@ function Read-LogEntry {
|
||||||
|
|
||||||
# Create an object to hold the data
|
# Create an object to hold the data
|
||||||
$killData = [PSCustomObject]@{
|
$killData = [PSCustomObject]@{
|
||||||
|
Kill = "Kill"
|
||||||
KillTime = $killTime
|
KillTime = $killTime
|
||||||
EnemyPilot = $enemyPilot
|
EnemyPilot = $enemyPilot
|
||||||
EnemyShip = $enemyShip
|
EnemyShip = $enemyShip
|
||||||
|
@ -469,18 +463,15 @@ function Read-LogEntry {
|
||||||
}
|
}
|
||||||
|
|
||||||
#Set loadout
|
#Set loadout
|
||||||
if ($line -match $loadoutPattern) {
|
if ($line -match $loadoutPattern) {
|
||||||
$entity = $matches['Entity']
|
If ($matches['ShipName'] -match $cleanupPattern){
|
||||||
$ownerGEID = $matches['OwnerGEID']
|
if ($null -ne $matches[1]){
|
||||||
|
$global:loadOut = $matches[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Output "PlayerShip=$global:loadOut"
|
||||||
|
}
|
||||||
|
|
||||||
If ($ownerGEID -eq $global:userName -and $entity -match $shipManPattern) {
|
|
||||||
$tryloadOut = $entity
|
|
||||||
If ($tryloadOut -match $cleanupPattern){
|
|
||||||
$global:loadOut = $matches[1]
|
|
||||||
}
|
|
||||||
Write-Output "PlayerShip=$global:loadOut"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -517,4 +508,4 @@ finally {
|
||||||
$reader.Close()
|
$reader.Close()
|
||||||
$fileStream.Close()
|
$fileStream.Close()
|
||||||
}
|
}
|
||||||
#>
|
#>
|
||||||
|
|
|
@ -9,7 +9,7 @@ namespace AutoTrackR2
|
||||||
{
|
{
|
||||||
public partial class UpdatePage : UserControl
|
public partial class UpdatePage : UserControl
|
||||||
{
|
{
|
||||||
private string currentVersion = "v2.06-release";
|
private string currentVersion = "v2.09";
|
||||||
private string latestVersion;
|
private string latestVersion;
|
||||||
|
|
||||||
public UpdatePage()
|
public UpdatePage()
|
||||||
|
@ -86,8 +86,8 @@ namespace AutoTrackR2
|
||||||
|
|
||||||
private bool IsNewVersionAvailable(string currentVersion, string latestVersion)
|
private bool IsNewVersionAvailable(string currentVersion, string latestVersion)
|
||||||
{
|
{
|
||||||
// Compare version strings (you can implement more complex version parsing logic if needed)
|
// Return true if the versions are different
|
||||||
return string.Compare(currentVersion, latestVersion, StringComparison.Ordinal) < 0;
|
return !currentVersion.Equals(latestVersion, StringComparison.Ordinal);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void InstallButton_Click(object sender, RoutedEventArgs e)
|
private async void InstallButton_Click(object sender, RoutedEventArgs e)
|
||||||
|
|
2
AutoTrackR2/scripts/videorecord.ahk
Normal file
2
AutoTrackR2/scripts/videorecord.ahk
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
; AutoHotkey v2 script to press Win + Alt + G
|
||||||
|
Send("{LWin Down}{Alt Down}g{Alt Up}{LWin Up}") ; Simulate pressing Win + Alt + G
|
2
AutoTrackR2/scripts/visorwipe.ahk
Normal file
2
AutoTrackR2/scripts/visorwipe.ahk
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
; AutoHotkey v2 script to press Alt + X
|
||||||
|
Send("{Alt Down}x{Alt Up}") ; Simulate pressing Alt + X
|
148
README.md
148
README.md
|
@ -1,90 +1,108 @@
|
||||||
AutoTrackR2 - Star Citizen Kill-Tracking Tool
|
# AutoTrackR2 - Star Citizen Kill-Tracking Tool
|
||||||
|
|
||||||
AutoTrackR2 is a powerful and customizable kill-tracking tool for Star Citizen. Designed with gankers and combat enthusiasts in mind, it integrates seamlessly with the game to log, display, and manage your kills, providing detailed information and optional API integration for advanced tracking.
|
AutoTrackR2 is a powerful and customizable kill-tracking tool for Star Citizen. Designed with gankers and combat enthusiasts in mind, it integrates seamlessly with the game to log, display, and manage your kills, providing detailed information and optional API integration for advanced tracking.
|
||||||
|
|
||||||
🚀 Features
|
## Testimonials
|
||||||
Log File Integration: Point to Star Citizen's live game.log to track kills in real-time.
|
|
||||||
|
|
||||||
API Integration (Optional):
|
https://www.youtube.com/watch?v=bE6_MYY7ARU
|
||||||
Configure a desired API to send kill data for external tracking or display.
|
|
||||||
Secure your data with an optional API key.
|
|
||||||
|
|
||||||
Video Clipping (Optional):
|
## Features
|
||||||
Set a path to your clipping software to save kills automatically.
|
|
||||||
|
|
||||||
Visor Wipe Integration:
|
- **Log File Integration**: Point to Star Citizen's live game.log to track kills in real-time.
|
||||||
Automates visor wiping using an AutoHotkey script (visorwipe.ahk).
|
- **API Integration (Optional)**:
|
||||||
Requires AutoHotkey v2.
|
- Configure a desired API to send kill data for external tracking or display.
|
||||||
Script must be placed in C:\Users\<Username>\AppData\Local\AutoTrackR2\.
|
- Secure your data with an optional API key.
|
||||||
|
- **Video Clipping (Optional)**:
|
||||||
|
- Set a path to your clipping software to save kills automatically.
|
||||||
|
- **Visor Wipe Integration (Optional)**:
|
||||||
|
- Automates visor wiping using an AutoHotkey script (`visorwipe.ahk`).
|
||||||
|
- Requires AutoHotkey v2.
|
||||||
|
- Script must be placed in `%LOCALAPPDATA%\AutoTrackR2\`.
|
||||||
|
- **Video Record Integration (Optional)**:
|
||||||
|
- Customize the `videorecord.ahk` script for your specific video recording keybinds.
|
||||||
|
- Requires AutoHotkey v2.
|
||||||
|
- Script must be placed in `%LOCALAPPDATA%\AutoTrackR2\`
|
||||||
|
- **Offline Mode**:
|
||||||
|
- Disables API submissions. The tool will still scrape and display information from the RobertsSpaceIndustries website for the profile of whomever you have killed.
|
||||||
|
- **Custom Themes**:
|
||||||
|
- Easily add or modify themes by adjusting the `ThemeSlider_ValueChanged` function in `ConfigPage.xaml.cs`.
|
||||||
|
- Update the ThemeSlider maximum value in `ConfigPage.xaml` to reflect the number of themes added.
|
||||||
|
|
||||||
Video Record Integration:
|
## Setup
|
||||||
Customize the videorecord.ahk script for your specific video recording keybinds.
|
|
||||||
Requires AutoHotkey v2.
|
|
||||||
Script must be placed in C:\Users\<Username>\AppData\Local\AutoTrackR2\
|
|
||||||
|
|
||||||
Offline Mode:
|
1. **Prerequisites**:
|
||||||
Disables API submissions. The tool will still scrape and display information from the RobertsSpaceIndustries website for the profile of whomever you have killed.
|
|
||||||
|
|
||||||
Custom Themes:
|
- Windows 10 or later
|
||||||
Easily add or modify themes by adjusting the ThemeSlider_ValueChanged function in ConfigPage.xaml.cs.
|
- .NET Framework 4.7.2 or higher
|
||||||
Update the ThemeSlider maximum value in ConfigPage.xaml to reflect the number of themes added.
|
- Star Citizen installed
|
||||||
|
- AutoHotkey v2 (optional - only needed for visor wipe and video recording features):
|
||||||
|
- Download from the official website at https://www.autohotkey.com/
|
||||||
|
- Install AutoHotkey v2 (not v1.x as they are not compatible)
|
||||||
|
- Verify installation by right-clicking on your desktop and confirming "New > AutoHotkey v2 Script" appears in the context menu
|
||||||
|
|
||||||
📁 Configuration
|
2. **Installation Steps**:
|
||||||
Log File:
|
|
||||||
Specify the path to Star Citizen's game.log.
|
|
||||||
|
|
||||||
API Settings (Optional):
|
- Download the latest release package from the releases page
|
||||||
|
- Run the installer and follow the on-screen instructions
|
||||||
|
- Launch AutoTrackR2 after installation completes
|
||||||
|
|
||||||
API URL: Provide the endpoint for posting kill data.
|
3. **Initial Configuration**:
|
||||||
|
- Open the Configuration panel within the application
|
||||||
|
- Set the path to your Star Citizen game.log file (typically found in `[Star Citizen Install Path]\LIVE\game.log`)
|
||||||
|
- Configure API settings if desired (leave blank for offline mode)
|
||||||
|
- Set up video clipping paths if using this feature
|
||||||
|
- If using AutoHotkey features, verify the scripts are properly placed in the `%LOCALAPPDATA%\AutoTrackR2\` location
|
||||||
|
|
||||||
API Key: Secure access to the API with your unique key.
|
## Configuration
|
||||||
|
|
||||||
Video Clipping Path (Optional):
|
- **Log File**:
|
||||||
Set the directory where your clipping software saves kills.
|
- Specify the path to Star Citizen's `game.log`.
|
||||||
|
- **API Settings (Optional)**:
|
||||||
|
- API URL: Provide the endpoint for posting kill data.
|
||||||
|
- API Key: Secure access to the API with your unique key.
|
||||||
|
- **Video Clipping Path (Optional)**:
|
||||||
|
- Set the directory where your clipping software saves kills.
|
||||||
|
- **Visor Wipe Setup (Optional)**:
|
||||||
|
- Place `visorwipe.ahk` in `%LOCALAPPDATA%\AutoTrackR2\`.
|
||||||
|
- AutoHotkey v2 is required.
|
||||||
|
- **Video Recording Setup (Optional)**:
|
||||||
|
- Modify `videorecord.ahk` to use the keybinds of your video recording software.
|
||||||
|
- Place `videorecord.ahk` in `%LOCALAPPDATA%\AutoTrackR2\`.
|
||||||
|
- AutoHotkey v2 is required.
|
||||||
|
- **Offline Mode**:
|
||||||
|
- Enable to disable API submission. Restart the tracker to apply changes.
|
||||||
|
|
||||||
Visor Wipe Setup:
|
## Privacy & Data Usage
|
||||||
Place visorwipe.ahk in C:\Users\<Username>\AppData\Local\AutoTrackR2\.
|
|
||||||
AutoHotkey v2 is required.
|
|
||||||
|
|
||||||
Video Recording Setup:
|
- **No Personal Data Collection**:
|
||||||
Modify videorecord.ahk to use the keybinds of your video recording software.
|
- AutoTrackR2 does not collect or store personal or system information, other than common file paths to manage necessary files.
|
||||||
Place videorecord.ahk in C:\Users\<Username>\AppData\Local\AutoTrackR2\.
|
- **Access and Permissions**:
|
||||||
AutoHotkey v2 is required.
|
- The tool reads its own `config.ini` and the `game.log` from Star Citizen. It will also create a CSV file of all your logged kills, stored locally on your machine in the `%LOCALAPPDATA%\AutoTrackR2\` folder.
|
||||||
|
- **Optional Data Submission**:
|
||||||
|
- Data is only sent to an API if explicitly configured by the user. Offline Mode disables all outgoing submissions.
|
||||||
|
- **Killfeed Scraping**:
|
||||||
|
- The program scrapes the profile page of killed players to display their information locally. This feature remains active even in Offline Mode.
|
||||||
|
|
||||||
Offline Mode:
|
## Customization
|
||||||
Enable to disable API submission. Restart the tracker to apply changes.
|
|
||||||
|
|
||||||
🛡️ Privacy & Data Usage
|
|
||||||
No Personal Data Collection:
|
|
||||||
AutoTrackR2 does not collect or store personal or system information, other than common file paths to manage necessary files.
|
|
||||||
|
|
||||||
Access and Permissions:
|
|
||||||
The tool reads its own config.ini and the game.log from Star Citizen. It will also create a CSV file of all your logged kills, stored locally on your machine in the AppData folder.
|
|
||||||
|
|
||||||
Optional Data Submission:
|
|
||||||
Data is only sent to an API if explicitly configured by the user. Offline Mode disables all outgoing submissions.
|
|
||||||
|
|
||||||
Killfeed Scraping:
|
|
||||||
The program scrapes the profile page of killed players to display their information locally. This feature remains active even in Offline Mode.
|
|
||||||
|
|
||||||
⚙️ Installation
|
|
||||||
Download the latest release from the releases page.
|
|
||||||
Follow the setup instructions included in the installer.
|
|
||||||
Configure the tool using the settings outlined above.
|
|
||||||
|
|
||||||
💡 Customization
|
|
||||||
To customize themes or behaviors:
|
To customize themes or behaviors:
|
||||||
|
|
||||||
Add Themes:
|
- **Add Themes**:
|
||||||
Update the ThemeSlider_ValueChanged function in ConfigPage.xaml.cs with your desired colors and logos.
|
- Update the `ThemeSlider_ValueChanged` function in `ConfigPage.xaml.cs` with your desired colors and logos.
|
||||||
Adjust the ThemeSlider maximum value in ConfigPage.xaml to match the number of themes.
|
- Adjust the ThemeSlider maximum value in `ConfigPage.xaml` to match the number of themes.
|
||||||
|
- **Modify AHK Scripts (Optional)**:
|
||||||
|
- Edit `visorwipe.ahk` and `videorecord.ahk` to fit your specific keybinds and preferences.
|
||||||
|
|
||||||
Modify AHK Scripts:
|
## Support
|
||||||
Edit visorwipe.ahk and videorecord.ahk to fit your specific keybinds and preferences.
|
|
||||||
|
|
||||||
📞 Support
|
For questions, issues, or feature requests:
|
||||||
For questions, issues, or feature requests, please visit discord.gg/griefernet.
|
|
||||||
|
- Join our Discord server: [discord.gg/griefernet](https://discord.gg/griefernet)
|
||||||
|
- Report bugs through the Discord's #autotrackr-bugs channel
|
||||||
|
- For urgent issues, you can escalate in Discord by tagging moderators
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
🔒 License
|
|
||||||
AutoTrackR2 is released under the GNU v3 License.
|
AutoTrackR2 is released under the GNU v3 License.
|
||||||
|
|
||||||
GRIEFERNET VICTORY!
|
GRIEFERNET VICTORY!
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue