redraskal / r6-dissect

Match Replay API/CLI for Rainbow Six: Siege's Dissect (.rec) format.
MIT License
70 stars 11 forks source link

Analyze Arcade match #111

Open f870103 opened 2 months ago

f870103 commented 2 months ago

Describe the bug R6 is now able to replay an arcade match, but currently r6-dissect is not able to analyze them.

Tested Arcade Match Type

Additional context Trying to analyze any Arcade match will generate a similiar output like this:


8:38PM DBG warn: could not index player by id id=04f91000
8:38PM DBG scoreboard_score score=4205 username=N/A
8:38PM DBG warn: could not index player by id id=04e40c00
8:38PM DBG scoreboard_score score=4345 username=N/A
8:38PM DBG warn: could not index player by id id=01002249
8:38PM DBG scoreboard_score score=3300 username=N/A
8:38PM DBG warn: could not index player by id id=04420000
8:38PM DBG scoreboard_score score=1715 username=N/A
8:38PM DBG warn: could not index player by id id=04170000
8:38PM DBG scoreboard_score score=2430 username=N/A
8:38PM DBG warn: could not index player by id id=041a0000
8:38PM DBG scoreboard_score score=2400 username=N/A
8:38PM DBG warn: could not index player by id id=01002249
8:38PM DBG scoreboard_score score=1770 username=N/A
8:38PM DBG warn: could not index player by id id=01002249
8:38PM DBG scoreboard_score score=995 username=N/A
8:38PM DBG warn: could not index player by id id=04180000
8:38PM DBG scoreboard_score score=4410 username=N/A
8:38PM DBG round_end
8:38PM DBG warn: could not index player by username username=Username1
panic: runtime error: index out of range [-1]

goroutine 1 [running]:
github.com/redraskal/r6-dissect/dissect.(*Reader).roundEnd(0xc0000c1d48)
        /github/workspace/dissect/time.go:59 +0x9dd
github.com/redraskal/r6-dissect/dissect.(*Reader).Read(0xc0000c1d48)
        /github/workspace/dissect/reader.go:229 +0x49d
github.com/redraskal/r6-dissect/dissect.(*MatchReader).read(0xc000274310, 0x0)
        /github/workspace/dissect/match.go:75 +0x207
github.com/redraskal/r6-dissect/dissect.(*MatchReader).Read(...)
        /github/workspace/dissect/match.go:80
main.writeMatch(0x11f5420?, {0x11f31aa, 0x4}, {0x1285f40, 0xc0000a0038})
        /github/workspace/main.go:151 +0x72
main.main()
        /github/workspace/main.go:60 +0x42b
redraskal commented 1 month ago

this project was not designed for the teams in the arcade modes. it'll require restructuring some code in the future. right now, i'm looking at fixing plant stats and some other things that broke with the latest season