Open ttinies opened 6 years ago
Adding more detail.
I wanted to extract some game information from replays from WCS Valencia 2018 using Blizzard's API protocol. However, it appears an automatically downloaded Battle.net cache does not sufficiently enable a manual launch of the replay using an older version of the game client which allows protocol connections.
Cannot play older replays using an older version of the SC2 game client manually launched offline with a valid connection to a compatible API client.
SC2APIProtocol.ResponseStartReplay.Error.LaunchError: 'The launch of this game makes reference to mod or map dependencies which are no longer available.'
-PrePopulateCache
option per these instructions.
C:\Users\ME\Documents\StarCraft II\Accounts\#######\1-S2-1-####\Replays\Multiplayer
folder where other replays are located.)C:/Program Files (x86)/StarCraft II\Versions\Base65895\SC2_x64.exe -listen 127.0.0.1 -port 16857 -dataDir C:/Program Files (x86)/StarCraft II\ -tempDir C:\Users\ME\AppData\Local\Temp\sc-a0tio9gx\ -displayMode 1 -dataVersion BF41339C22AE2EDEBEEADC8C75028F7D
I haven't found an elegant solution though to ensure map version used for in match/replay is the same as the what's supplied as mapdata in the SC2APIProtocol.RequestStartReplay.
Kevin @Blizzard GM clarifies that watching replays with the intended map is necessary in this post. This is fine for loading the initial 3.16* replay packs or for replays created using the same machine, map version, client version, etc. that the match was played on just fine.
However, when downloading maps via the developer's Battle.net API, the maps aren't provided with these replay packs. Nor are they available in the replay packs from WCS, such as the recent 2018 WCS Valencia replay pack. If I load the replay directly using the regular client, the replay loads and plays just fine. The problem is when attempting to load using a versioned client (i.e. ...\Starcraft II\Versions\Base#####...) using the client protocol -- somehow loading the map data fails.
For example, if I load the replay between Has and Serral in the WCS Valencia finals on the map "Catalyst LE" using client version 4.4.0.65895, the protocol replay request I'm using has this basic information:
The SC2 client then responds with this message: [quote]SC2APIProtocol.ResponseStartReplay.Error.LaunchError: 'The launch of this game makes reference to mod or map dependencies which are no longer available.'[/quote] I also poked around this replay file using Blizzard's s2protocol tool using python2.7. From the decoded mpyq file contents, there seems to be precious little that might have anything to do with the map. The info below is all I could find... nothing that seems to suggest the needed map version.
Sample decoded mpyq data of "Catalyst LE.SC2Replay" between Serral & Has:
Is there a reliable way to get the version of the map that the replay was played with? Both version and actual map binary data for that version?
How can these replays load using the s2protocol API to extract in-game observation info?
note: Related SC2 API forum post