Blizzard / Blizzard/s2protocol
Where is Skin Info?
- Dominant language
- Python
- Stars
- 641
- Forks
- 118
- PR merge metrics
- No merged PRs in 30d
Description
I was interested in whether a player is using skins in a replay.
I thought the skin info is this: m_syncLobbyState->m_userInitialData->m_skin
So the code was like (if I want to print out the first player's skin info):
`archive = mpyq.MPQArchive(replay_path)`
`contents = archive.header['user_data_header']['content']`
`header = versions.latest().decode_replay_header(contents)`
`baseBuild = header['m_version']['m_baseBuild']`
`protocol = versions.build(baseBuild)`
`initData = archive.read_file('replay.initData')`
`InitData = protocol.decode_replay_initdata(initData)['m_syncLobbyState']['m_userInitialData']`
`print(InitData[0]['m_skin'])`
But for all the replays I checked, all players had `b''` , which means they are not using skin....?
While some of the replays did have players using skin.
So it that the right place to find skin info?
Or is it actually stored somewhere else?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the replay decoding flow shown in the issue: replay.initData, decode_replay_initdata, m_syncLobbyState, m_userInitialData, and m_skin. Compare the decoded values with replays known to contain player skins and inspect whether another mentioned replay section or field contains the information. Done means identifying the correct location or confirming why m_skin is empty, with a reproducible example.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100