How can I recover a disconnected Warcraft 3 multiplayer game?

When playing Warcraft 3 multiplayer maps, there exists the option to save the game. The caution is given that only the original players are able to rejoin the map. I have discovered that a map saved after a disconnect does not permit them to rejoin.

The only solution obvious to me would be to edit the savegame files to add the player back in in control of their forces. How to accomplish that, or any other method of recovering a networked game will be accepted.

Instructions to eliminate disconnections from a hostile network environment will also be accepted. Final testing was done in a LAN game over a gigabit switch to minimize the effects of network latency.


Solution 1:

It's been a while since you asked, but for a long time now there has existed an external program called GProxy++ that offers exactly this functionality.

GProxy++ is a tool created by Varlock, which allows reconnecting to a GHost++ server in case of a Internet disconnect, WLAN interruption, or other network related issues which would normally cause a disconnect from the game.

This works because GProxy++ proxies the connection between GHost++ and Warcraft III. If you disconnect from the game, GProxy++ detects it and starts trying reconnect to the server. Because Warcraft III automatically disconnects if no packet from the server is recieved within 65 seconds, GProxy++ sends empty messages to ensure Warcraft III stays in the game. If the reconnect is successful the game can continue. The user of GProxy++ has hereby a limited time amount. This can be set in the ghost.cfg of the GHost++ server. In some rare situations, you only have 65 seconds before you disconnect, without the change of reconnecting again.

Using it is slightly nontrivial. The original author's forums no longer exist, so you'll have to settle for this tutorial: http://wiki.entgaming.net/index.php?title=EntGaming:GProxyVarlock

This won't work on any arbitrary game. Only games hosted with GHost++ with GProxy support active will allow you to reconnect. In addition, all other players will have to wait until you either reconnect or time out - the game won't continue without you.

Solution 2:

This is because a dropped player's slot is handed over to a special AI slot.

You should be able to edit the save file by changing the relevant player slot back to a human's. I can't give exact instructions while on a machine without the editor but there are only a few clicks involved. Check the player's menu in the editor.