Patch 1.28 introduced a change in order ids which is capable of breaking various functionality in many maps.
I suspect Blizzard will try to quickly patch to revert this change, but until then we probably could benefit from some stopgap measures. And as one such measure...
I wrote a tool to automate converting the known changed order ids to their new values.
It is a very simple tool that only does pattern matching to find numbers in base16 or base10, and changes those numbers if they correspond with an order id from the game before patch 1.28.
Maps that will benefit from this would be maps that used order ids straight as they are, or used order strings and had said strings converted to ids through an optimizer.
The tool simply tries to extract the map script file, run a lua script on it to handle the conversion, and then generate a new map with the modified script.
As it is a very simple tool, there is no guarantee it will fix anything. Scripts always have the option of using GetIssuedOrderId or OrderId or OrderId2StringBJ, and then manipulating and using that value (such as to index an array). Or the script might offset from a base order value instead of using the order ids directly. Such usage will not be fixed by this tool. You would have to fix those errors yourself by modifying the map script file.
But hey, if you are lucky, this tool might fix some of the bugs 1.28 introduced in the maps you like.
Quote:
Usage:
1) copy map to attempt conversion on into the same folder as the mottr7.exe file
2) drag the map onto mottr7.exe
3) optionally, drag the generated "output.w3m" or "output.w3x" file onto w3mr.exe to try to reclaim some space
4) optionally, view the created log.txt file to see what changes were made
5) copy the modified map somewhere the game can see it and try it out
a) use the "output_repack.w3x" map if you did step 3
b) use the "output.w3m" or "output.w3x" map if you only did step 2
|
Things to keep in mind:
- this is not meant to be used on maps that you yourself are developing. If you are developing a map and you are using order ids directly for some reason, you should fix up your script yourself.
- always keep a copy of the original map. Blizzard may patch the game to fix this issue and the older map will be vital in this circumstance.
- any fixed behavior as a result of using this tool will break if the generated map is used on a game version before 1.28 (another reason to keep the old map around)