S>C 0x04 MCP_JOINGAME

Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Diablo II Realm Messages (MCP)
Message Id:0x04
Message Name:MCP_JOINGAME
Direction:Server to Client
Used By:Diablo II, Diablo II Lord of Destruction
Message Format:
(does not include protocol header)
(UINT16) Request ID
(UINT16) Game token
(UINT16) Unknown (0)
(UINT32) IP of D2GS Server
(UINT32) Game hash
(UINT32) Result

Remarks

Received when attempting to join a closed Battle.net game using MCP_JOINGAME.

Possible values for result:

  • 0x00: Game joining succeeded. In this case, Diablo 2 terminates the connection with the MCP and initiates the connection with the D2GS.
  • 0x29: Password incorrect.
  • 0x2A: Game does not exist.
  • 0x2B: Game is full.
  • 0x2C: You do not meet the level requirements for this game.
  • 0x6E: A dead hardcore character cannot join a game.
  • 0x71: A non-hardcore character cannot join a game created by a Hardcore character.
  • 0x73: Unable to join a Nightmare game.
  • 0x74: Unable to join a Hell game.
  • 0x78: A non-expansion character cannot join a game created by an Expansion character.
  • 0x79: A Expansion character cannot join a game created by a non-expansion character.
  • 0x7D: A non-ladder character cannot join a game created by a Ladder character.
| Edited: LordVader

Comments

jaenster

0x7D is also send if a ladder char tries to join a non ladder game.

The shown error is decided in the client (either for ladder or non ladder)

      case 0x7d:
        if (D2IniData_multiplayer->isLadder == '\0') {
                // Unable to enter game. A Ladder character cannot join a game created by a
                // Non-Ladder character.
          uVar12 = 0x2ab2;
        }
        else {
                // Unable to enter game. A Non-Ladder character cannot join a game created by a
                // Ladder character.
          uVar12 = 0x2ab1;
        }