ggtracker / ggtracker/sc2reader
sc2reader replay.messages and sc2reader.events.message.ChatEvent not getting all messages sent
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 169
- Forks
- 152
- PR merge metrics
- No merged PRs in 30d
Description
It looks like SC2Reader for some reason isn't reading all in-game messages. I'm not sure if it's just this one replay or not as I don't really check through them. This one instance was brought to my attention, otherwise I wouldn't have noticed it.
When either using the chatevent or replay.messages a few messages are missed at a certain point in this specific replay. Messages from the user affected were processed earlier in the replay which is the weird part...
Heres the sc2reader output
[00:23:02] Chat - Gudash: ?
[00:23:04] Chat - Gudash: u wanna team
[00:23:11] Chat - Gudash: k
[00:24:17] Chat - ChannelMiner: close
[00:24:33] Chat - Gudash: help me
[00:24:43] Chat - ChannelMiner: I almost got him
[00:24:45] Chat - Gudash: lol
[00:24:58] Chat - Gudash: hes chasing my ass
[00:24:59] Chat - Gudash: cap
[00:25:10] Chat - Gudash: up right
[00:25:12] Chat - Gudash: of screen
[00:25:16] Chat - Gudash: idk where it is
[00:25:17] Chat - Gudash: xD
[00:25:19] Chat - Gudash: ye
Heres what I get from s2protocol
{'m_chatMessage': b'close', '_event': 'NNet.Game.STriggerChatMessageEvent', '_eventid': 32, '_gameloop': 23315, '_userid': {'m_userId': 7}, '_bits': 72}
{'m_chatMessage': b'so', '_event': 'NNet.Game.STriggerChatMessageEvent', '_eventid': 32, '_gameloop': 23365, '_userid': {'m_userId': 4}, '_bits': 48}
{'m_chatMessage': b'your answer now?', '_event': 'NNet.Game.STriggerChatMessageEvent', '_eventid': 32, '_gameloop': 23409, '_userid': {'m_userId': 4}, '_bits': 160}
{'m_chatMessage': b'help me', '_event': 'NNet.Game.STriggerChatMessageEvent', '_eventid': 32, '_gameloop': 23579, '_userid': {'m_userId': 11}, '_bits': 88}
{'m_chatMessage': b'cool', '_event': 'NNet.Game.STriggerChatMessageEvent', '_eventid': 32, '_gameloop': 23646, '_userid': {'m_userId': 4}, '_bits': 64}
{'m_chatMessage': b'get armory only', '_event': 'NNet.Game.STriggerChatMessageEvent', '_eventid': 32, '_gameloop': 23677, '_userid': {'m_userId': 4}, '_bits': 152}
For some reason user 4's messages aren't getting processed at this particular time in the replay, but they were earlier...
Here's the replay if you want to take a look.
not_all.zip
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the discrepancy with the attached not_all.zip, comparing sc2reader replay.messages and sc2reader.events.message.ChatEvent against the s2protocol output. Start by tracing how the replay's STriggerChatMessageEvent records are converted into chat messages, especially user 4's messages. Done means sc2reader reports the messages missing from the supplied comparison.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100