Skip to content

Cmd_CheckInLobby

GigaToni edited this page May 4, 2017 · 2 revisions

Client -> Server = Cmd_CheckInLobby (41)

This is the first packet in the communication of the client and the lobby server. This basically sets up the connection.

  • The first 4-Bytes is an unsigned int containing the protocol version the client is talking in
  • Followed by an int for the session ticket. This authenticates the client to the server without re-sending username / password
  • This is the username of the logged in user.
  • Client time used to generate / authenticate the session ticket
  • string containing the session ticket
  • 50 bytes of unknown data

Answer Packet: Cmd_CheckInLobbyAck (42)

Raw packet data sent by server

000000: 09 28 00 00 8D F8 4A 26 61 00 64 00 6D 00 69 00  · ( · · · · J & a · d · m · i · 
000016: 6E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  n · · · · · · · · · · · · · · · 
000032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  · · · · · · · · · · · · · · · · 
000048: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  · · · · · · · · · · · · · · · · 
000064: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  · · · · · · · · · · · · · · · · 
000080: 00 00 00 00 00 00 00 00 6E 00 00 00 00 00 00 00  · · · · · · · · n · · · · · · · 
000096: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  · · · · · · · · · · · · · · · · 
000112: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  · · · · · · · · · · · · · · · · 
000128: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  · · · · · · · · · · · · · · · · 
000144: 00 00 00 00 00 00 00 00 00 00 00 00 47 7E 10 00  · · · · · · · · · · · · G · · · 
000160: 2E 00 7D 8F 91 43  . · · · · C 

Pseudo struct

typedef struct
{
    unsigned int ProtocolVersion;
    unsigned int Ticket;
    char m_ID[40];
    unsigned int m_Time;
    char m_STicket[64];
    char unknown1[50];
};

Pseudo C# Class

public class CheckInLobbyPacket
{
    public uint ProtocolVersion;
    public uint Ticket;
    public string Username;
    public uint Time;
    public string StringTicket;

    public CheckInLobbyPacket(Packet packet)
    {
        ProtocolVersion = packet.Reader.ReadUInt32();
        Ticket = packet.Reader.ReadUInt32();
        Username = packet.Reader.ReadUnicodeStatic(0x28);
        Time = packet.Reader.ReadUInt32();
        StringTicket = packet.Reader.ReadAsciiStatic(0x40);
    }
}
Clone this wiki locally