Chat Protocol

From HoNWiki

Jump to: navigation, search

Contents

[edit] Client -> Server

[edit] Login

ID: 0xFF
DWORD: account id
STRING: cookie
DWORD: 0x05

[edit] Leave Room/Channel

ID: 0x22
STRING: roomname

[edit] Join Room/Channel

ID: 0x1E
STRING: roomname

[edit] Pong

ID: 0x02

[edit] Channel Message

ID: 0x03
STRING: message
DWORD: channel id

[edit] Whisper

ID: 0x08
STRING: recipient
STRING: message

[edit] Private Message

ID: 0x1C
STRING: recipient
STRING: message

[edit] Channel List

ID: 0x1F

[edit] Whois

ID: 0x2A
STRING: username

[edit] Clan Message

ID: 0x13
STRING: message

[edit] Clan Invite

ID: 0x47
STRING: user


[edit] Server -> Client

[edit] Response Login

ID: 0x00
You must respond to this packet with 0x012A

[edit] Ping

ID: 0x01
You must respond to this packet with pong

[edit] Chat Message

ID: 0x03
DWORD: account id
DWORD: channel id
STRING: message

[edit] Response Join Room/Channel

ID: 0x04
STRING: channel
DWORD: channel id
BYTE: unknown (channel flags? 0x18)
STRING: topic
DWORD: op count
DWORD: account id
BYTE: type
DWORD: user count
STRING: name
DWORD: account id
BYTE: state
BYTE: flags

[edit] Notification Message

ID: 0x12
BYTE: ID(?) of the notification
STRING: The message displayed.

[edit] Player Joined Chat

ID: 0x05
STRING: name
DWORD: account id
DWORD: channel id
BYTE: state
BYTE: flags

[edit] Player Left Chat

ID: 0x06
DWORD: account id
DWORD: channel id

[edit] Whisper

ID: 0x08
STRING: user
STRING: message

[edit] Buddy List

ID: 0x0B
DWORD: count
DWORD: account id
BYTE: state
BYTE: flags
STRING: server (if in lobby/in game)
STRING: game name (if in game)

[edit] User Status Update

ID: 0x0C
DWORD: account id
BYTE: state
BYTE: flags
DWORD: clan id
STRING: clan
STRING: server (if in lobby/in game)
STRING: game name (if in game)
DWORD: match id

[edit] Clan Message

ID: 0x13
DWORD: buddy id
STRING: message

[edit] Private Message

ID: 0x1C
STRING: user
STRING: message

[edit] Channel List

ID: 0x1F
DWORD: count
DWORD: channel id
STRING: name
DWORD: user count

[edit] Whois (Not Found)

ID: 0x2B
STRING: Username

[edit] Whois (Offline)

ID: 0x2C
STRING: Username
STRING: Last Seen

[edit] Whois (In Channels)

ID: 0x2D
STRING: Username
DWORD: count
STRING: channel

[edit] Whois (In Game)

ID: 0x2E
STRING: game name
STRING: game time

[edit] Online Count

ID: 0x68
DWORD: Number of online players

[edit] Flags

[edit] User States

Offline: 0x00
Online: 0x03
In Lobby: 0x04
In Game: 0x05

[edit] User Flags

None: 0x00
Moderator: 0x01
Founder: 0x02
Prepurchased:0x40

[edit] Notes

  • COOKIE - a cookie got from masterserver logon
  • DWORD - 4 byte unsigned int, little endian
  • ID - single byte, identifies a packet type
  • STRING - UTF8 string, zero terminated
  • A Server->Client packet is always preceded by its length (DWORD)
  • In login procedure account id is NOT checked against cookie
Personal tools
Google AdSense