mirror of
https://github.com/Ahrimdon/detailed-cod-tracker.git
synced 2024-11-03 16:46:44 -05:00
Added more cmdline arguments, match splitting, added duration and match time conversions, fintuned code.
This commit is contained in:
parent
a5a8d76ef1
commit
825cc17025
Binary file not shown.
@ -14,7 +14,7 @@
|
|||||||
"title": "mw",
|
"title": "mw",
|
||||||
"platform": "battle",
|
"platform": "battle",
|
||||||
"username": "Ahrimdon#1597",
|
"username": "Ahrimdon#1597",
|
||||||
"activeDate": 1696755151000,
|
"activeDate": 1697188469000,
|
||||||
"activityType": "mp",
|
"activityType": "mp",
|
||||||
"id": null
|
"id": null
|
||||||
},
|
},
|
||||||
|
File diff suppressed because it is too large
Load Diff
113
examples/example_matches/match_1.json
Normal file
113
examples/example_matches/match_1.json
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 09:09:15 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 09:14:29 AM",
|
||||||
|
"map": "mp_m_speedball",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "9418543359897068941",
|
||||||
|
"duration": "5 Minutes 14 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 3,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 6.0,
|
||||||
|
"medalXp": 2350.0,
|
||||||
|
"matchXp": 1225.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 650.0,
|
||||||
|
"accuracy": 0.1651376146788991,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 36.0,
|
||||||
|
"score": 650.0,
|
||||||
|
"totalXp": 4225.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 1.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 106.26702997275204,
|
||||||
|
"distanceTraveled": 922.4512,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 1.0,
|
||||||
|
"shotsMissed": 182.0,
|
||||||
|
"timePlayed": 367.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 131.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 5.0,
|
||||||
|
"damageDone": 905.0,
|
||||||
|
"shotsFired": 218.0,
|
||||||
|
"damageTaken": 748.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"AS VAL": {
|
||||||
|
"hits": 5.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 42.0,
|
||||||
|
"startingWeaponXp": 68500.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"1911": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 1.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"JAK-12": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 8.0,
|
||||||
|
"startingWeaponXp": 70700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"M19": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 10.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Holger-26": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 39.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Uzi": {
|
||||||
|
"hits": 8.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 40.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 270.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
123
examples/example_matches/match_10.json
Normal file
123
examples/example_matches/match_10.json
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:06:34 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:11:52 AM",
|
||||||
|
"map": "mp_m_hill",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "17778358267058167779",
|
||||||
|
"duration": "5 Minutes 18 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 2,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 9.0,
|
||||||
|
"medalXp": 2470.0,
|
||||||
|
"matchXp": 1787.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 1025.0,
|
||||||
|
"accuracy": 0.19727891156462585,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 29.0,
|
||||||
|
"score": 1025.0,
|
||||||
|
"totalXp": 5282.0,
|
||||||
|
"headshots": 2.0,
|
||||||
|
"assists": 3.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 171.3091922005571,
|
||||||
|
"distanceTraveled": 2091.75,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"kdRatio": 4.5,
|
||||||
|
"shotsMissed": 118.0,
|
||||||
|
"timePlayed": 359.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 74.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 7.0,
|
||||||
|
"damageDone": 1053.0,
|
||||||
|
"shotsFired": 147.0,
|
||||||
|
"damageTaken": 226.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"semtex_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"FR 5.56": {
|
||||||
|
"hits": 9.0,
|
||||||
|
"kills": 3.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 43.0,
|
||||||
|
"startingWeaponXp": 97100.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 540.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 24.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 270.0
|
||||||
|
},
|
||||||
|
".50 GS": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 5.0,
|
||||||
|
"startingWeaponXp": 46500.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Origin 12 Shotgun": {
|
||||||
|
"hits": 4.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 4.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Fennec": {
|
||||||
|
"hits": 4.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 21.0,
|
||||||
|
"startingWeaponXp": 70700.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"frag_grenade_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
93
examples/example_matches/match_11.json
Normal file
93
examples/example_matches/match_11.json
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:00:29 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:04:42 AM",
|
||||||
|
"map": "mp_m_drainage",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "12628755660379406419",
|
||||||
|
"duration": "4 Minutes 13 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 1,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 5.0,
|
||||||
|
"medalXp": 2095.0,
|
||||||
|
"matchXp": 1309.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 775.0,
|
||||||
|
"accuracy": 0.2391304347826087,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 22.0,
|
||||||
|
"score": 775.0,
|
||||||
|
"totalXp": 4179.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 4.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 160.34482758620692,
|
||||||
|
"distanceTraveled": 1281.8544,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"kdRatio": 5.0,
|
||||||
|
"shotsMissed": 70.0,
|
||||||
|
"timePlayed": 290.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 53.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 5.0,
|
||||||
|
"damageDone": 903.0,
|
||||||
|
"shotsFired": 92.0,
|
||||||
|
"damageTaken": 254.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"Renetti": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 24.0,
|
||||||
|
"startingWeaponXp": 54000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 135.0
|
||||||
|
},
|
||||||
|
"M91": {
|
||||||
|
"hits": 6.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 12.0,
|
||||||
|
"startingWeaponXp": 79800.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"HDR": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 37800.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Striker 45": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 8.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 135.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
123
examples/example_matches/match_12.json
Normal file
123
examples/example_matches/match_12.json
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:53:08 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:58:40 AM",
|
||||||
|
"map": "mp_m_wallco2",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "13011335364533875207",
|
||||||
|
"duration": "5 Minutes 32 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 4,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 9.0,
|
||||||
|
"medalXp": 2175.0,
|
||||||
|
"matchXp": 1179.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 900.0,
|
||||||
|
"accuracy": 0.19186046511627908,
|
||||||
|
"wallBangs": 1.0,
|
||||||
|
"shotsLanded": 33.0,
|
||||||
|
"score": 900.0,
|
||||||
|
"totalXp": 4254.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 145.16129032258064,
|
||||||
|
"distanceTraveled": 884.6166,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 1.5,
|
||||||
|
"shotsMissed": 139.0,
|
||||||
|
"timePlayed": 372.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 82.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 3.0,
|
||||||
|
"damageDone": 1043.0,
|
||||||
|
"shotsFired": 172.0,
|
||||||
|
"damageTaken": 745.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"semtex_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 10.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"725": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 66300.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"PKM": {
|
||||||
|
"hits": 9.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 31.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"ISO": {
|
||||||
|
"hits": 8.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 22.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"HDR": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 3.0,
|
||||||
|
"startingWeaponXp": 37800.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"Grau 5.56": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 8.0,
|
||||||
|
"shots": 21.0,
|
||||||
|
"startingWeaponXp": 99700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
113
examples/example_matches/match_13.json
Normal file
113
examples/example_matches/match_13.json
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:48:06 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:51:26 AM",
|
||||||
|
"map": "mp_m_king",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "11409852559879680761",
|
||||||
|
"duration": "3 Minutes 20 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 1,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 4.0,
|
||||||
|
"medalXp": 1380.0,
|
||||||
|
"matchXp": 673.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 475.0,
|
||||||
|
"accuracy": 0.075,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 6.0,
|
||||||
|
"score": 475.0,
|
||||||
|
"totalXp": 2528.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 2.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 113.09523809523809,
|
||||||
|
"distanceTraveled": 1443.3264,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"kdRatio": 4.0,
|
||||||
|
"shotsMissed": 74.0,
|
||||||
|
"timePlayed": 252.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 26.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 4.0,
|
||||||
|
"damageDone": 291.0,
|
||||||
|
"shotsFired": 80.0,
|
||||||
|
"damageTaken": 241.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"FAL": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 102300.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"1911": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 14.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 12.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"molotov_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"PKM": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 23.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Model 680": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 1.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
103
examples/example_matches/match_14.json
Normal file
103
examples/example_matches/match_14.json
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:41:23 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:46:05 AM",
|
||||||
|
"map": "mp_m_trench",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "14167686646012486282",
|
||||||
|
"duration": "4 Minutes 42 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 2,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 9.0,
|
||||||
|
"medalXp": 2220.0,
|
||||||
|
"matchXp": 1142.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 900.0,
|
||||||
|
"accuracy": 0.2033898305084746,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 24.0,
|
||||||
|
"score": 900.0,
|
||||||
|
"totalXp": 4262.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 161.67664670658684,
|
||||||
|
"distanceTraveled": 1327.759,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"kdRatio": 4.5,
|
||||||
|
"shotsMissed": 94.0,
|
||||||
|
"timePlayed": 334.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 65.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 5.0,
|
||||||
|
"damageDone": 889.0,
|
||||||
|
"shotsFired": 118.0,
|
||||||
|
"damageTaken": 353.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"1911": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 7.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"MP7": {
|
||||||
|
"hits": 9.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 66.0,
|
||||||
|
"startingWeaponXp": 70700.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"JAK-12": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 3.0,
|
||||||
|
"startingWeaponXp": 70700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Rytec AMR": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
83
examples/example_matches/match_15.json
Normal file
83
examples/example_matches/match_15.json
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:35:37 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:39:18 AM",
|
||||||
|
"map": "mp_rust",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "1807617646663886523",
|
||||||
|
"duration": "3 Minutes 41 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 2,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 3.0,
|
||||||
|
"medalXp": 1340.0,
|
||||||
|
"matchXp": 870.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 375.0,
|
||||||
|
"accuracy": 0.30952380952380953,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 13.0,
|
||||||
|
"score": 375.0,
|
||||||
|
"totalXp": 2585.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 1.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 82.11678832116787,
|
||||||
|
"distanceTraveled": 916.12476,
|
||||||
|
"deaths": 3.0,
|
||||||
|
"kdRatio": 1.0,
|
||||||
|
"shotsMissed": 29.0,
|
||||||
|
"timePlayed": 274.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 27.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 2.0,
|
||||||
|
"damageDone": 475.0,
|
||||||
|
"shotsFired": 42.0,
|
||||||
|
"damageTaken": 378.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"SP-R 208": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 135.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 24.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"JAK-12": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 5.0,
|
||||||
|
"startingWeaponXp": 70700.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
103
examples/example_matches/match_16.json
Normal file
103
examples/example_matches/match_16.json
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:28:57 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:33:23 AM",
|
||||||
|
"map": "mp_m_cornfield",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "1061289958884906199",
|
||||||
|
"duration": "4 Minutes 26 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 3,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 7.0,
|
||||||
|
"medalXp": 1630.0,
|
||||||
|
"matchXp": 771.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 700.0,
|
||||||
|
"accuracy": 0.2698412698412698,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 17.0,
|
||||||
|
"score": 700.0,
|
||||||
|
"totalXp": 3101.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 139.0728476821192,
|
||||||
|
"distanceTraveled": 562.38293,
|
||||||
|
"deaths": 3.0,
|
||||||
|
"kdRatio": 2.3333333333333335,
|
||||||
|
"shotsMissed": 46.0,
|
||||||
|
"timePlayed": 302.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 32.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 3.0,
|
||||||
|
"damageDone": 701.0,
|
||||||
|
"shotsFired": 63.0,
|
||||||
|
"damageTaken": 396.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"1911": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Crossbow": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 1.0,
|
||||||
|
"startingWeaponXp": 48300.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"MG34": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 9.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Oden": {
|
||||||
|
"hits": 9.0,
|
||||||
|
"kills": 3.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 23.0,
|
||||||
|
"startingWeaponXp": 99700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 540.0
|
||||||
|
},
|
||||||
|
"Model 680": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 3.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
113
examples/example_matches/match_17.json
Normal file
113
examples/example_matches/match_17.json
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:22:15 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:26:58 AM",
|
||||||
|
"map": "mp_m_cargo",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "12407184959904712603",
|
||||||
|
"duration": "4 Minutes 43 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 2,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 5.0,
|
||||||
|
"medalXp": 1340.0,
|
||||||
|
"matchXp": 820.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 500.0,
|
||||||
|
"accuracy": 0.1590909090909091,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 14.0,
|
||||||
|
"score": 500.0,
|
||||||
|
"totalXp": 2660.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 95.54140127388536,
|
||||||
|
"distanceTraveled": 745.87225,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 0.8333333333333334,
|
||||||
|
"shotsMissed": 74.0,
|
||||||
|
"timePlayed": 314.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 39.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 3.0,
|
||||||
|
"damageDone": 648.0,
|
||||||
|
"shotsFired": 88.0,
|
||||||
|
"damageTaken": 698.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"M91": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 79800.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"semtex_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 3.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Striker 45": {
|
||||||
|
"hits": 7.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 37.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"Oden": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 36.0,
|
||||||
|
"startingWeaponXp": 99700.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"R9-0 Shotgun": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 58000.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
93
examples/example_matches/match_18.json
Normal file
93
examples/example_matches/match_18.json
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:17:06 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:19:53 AM",
|
||||||
|
"map": "mp_m_cage",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "3236775995900435719",
|
||||||
|
"duration": "2 Minutes 47 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 1,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 1.0,
|
||||||
|
"medalXp": 1510.0,
|
||||||
|
"matchXp": 382.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 100.0,
|
||||||
|
"accuracy": 0.5625,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 9.0,
|
||||||
|
"score": 100.0,
|
||||||
|
"totalXp": 1992.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 29.41176470588235,
|
||||||
|
"distanceTraveled": 492.60062,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 0.16666666666666666,
|
||||||
|
"shotsMissed": 7.0,
|
||||||
|
"timePlayed": 204.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 12.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 1.0,
|
||||||
|
"damageDone": 392.0,
|
||||||
|
"shotsFired": 16.0,
|
||||||
|
"damageTaken": 600.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
".357": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 5.0,
|
||||||
|
"startingWeaponXp": 44700.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"MP5": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"R9-0 Shotgun": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 5.0,
|
||||||
|
"startingWeaponXp": 58000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Grau 5.56": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 5.0,
|
||||||
|
"startingWeaponXp": 99700.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
113
examples/example_matches/match_19.json
Normal file
113
examples/example_matches/match_19.json
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:09:25 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:14:17 AM",
|
||||||
|
"map": "mp_shipment",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "8150798539455925554",
|
||||||
|
"duration": "4 Minutes 52 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 4,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 9.0,
|
||||||
|
"medalXp": 1950.0,
|
||||||
|
"matchXp": 785.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 900.0,
|
||||||
|
"accuracy": 0.27835051546391754,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 27.0,
|
||||||
|
"score": 900.0,
|
||||||
|
"totalXp": 3635.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 162.65060240963857,
|
||||||
|
"distanceTraveled": 1941.4109,
|
||||||
|
"deaths": 5.0,
|
||||||
|
"kdRatio": 1.8,
|
||||||
|
"shotsMissed": 70.0,
|
||||||
|
"timePlayed": 332.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 57.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 4.0,
|
||||||
|
"damageDone": 1007.0,
|
||||||
|
"shotsFired": 97.0,
|
||||||
|
"damageTaken": 731.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"AS VAL": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 1.0,
|
||||||
|
"startingWeaponXp": 68500.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"1911": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 8.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"molotov_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"725": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 66300.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"MP5": {
|
||||||
|
"hits": 9.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 8.0,
|
||||||
|
"shots": 19.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"Holger-26": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 15.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
103
examples/example_matches/match_2.json
Normal file
103
examples/example_matches/match_2.json
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 09:01:13 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 09:06:49 AM",
|
||||||
|
"map": "mp_m_stadium",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "16756300293244951150",
|
||||||
|
"duration": "5 Minutes 36 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 2,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 10.0,
|
||||||
|
"medalXp": 2565.0,
|
||||||
|
"matchXp": 1902.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 1125.0,
|
||||||
|
"accuracy": 0.17372881355932204,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 41.0,
|
||||||
|
"score": 1125.0,
|
||||||
|
"totalXp": 5592.0,
|
||||||
|
"headshots": 4.0,
|
||||||
|
"assists": 2.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 173.52185089974293,
|
||||||
|
"distanceTraveled": 2300.2773,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"kdRatio": 5.0,
|
||||||
|
"shotsMissed": 195.0,
|
||||||
|
"timePlayed": 389.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 111.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 6.0,
|
||||||
|
"damageDone": 1117.0,
|
||||||
|
"shotsFired": 236.0,
|
||||||
|
"damageTaken": 390.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"Renetti": {
|
||||||
|
"hits": 9.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 26.0,
|
||||||
|
"startingWeaponXp": 54000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"1911": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"MG34": {
|
||||||
|
"hits": 6.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 2.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 42.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"ISO": {
|
||||||
|
"hits": 11.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 60.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 270.0
|
||||||
|
},
|
||||||
|
"Origin 12 Shotgun": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 3.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
103
examples/example_matches/match_20.json
Normal file
103
examples/example_matches/match_20.json
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 07:00:36 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 07:07:41 AM",
|
||||||
|
"map": "mp_m_hill",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "1031183506930466944",
|
||||||
|
"duration": "7 Minutes 5 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 4,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 6.0,
|
||||||
|
"medalXp": 1915.0,
|
||||||
|
"matchXp": 1619.0,
|
||||||
|
"averageSpeedDuringMatch": 78.74068,
|
||||||
|
"scoreXp": 675.0,
|
||||||
|
"accuracy": 0.11788617886178862,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 29.0,
|
||||||
|
"score": 675.0,
|
||||||
|
"totalXp": 4209.0,
|
||||||
|
"headshots": 4.0,
|
||||||
|
"assists": 3.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 84.90566037735849,
|
||||||
|
"distanceTraveled": 4157.6,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"kdRatio": 3.0,
|
||||||
|
"shotsMissed": 217.0,
|
||||||
|
"timePlayed": 477.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 133.0,
|
||||||
|
"percentTimeMoving": 87.5,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 3.0,
|
||||||
|
"damageDone": 840.0,
|
||||||
|
"shotsFired": 246.0,
|
||||||
|
"damageTaken": 481.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"1911": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"FR 5.56": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 36.0,
|
||||||
|
"startingWeaponXp": 97100.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 45.0
|
||||||
|
},
|
||||||
|
"Crossbow": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 1.0,
|
||||||
|
"startingWeaponXp": 48300.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"MG34": {
|
||||||
|
"hits": 8.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 8.0,
|
||||||
|
"shots": 29.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"P90": {
|
||||||
|
"hits": 10.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 2.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 142.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
93
examples/example_matches/match_3.json
Normal file
93
examples/example_matches/match_3.json
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:54:51 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:59:00 AM",
|
||||||
|
"map": "mp_m_fork",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "4426854641996609602",
|
||||||
|
"duration": "4 Minutes 9 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 2,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 5.0,
|
||||||
|
"medalXp": 1635.0,
|
||||||
|
"matchXp": 635.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 500.0,
|
||||||
|
"accuracy": 0.2,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 19.0,
|
||||||
|
"score": 500.0,
|
||||||
|
"totalXp": 2770.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 101.69491525423729,
|
||||||
|
"distanceTraveled": 844.77625,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 0.8333333333333334,
|
||||||
|
"shotsMissed": 76.0,
|
||||||
|
"timePlayed": 295.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 52.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 2.0,
|
||||||
|
"damageDone": 718.0,
|
||||||
|
"shotsFired": 95.0,
|
||||||
|
"damageTaken": 688.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
".50 GS": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 46500.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"FiNN LMG": {
|
||||||
|
"hits": 8.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 53.0,
|
||||||
|
"startingWeaponXp": 74584.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"EBR-14": {
|
||||||
|
"hits": 7.0,
|
||||||
|
"kills": 3.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 17.0,
|
||||||
|
"startingWeaponXp": 70700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 540.0
|
||||||
|
},
|
||||||
|
"FN Scar 17": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 12.0,
|
||||||
|
"startingWeaponXp": 97100.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
123
examples/example_matches/match_4.json
Normal file
123
examples/example_matches/match_4.json
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:46:06 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:52:45 AM",
|
||||||
|
"map": "mp_m_overunder",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "13122840687922000264",
|
||||||
|
"duration": "6 Minutes 39 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 4,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 8.0,
|
||||||
|
"medalXp": 2460.0,
|
||||||
|
"matchXp": 1784.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 850.0,
|
||||||
|
"accuracy": 0.15625,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 25.0,
|
||||||
|
"score": 850.0,
|
||||||
|
"totalXp": 5094.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 1.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 112.83185840707964,
|
||||||
|
"distanceTraveled": 2697.319,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 1.3333333333333333,
|
||||||
|
"shotsMissed": 135.0,
|
||||||
|
"timePlayed": 452.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 74.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 4.0,
|
||||||
|
"damageDone": 1052.0,
|
||||||
|
"shotsFired": 160.0,
|
||||||
|
"damageTaken": 676.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"1911": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 16.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 90.0
|
||||||
|
},
|
||||||
|
"SP-R 208": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 8.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"M19": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 9.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Holger-26": {
|
||||||
|
"hits": 6.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 16.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"PP19 Bizon": {
|
||||||
|
"hits": 4.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 7.0,
|
||||||
|
"shots": 12.0,
|
||||||
|
"startingWeaponXp": 60000.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"R9-0 Shotgun": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 58000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"frag_grenade_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
113
examples/example_matches/match_5.json
Normal file
113
examples/example_matches/match_5.json
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:38:24 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:43:46 AM",
|
||||||
|
"map": "mp_m_train",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "5904974789808129470",
|
||||||
|
"duration": "5 Minutes 22 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 4,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 5.0,
|
||||||
|
"medalXp": 2390.0,
|
||||||
|
"matchXp": 1230.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 625.0,
|
||||||
|
"accuracy": 0.3283582089552239,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 22.0,
|
||||||
|
"score": 625.0,
|
||||||
|
"totalXp": 4245.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 2.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 104.74860335195531,
|
||||||
|
"distanceTraveled": 684.75854,
|
||||||
|
"deaths": 7.0,
|
||||||
|
"kdRatio": 0.7142857142857143,
|
||||||
|
"shotsMissed": 45.0,
|
||||||
|
"timePlayed": 358.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 35.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 3.0,
|
||||||
|
"damageDone": 865.0,
|
||||||
|
"shotsFired": 67.0,
|
||||||
|
"damageTaken": 791.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"X16": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 4.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 135.0
|
||||||
|
},
|
||||||
|
"SA87": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 75200.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 90.0
|
||||||
|
},
|
||||||
|
"MP5": {
|
||||||
|
"hits": 7.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 7.0,
|
||||||
|
"shots": 33.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"M19": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 6.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Origin 12 Shotgun": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 4.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Rytec AMR": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 3.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
93
examples/example_matches/match_6.json
Normal file
93
examples/example_matches/match_6.json
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:32:14 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:35:12 AM",
|
||||||
|
"map": "mp_m_trench",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "6975546085129714208",
|
||||||
|
"duration": "2 Minutes 58 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "loss",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 0,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 2.0,
|
||||||
|
"medalXp": 1590.0,
|
||||||
|
"matchXp": 560.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 200.0,
|
||||||
|
"accuracy": 0.14655172413793102,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 17.0,
|
||||||
|
"score": 200.0,
|
||||||
|
"totalXp": 2350.0,
|
||||||
|
"headshots": 2.0,
|
||||||
|
"assists": 0.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 55.29953917050691,
|
||||||
|
"distanceTraveled": 753.2467,
|
||||||
|
"deaths": 6.0,
|
||||||
|
"kdRatio": 0.3333333333333333,
|
||||||
|
"shotsMissed": 99.0,
|
||||||
|
"timePlayed": 217.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 66.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 1.0,
|
||||||
|
"damageDone": 550.0,
|
||||||
|
"shotsFired": 116.0,
|
||||||
|
"damageTaken": 600.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"Bruen Mk9": {
|
||||||
|
"hits": 5.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 36.0,
|
||||||
|
"startingWeaponXp": 82200.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"VLK Rogue": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 1.0,
|
||||||
|
"startingWeaponXp": 64200.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"M13": {
|
||||||
|
"hits": 6.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 58.0,
|
||||||
|
"startingWeaponXp": 107700.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"M19": {
|
||||||
|
"hits": 5.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 21.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
123
examples/example_matches/match_7.json
Normal file
123
examples/example_matches/match_7.json
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:24:20 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:30:11 AM",
|
||||||
|
"map": "mp_m_pine",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "15185728700852222154",
|
||||||
|
"duration": "5 Minutes 51 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 3,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 9.0,
|
||||||
|
"medalXp": 2505.0,
|
||||||
|
"matchXp": 1906.0,
|
||||||
|
"averageSpeedDuringMatch": 128.94987,
|
||||||
|
"scoreXp": 950.0,
|
||||||
|
"accuracy": 0.12811387900355872,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 36.0,
|
||||||
|
"score": 950.0,
|
||||||
|
"totalXp": 5361.0,
|
||||||
|
"headshots": 2.0,
|
||||||
|
"assists": 1.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 146.15384615384613,
|
||||||
|
"distanceTraveled": 1319.4282,
|
||||||
|
"deaths": 4.0,
|
||||||
|
"kdRatio": 2.25,
|
||||||
|
"shotsMissed": 245.0,
|
||||||
|
"timePlayed": 390.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 137.0,
|
||||||
|
"percentTimeMoving": 88.23529,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 4.0,
|
||||||
|
"damageDone": 1182.0,
|
||||||
|
"shotsFired": 281.0,
|
||||||
|
"damageTaken": 732.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"Renetti": {
|
||||||
|
"hits": 7.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 67.0,
|
||||||
|
"startingWeaponXp": 54000.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"M91": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 34.0,
|
||||||
|
"startingWeaponXp": 79800.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
".50 GS": {
|
||||||
|
"hits": 2.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 7.0,
|
||||||
|
"shots": 9.0,
|
||||||
|
"startingWeaponXp": 46500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Striker 45": {
|
||||||
|
"hits": 4.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 29.0,
|
||||||
|
"startingWeaponXp": 72900.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Model 680": {
|
||||||
|
"hits": 4.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 7.0,
|
||||||
|
"shots": 8.0,
|
||||||
|
"startingWeaponXp": 62100.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"frag_grenade_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Grau 5.56": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 30.0,
|
||||||
|
"startingWeaponXp": 99700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
113
examples/example_matches/match_8.json
Normal file
113
examples/example_matches/match_8.json
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:19:01 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:22:19 AM",
|
||||||
|
"map": "mp_m_showers",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "12106462555916355611",
|
||||||
|
"duration": "3 Minutes 18 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "axis",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 1,
|
||||||
|
"team2Score": 6,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 7.0,
|
||||||
|
"medalXp": 1895.0,
|
||||||
|
"matchXp": 894.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 850.0,
|
||||||
|
"accuracy": 0.2692307692307692,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 21.0,
|
||||||
|
"score": 850.0,
|
||||||
|
"totalXp": 3639.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"assists": 2.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 218.88412017167383,
|
||||||
|
"distanceTraveled": 231.95163,
|
||||||
|
"deaths": 3.0,
|
||||||
|
"kdRatio": 2.3333333333333335,
|
||||||
|
"shotsMissed": 57.0,
|
||||||
|
"timePlayed": 233.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 59.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 4.0,
|
||||||
|
"damageDone": 772.0,
|
||||||
|
"shotsFired": 78.0,
|
||||||
|
"damageTaken": 300.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"M4A1": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 113200.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Renetti": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 14.0,
|
||||||
|
"startingWeaponXp": 54000.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"semtex_mp": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 6.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 0.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"1911": {
|
||||||
|
"hits": 0.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 4.0,
|
||||||
|
"shots": 0.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Dragunov": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 1.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 36200.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 0.0
|
||||||
|
},
|
||||||
|
"Holger-26": {
|
||||||
|
"hits": 4.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 22.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
103
examples/example_matches/match_9.json
Normal file
103
examples/example_matches/match_9.json
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"utcStartSeconds": "GMT: Friday, October 13, 2023 08:14:12 AM",
|
||||||
|
"utcEndSeconds": "GMT: Friday, October 13, 2023 08:17:03 AM",
|
||||||
|
"map": "mp_m_cage",
|
||||||
|
"mode": "Gunfight",
|
||||||
|
"matchID": "14763503065632813798",
|
||||||
|
"duration": "2 Minutes 51 Seconds 0 Milliseconds",
|
||||||
|
"playlistName": null,
|
||||||
|
"version": 1,
|
||||||
|
"gameType": "mp",
|
||||||
|
"result": "win",
|
||||||
|
"winningTeam": "allies",
|
||||||
|
"gameBattle": false,
|
||||||
|
"team1Score": 6,
|
||||||
|
"team2Score": 1,
|
||||||
|
"isPresentAtEnd": true,
|
||||||
|
"playerStats": {
|
||||||
|
"kills": 9.0,
|
||||||
|
"medalXp": 2035.0,
|
||||||
|
"matchXp": 597.0,
|
||||||
|
"averageSpeedDuringMatch": 0.0,
|
||||||
|
"scoreXp": 975.0,
|
||||||
|
"accuracy": 0.3684210526315789,
|
||||||
|
"wallBangs": 0.0,
|
||||||
|
"shotsLanded": 28.0,
|
||||||
|
"score": 975.0,
|
||||||
|
"totalXp": 3607.0,
|
||||||
|
"headshots": 1.0,
|
||||||
|
"assists": 2.0,
|
||||||
|
"rank": 54.0,
|
||||||
|
"scorePerMinute": 277.2511848341232,
|
||||||
|
"distanceTraveled": 149.00363,
|
||||||
|
"deaths": 3.0,
|
||||||
|
"kdRatio": 3.0,
|
||||||
|
"shotsMissed": 48.0,
|
||||||
|
"timePlayed": 211.0,
|
||||||
|
"executions": 0.0,
|
||||||
|
"suicides": 0.0,
|
||||||
|
"seasonRank": 10.0,
|
||||||
|
"nearmisses": 42.0,
|
||||||
|
"percentTimeMoving": 0.0,
|
||||||
|
"miscXp": 0.0,
|
||||||
|
"longestStreak": 8.0,
|
||||||
|
"damageDone": 904.0,
|
||||||
|
"shotsFired": 76.0,
|
||||||
|
"damageTaken": 459.0
|
||||||
|
},
|
||||||
|
"weaponStats": {
|
||||||
|
"1911": {
|
||||||
|
"hits": 5.0,
|
||||||
|
"kills": 2.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 2.0,
|
||||||
|
"shots": 16.0,
|
||||||
|
"startingWeaponXp": 33000.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 360.0
|
||||||
|
},
|
||||||
|
"VLK Rogue": {
|
||||||
|
"hits": 1.0,
|
||||||
|
"kills": 0.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 2.0,
|
||||||
|
"startingWeaponXp": 64200.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 45.0
|
||||||
|
},
|
||||||
|
"X16": {
|
||||||
|
"hits": 3.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 3.0,
|
||||||
|
"shots": 8.0,
|
||||||
|
"startingWeaponXp": 34600.0,
|
||||||
|
"deaths": 0.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"AUG": {
|
||||||
|
"hits": 6.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 0.0,
|
||||||
|
"shots": 23.0,
|
||||||
|
"startingWeaponXp": 77500.0,
|
||||||
|
"deaths": 2.0,
|
||||||
|
"xpEarned": 180.0
|
||||||
|
},
|
||||||
|
"Kilo 141": {
|
||||||
|
"hits": 6.0,
|
||||||
|
"kills": 1.0,
|
||||||
|
"headshots": 0.0,
|
||||||
|
"loadoutIndex": 5.0,
|
||||||
|
"shots": 11.0,
|
||||||
|
"startingWeaponXp": 107700.0,
|
||||||
|
"deaths": 1.0,
|
||||||
|
"xpEarned": 270.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"allPlayers": null,
|
||||||
|
"Gunfight": false,
|
||||||
|
"privateMatch": false
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
204
get_cod_stats.py
204
get_cod_stats.py
@ -1,8 +1,10 @@
|
|||||||
|
import sys
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import argparse
|
import argparse
|
||||||
from cod_api import API, platforms
|
from cod_api import API, platforms
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import datetime
|
||||||
|
|
||||||
# Prevent Async error from showing
|
# Prevent Async error from showing
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
@ -251,8 +253,15 @@ replacements = {
|
|||||||
# Initiating the API class
|
# Initiating the API class
|
||||||
api = API()
|
api = API()
|
||||||
COOKIE_FILE = 'cookie.txt'
|
COOKIE_FILE = 'cookie.txt'
|
||||||
|
DIR_NAME = 'stats'
|
||||||
|
MATCH_DIR_NAME = 'matches'
|
||||||
|
|
||||||
def get_and_save_data(player_name=None):
|
def save_to_file(data, filename, dir_name='stats'):
|
||||||
|
"""Utility function to save data to a JSON file."""
|
||||||
|
with open(os.path.join(dir_name, filename), 'w') as json_file:
|
||||||
|
json.dump(data, json_file, indent=4)
|
||||||
|
|
||||||
|
def get_and_save_data(player_name=None, all_stats=False, season_loot=False, identities=False, maps=False):
|
||||||
# Create the stats directory if it doesn't exist
|
# Create the stats directory if it doesn't exist
|
||||||
DIR_NAME = 'stats'
|
DIR_NAME = 'stats'
|
||||||
if not os.path.exists(DIR_NAME):
|
if not os.path.exists(DIR_NAME):
|
||||||
@ -273,26 +282,42 @@ def get_and_save_data(player_name=None):
|
|||||||
|
|
||||||
# Login with sso token
|
# Login with sso token
|
||||||
api.login(api_key)
|
api.login(api_key)
|
||||||
|
|
||||||
# Retrieve data from API
|
# Retrieve data from API
|
||||||
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
# First, determine if any specific optional arguments were given
|
||||||
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
if not (all_stats or season_loot or identities or maps):
|
||||||
season_loot = api.ModernWarfare.seasonLoot(platforms.Activision, player_name)
|
# If no specific optional arguments are given, then default behavior:
|
||||||
map_list = api.ModernWarfare.mapList(platforms.Activision)
|
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||||
identities = api.Me.loggedInIdentities()
|
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||||
|
save_to_file(player_stats, 'stats.json')
|
||||||
# Save results to a JSON file inside the stats directory
|
save_to_file(match_info, 'match_info.json')
|
||||||
with open(os.path.join(DIR_NAME, 'stats.json'), 'w') as json_file:
|
elif all_stats:
|
||||||
json.dump(player_stats, json_file, indent=4)
|
# If the all_stats argument is given:
|
||||||
with open(os.path.join(DIR_NAME, 'match_info.json'), 'w') as json_file:
|
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||||
json.dump(match_info, json_file, indent=4)
|
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||||
with open(os.path.join(DIR_NAME, 'season_loot.json'), 'w') as json_file:
|
player_stats = api.ModernWarfare.fullData(platforms.Activision, player_name)
|
||||||
json.dump(season_loot, json_file, indent=4)
|
match_info = api.ModernWarfare.combatHistory(platforms.Activision, player_name)
|
||||||
with open(os.path.join(DIR_NAME, 'map_list.json'), 'w') as json_file:
|
season_loot_data = api.ModernWarfare.seasonLoot(platforms.Activision, player_name)
|
||||||
json.dump(map_list, json_file, indent=4)
|
map_list = api.ModernWarfare.mapList(platforms.Activision)
|
||||||
with open(os.path.join(DIR_NAME, 'identities.json'), 'w') as json_file:
|
identities_data = api.Me.loggedInIdentities()
|
||||||
json.dump(identities, json_file, indent=4)
|
save_to_file(player_stats, 'stats.json')
|
||||||
|
save_to_file(match_info, 'match_info.json')
|
||||||
|
save_to_file(season_loot_data, 'season_loot.json')
|
||||||
|
save_to_file(map_list, 'map_list.json')
|
||||||
|
save_to_file(identities_data, 'identities.json')
|
||||||
|
else:
|
||||||
|
# For other specific optional arguments:
|
||||||
|
if season_loot:
|
||||||
|
season_loot_data = api.ModernWarfare.seasonLoot(platforms.Activision, player_name)
|
||||||
|
save_to_file(season_loot_data, 'season_loot.json')
|
||||||
|
if identities:
|
||||||
|
identities_data = api.Me.loggedInIdentities()
|
||||||
|
save_to_file(identities_data, 'identities.json')
|
||||||
|
if maps:
|
||||||
|
map_list = api.ModernWarfare.mapList(platforms.Activision)
|
||||||
|
save_to_file(map_list, 'map_list.json')
|
||||||
|
|
||||||
|
# Save results to a JSON file inside the stats directory
|
||||||
def recursive_key_replace(obj, replacements):
|
def recursive_key_replace(obj, replacements):
|
||||||
if isinstance(obj, dict):
|
if isinstance(obj, dict):
|
||||||
new_obj = {}
|
new_obj = {}
|
||||||
@ -331,24 +356,114 @@ def sort_data(data):
|
|||||||
data[key] = sort_data(value)
|
data[key] = sort_data(value)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def replace_time_and_duration_recursive(data):
|
||||||
|
"""
|
||||||
|
Recursively replace epoch times for specific keys in a nested dictionary or list.
|
||||||
|
"""
|
||||||
|
if isinstance(data, list):
|
||||||
|
for item in data:
|
||||||
|
replace_time_and_duration_recursive(item)
|
||||||
|
|
||||||
|
elif isinstance(data, dict):
|
||||||
|
for key, value in data.items():
|
||||||
|
if key == "utcStartSeconds":
|
||||||
|
data[key] = epoch_to_human_readable(value)
|
||||||
|
# For EST conversion:
|
||||||
|
# data[key] = epoch_to_human_readable(value, "EST")
|
||||||
|
|
||||||
|
elif key == "utcEndSeconds":
|
||||||
|
data[key] = epoch_to_human_readable(value)
|
||||||
|
# For EST conversion:
|
||||||
|
# data[key] = epoch_to_human_readable(value, "EST")
|
||||||
|
|
||||||
|
elif key == "duration":
|
||||||
|
data[key] = convert_duration(value)
|
||||||
|
|
||||||
|
else:
|
||||||
|
replace_time_and_duration_recursive(value)
|
||||||
|
|
||||||
|
def epoch_to_human_readable(epoch_timestamp, timezone='GMT'):
|
||||||
|
if isinstance(epoch_timestamp, str):
|
||||||
|
return epoch_timestamp # Already converted
|
||||||
|
|
||||||
|
dt_object = datetime.datetime.utcfromtimestamp(epoch_timestamp)
|
||||||
|
if timezone == 'GMT':
|
||||||
|
date_str = dt_object.strftime("GMT: %A, %B %d, %Y %I:%M:%S %p")
|
||||||
|
elif timezone == 'EST':
|
||||||
|
dt_object -= datetime.timedelta(hours=4) # Using 4 hours for EST conversion instead of 5?
|
||||||
|
date_str = dt_object.strftime("EST: %A, %B %d, %Y %I:%M:%S %p")
|
||||||
|
else:
|
||||||
|
raise ValueError("Unsupported timezone.")
|
||||||
|
return date_str
|
||||||
|
|
||||||
|
def convert_duration(milliseconds):
|
||||||
|
if isinstance(milliseconds, str) and "Minutes" in milliseconds:
|
||||||
|
return milliseconds # Already converted
|
||||||
|
|
||||||
|
seconds, milliseconds = divmod(milliseconds, 1000)
|
||||||
|
minutes, seconds = divmod(seconds, 60)
|
||||||
|
return f"{minutes} Minutes {seconds} Seconds {milliseconds} Milliseconds"
|
||||||
|
|
||||||
def beautify_data():
|
def beautify_data():
|
||||||
file_path = "stats.json"
|
file_path = (os.path.join(DIR_NAME, 'stats.json'))
|
||||||
with open(file_path, 'r') as file:
|
with open(file_path, 'r') as file:
|
||||||
data = json.load(file)
|
data = json.load(file)
|
||||||
data = recursive_key_replace(data, replacements)
|
data = recursive_key_replace(data, replacements)
|
||||||
data = sort_data(data)
|
data = sort_data(data)
|
||||||
with open(file_path, 'w') as file:
|
with open(file_path, 'w') as file:
|
||||||
json.dump(data, file, indent=4)
|
json.dump(data, file, indent=4)
|
||||||
print(f"Keys sorted and replaced in {file_path}!")
|
print(f"Keys sorted and replaced in {file_path}.")
|
||||||
|
|
||||||
def beautify_match_data():
|
def beautify_match_data():
|
||||||
file_path = "match_info.json"
|
file_path = (os.path.join(DIR_NAME, 'match_info.json'))
|
||||||
with open(file_path, 'r') as file:
|
with open(file_path, 'r') as file:
|
||||||
data = json.load(file)
|
data = json.load(file)
|
||||||
|
replace_time_and_duration_recursive(data)
|
||||||
data = recursive_key_replace(data, replacements)
|
data = recursive_key_replace(data, replacements)
|
||||||
with open(file_path, 'w') as file:
|
with open(file_path, 'w') as file:
|
||||||
json.dump(data, file, indent=4)
|
json.dump(data, file, indent=4)
|
||||||
print(f"Keys replaced in {file_path}!")
|
print(f"Keys replaced in {file_path}.")
|
||||||
|
|
||||||
|
def split_matches_into_files():
|
||||||
|
"""
|
||||||
|
Split the matches in match_info.json into separate files.
|
||||||
|
"""
|
||||||
|
MATCHES_DIR = os.path.join(DIR_NAME, MATCH_DIR_NAME)
|
||||||
|
|
||||||
|
# Create matches directory if it doesn't exist
|
||||||
|
if not os.path.exists(MATCHES_DIR):
|
||||||
|
os.makedirs(MATCHES_DIR)
|
||||||
|
|
||||||
|
# Load the match_info data
|
||||||
|
with open(os.path.join(DIR_NAME, 'match_info.json'), 'r') as file:
|
||||||
|
data = json.load(file)
|
||||||
|
matches = data.get('data', {}).get('matches', []) # Correct the key to access matches
|
||||||
|
|
||||||
|
# Check if data needs cleaning
|
||||||
|
sample_match = matches[0] if matches else {}
|
||||||
|
if (isinstance(sample_match.get("utcStartSeconds"), int) or
|
||||||
|
isinstance(sample_match.get("utcEndSeconds"), int) or
|
||||||
|
isinstance(sample_match.get("duration"), int)):
|
||||||
|
|
||||||
|
print("Cleaning match data...")
|
||||||
|
replace_time_and_duration_recursive(data)
|
||||||
|
|
||||||
|
# Save the cleaned data back to match_info.json
|
||||||
|
with open(os.path.join(DIR_NAME, 'match_info.json'), 'w') as file:
|
||||||
|
json.dump(data, file, indent=4)
|
||||||
|
|
||||||
|
# Split and save each match into a separate file
|
||||||
|
for idx, match in enumerate(matches):
|
||||||
|
# Create a copy of the match to ensure we don't modify the original data
|
||||||
|
match_copy = dict(match)
|
||||||
|
# Remove player subkey to avoid the cascading data, if you want to exclude more, add them here
|
||||||
|
match_copy.pop('player', None)
|
||||||
|
|
||||||
|
file_name = f"match_{idx + 1}.json"
|
||||||
|
with open(os.path.join(MATCHES_DIR, file_name), 'w') as match_file:
|
||||||
|
json.dump(match_copy, match_file, indent=4)
|
||||||
|
|
||||||
|
print(f"Matches split into {len(matches)} separate files in {MATCHES_DIR}.")
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Define the block of quote text to display in the help command
|
# Define the block of quote text to display in the help command
|
||||||
@ -360,21 +475,48 @@ def main():
|
|||||||
- Enter the value when prompted
|
- Enter the value when prompted
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="COD Data Tool", epilog=help_text, formatter_class=argparse.RawDescriptionHelpFormatter)
|
parser = argparse.ArgumentParser(description="Detailed Modern Warfare (2019) Statistics Tool", epilog=help_text, formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||||
|
|
||||||
# Add arguments for your commands
|
# Group related arguments
|
||||||
parser.add_argument("--replace-data", action="store_true", help="Beautify the data in stats.json")
|
group_data = parser.add_argument_group("Data Fetching Options")
|
||||||
parser.add_argument("--replace-match-data", action="store_true", help="Beautify the match data in match_info.json")
|
group_cleaning = parser.add_argument_group("Data Cleaning Options")
|
||||||
parser.add_argument("--player-name", type=str, help="Player's username (with #1234567)")
|
|
||||||
|
# Add arguments for Data Fetching Options
|
||||||
|
group_data.add_argument("-p", "--player_name", type=str, help="Player's username (with #1234567)")
|
||||||
|
group_data.add_argument("-a", "--all_stats", action="store_true", help="Fetch all the different types of stats data")
|
||||||
|
group_data.add_argument("-sl", "--season_loot", action="store_true", help="Fetch only the season loot data")
|
||||||
|
group_data.add_argument("-i", "--identities", action="store_true", help="Fetch only the logged-in identities data")
|
||||||
|
group_data.add_argument("-m", "--maps", action="store_true", help="Fetch only the map list data")
|
||||||
|
|
||||||
|
# Add arguments for Cleaning Options
|
||||||
|
group_cleaning.add_argument("-c", "--clean", action="store_true", help="Beautify all data")
|
||||||
|
group_cleaning.add_argument("-sm", "--split_matches", action="store_true", help="Split the matches into separate JSON files within the 'matches' subfolder")
|
||||||
|
group_cleaning.add_argument("-csd", "--clean_stats_data", action="store_true", help="Beautify the data and convert to human-readable strings in stats.json")
|
||||||
|
group_cleaning.add_argument("-cmd", "--clean_match_data", action="store_true", help="Beautify the match data and convert to human-readable strings in match_info.json")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.replace_data:
|
# Custom error handling
|
||||||
|
# try:
|
||||||
|
# args = parser.parse_args()
|
||||||
|
# except SystemExit:
|
||||||
|
# # Check if 'player_name' is in sys.argv, if not, raise exception
|
||||||
|
# if '--player_name' not in sys.argv and '-p' not in sys.argv:
|
||||||
|
# print('You must specify a player name!')
|
||||||
|
# # Otherwise, re-raise the error or print the default error message.
|
||||||
|
# sys.exit(1)
|
||||||
|
|
||||||
|
if args.split_matches:
|
||||||
|
split_matches_into_files()
|
||||||
|
elif args.clean_stats_data:
|
||||||
|
beautify_data()
|
||||||
|
elif args.clean_match_data:
|
||||||
|
beautify_match_data()
|
||||||
|
elif args.clean:
|
||||||
beautify_data()
|
beautify_data()
|
||||||
elif args.replace_match_data:
|
|
||||||
beautify_match_data()
|
beautify_match_data()
|
||||||
else:
|
else:
|
||||||
get_and_save_data(args.player_name)
|
get_and_save_data(args.player_name, args.all_stats, args.season_loot, args.identities, args.maps)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
Loading…
Reference in New Issue
Block a user