Josko / aura-bot

Warcraft III high-performance hosting bot written in C++14.
72 stars 41 forks source link

can't host on pvpgn #72

Closed juvian closed 4 years ago

juvian commented 6 years ago

I have configured both bnet server and eurobattle pvpgn. Then an admin created game from whispering in eurobattle. People can then join game from bnet but not from eurobattle. Have also tried only configuring eurobattle but same issue.

This is my config:

bnet2_server = server.eurobattle.net bnet2_serveralias = EuroBattle bnet2_cdkeyroc = FFFFFFFFFFFFFFFFFFFFFFFFFF bnet2_cdkeytft = FFFFFFFFFFFFFFFFFFFFFFFFFF bnet2_locale = system bnet2_username = xxx bnet2_password = xxx bnet2_firstchannel = The Void bnet2_rootadmins = xxx bnet2_commandtrigger = ! bnet2_custom_war3version = 28 bnet2_custom_exeversion = 0 5 28 1 bnet2_custom_exeversionhash = 201 63 116 96 bnet2_custom_passwordhashtype = pvpgn bnet2_custom_pvpgnrealmname = PvPGN Realm

Do you know what may be the issue?

Josko commented 6 years ago

Well, one thing that comes to mind is that the official BNET is running version 29 whilst XPAM is still on 28. So if you load the map with !load it will use the (probably) newer W3 files to determine hashes and so on - which would be wrong for the the players on the different W3 version, in this case XPAM.

Previously this was certainly a non-issue due to infrequent patches, XPAM keeping up the version most of the time and people not running bots on every possible realm most of the time. FMPOV it's currently not possible for different W3 versions in same lobby.

Correct me if I'm wrong.

juvian commented 6 years ago

The solution is to change MAX_SLOTS to 12 and change packet.push_back(110); to packet.push_back(98); Might be nice to have MAX_SLOTS as setting on cfg file and to change packet.push_back(110); to packet.push_back(86 + MAX_SLOTS);

Its true that due to 1.29 having different blizzard.j and common.j files, you can't join from both 1.28 and 1.29 server to same game. As a test though I made a map with those 2 files included from 1.28 and could join the game from both 1.29 and 1.28. The problem was that as soon as game began it gets desync, haven't really looked how are the packets sent from 1.29 different than 1.28, maybe its something simple that can be ignored/fixed and allow playing from both versions.