Packets: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 114: | Line 114: | ||
|- | |- | ||
|||LOGIN_LOCKED_ENFORCED||0x10 | |||LOGIN_LOCKED_ENFORCED||0x10 | ||
|} | |||
=Realm List= | |||
==SRealmHeader== | |||
{|style="background:#FCFCFC; color:black" | |||
| | |||
! width="70" | Offset | |||
! width="70" | Type | |||
! width="100" | Name | |||
! width="200"| Description | |||
|- | |||
|||0x0||uint8||cmd||OP code = CMD_REALM_LIST | |||
|- | |||
|||0x1||uint16||size||size of the rest of packet, without this part | |||
|- | |||
|||0x3||uint32||unknown||0x00 00 00 00 | |||
|- | |||
|||0x7||uint8||nRealm||Number of realms | |||
|- | |||
|} | |||
==SRealmInfo== | |||
{|style="background:#FCFCFC; color:black" | |||
| | |||
! width="110" | Offset | |||
! width="60" | Type | |||
! width="100" | Name | |||
! width="200"| Description | |||
|- | |||
|||0x0||uint8||icon||icon near realm | |||
|- | |||
|||0x1||uint8||locked||dded in 2.0.x | |||
|- | |||
|||0x2||uint8||color||color of record | |||
|- | |||
|||0x3||string||name||Zero terminated string; name of the Realm | |||
|- | |||
|||0x3+name.length()||string||addr_port||Zero terminated string;address of the Realm ("ip:port") | |||
|- | |||
|||0x3+name.length()+addr_port.length()||float||population||1.6 -> population value. lower == lower population and vice versa | |||
|- | |||
|||0x7+name.length()+addr_port.length()||uint8||nCharacters||the Number of Chars you have on that server | |||
|- | |||
|||0x8+name.length()+addr_port.length()||uint8||TimeZone|| | |||
|- | |||
|||0x9+name.length()+addr_port.length()||uint8||unknown | |||
|- | |||
|} | |} | ||
Revision as of 16:54, 8 November 2009
Logon
AuthLogonProof_Client
Offset | Type | Name | Description | |
---|---|---|---|---|
0x0 | uint8 | Command | ||
0x01 | uint8[32] | A | Seriously...WTF? | |
0x21 | uint8[20] | M1 | Never heard about labelling variables clearly? | |
0x35 | uint8[20] | CRC_Hash | ||
0x49 | uint8 | nKeys | ||
0x4A | uint8 | unk | Added in 1.12.x client branch |
AuthLogonProof_Server
Offset | Type | Name | Description | |
---|---|---|---|---|
0x0 | uint8 | Command | ||
0x1 | uint8 | Error | ||
0x2 | uint8[20] | M2 | ||
0x16 | uint32 | unk1 | ||
0x1A | uint32 | unk2 | ||
0x1E | uint16 | unk3 |
AuthLogonChallenge_Client
Offset | Type | Name | Description | |
---|---|---|---|---|
0x0 | uint8 | Command | ||
0x1 | uint8 | Error | ||
0x2 | uint16 | Size | ||
0x4 | char[4] | GameName | 'WoW' | |
0x8 | uint8[3] | Version | 0x00 0x08 0x00 | |
0xB | uint16 | Build | aka Revision | |
0xD | char[4] | Platform | eg 'x86' | |
0x11 | char[4] | OS | eg 'Win' | |
0x15 | char[4] | Country | eg 'enUS' | |
0x19 | uint32 | WorldRegion_bias | ? | |
0x1D | uint32 | IP | Client-IP | |
0x21 | uint32 | AccountName_Length | The Lenght of the Account-Name | |
0x22 | char[] | AccountName |
Logon Errors
Name | Value | |
---|---|---|
LOGIN_OK | 0x00 | |
LOGIN_FAILED | 0x01 | |
LOGIN_FAILED2 | 0x02 | |
LOGIN_BANNED | 0x03 | |
LOGIN_UNKNOWN_ACCOUNT | 0x04 | |
LOGIN_UNKNOWN_ACCOUNT3 | 0x05 | |
LOGIN_ALREADYONLINE | 0x06 | |
LOGIN_NOTIME | 0x07 | |
LOGIN_DBBUSY | 0x08 | |
LOGIN_BADVERSION | 0x09 | |
LOGIN_DOWNLOAD_FILE | 0x0A | |
LOGIN_FAILED3 | 0x0B | |
LOGIN_SUSPENDED | 0x0C | |
LOGIN_FAILED4 | 0x0D | |
LOGIN_CONNECTED | 0x0E | |
LOGIN_PARENTALCONTROL | 0x0F | |
LOGIN_LOCKED_ENFORCED | 0x10 |
Realm List
SRealmHeader
Offset | Type | Name | Description | |
---|---|---|---|---|
0x0 | uint8 | cmd | OP code = CMD_REALM_LIST | |
0x1 | uint16 | size | size of the rest of packet, without this part | |
0x3 | uint32 | unknown | 0x00 00 00 00 | |
0x7 | uint8 | nRealm | Number of realms |
SRealmInfo
Offset | Type | Name | Description | |
---|---|---|---|---|
0x0 | uint8 | icon | icon near realm | |
0x1 | uint8 | locked | dded in 2.0.x | |
0x2 | uint8 | color | color of record | |
0x3 | string | name | Zero terminated string; name of the Realm | |
0x3+name.length() | string | addr_port | Zero terminated string;address of the Realm ("ip:port") | |
0x3+name.length()+addr_port.length() | float | population | 1.6 -> population value. lower == lower population and vice versa | |
0x7+name.length()+addr_port.length() | uint8 | nCharacters | the Number of Chars you have on that server | |
0x8+name.length()+addr_port.length() | uint8 | TimeZone | ||
0x9+name.length()+addr_port.length() | uint8 | unknown |
Char Creation
CMSG_CHAR_CREATE
Upon creating a character, the client sends CMSG_CHAR_CREATE to the server with all the details that makeup the newly created character.
Name | Type | Value | |
---|---|---|---|
Name | String | Name of the Character | |
Race | uint8 | ||
Class | uint8 | ||
Gender | uint8 | 0 - Male; 1 - Female | |
Skin | uint8 | I think it's CharSections.dbc | |
Face | uint8 | but I'm not sure about this | |
HairStyle | uint8 | ||
HairColor | uint8 | ||
FacialHair | uint8 | ||
OutfitID | uint8 |