|
|
(4 intermediate revisions by the same user not shown) |
Line 5: |
Line 5: |
| See [[Login Packet]]s. The opcode value corresponds to the packet name. | | See [[Login Packet]]s. The opcode value corresponds to the packet name. |
|
| |
|
| {| class="wikitable"
| | See [[Login Packet Results]] for result values. |
| |+ Error codes
| | |
| ! Name
| | See [[Login Packet Security Flags]] for security flag values. These are only used for {{Template:Sandbox/PrettyVersion|expansionlevel=2}} and later. |
| ! Value
| |
| ! Client Message
| |
| |-
| |
| | SUCCESS || 0x00
| |
| |-
| |
| | FAIL_UNKNOWN0 || 0x01 || "Unable to Connect"
| |
| |-
| |
| | FAIL_UNKNOWN1 || 0x02 || "Unable to Connect"
| |
| |-
| |
| | FAIL_BANNED || 0x03 || "The World of Warcraft account has been closed and is no longer available for use.<br>Please go to http://www.wow-europe.com/en/misc/banned.html for further information.
| |
| |-
| |
| | FAIL_UNKNOWN_ACCOUNT || 0x04 || "The information you have entered is not valid.<br>Please check the spelling of the account name and password.<br>If you need help in retrieving a lost or stolen password and account,<br>see http://www.wow-europe.com for more information."
| |
| |-
| |
| | FAIL_INCORRECT_PASSWORD || 0x05 || "The information you have entered is not valid.<br>Please check the spelling of the account name and password.<br>If you need help in retrieving a lost or stolen password and account,<br>see http://www.wow-europe.com for more information."
| |
| |- | |
| | FAIL_ALREADY_ONLINE || 0x06 || "This account is already logged into World of Warcraft.<br>Please check the spelling and try again."
| |
| |-
| |
| | FAIL_NO_TIME || 0x07 || "You have used up your prepaid time for this account.<br>Please purchase more to continue playing."
| |
| |-
| |
| | FAIL_DB_BUSY || 0x08 || "Could not log in to World of Warcraft at this time.<br>Please try again later."
| |
| |-
| |
| | FAIL_VERSION_INVALID || 0x09 || "Unable to validate game version.<br>This may be caused by file corruption or the interference of another program.<br>Please visit http://www.wow-europe.com/en/support/ for more information and possible solutions to this issue."
| |
| |-
| |
| | LOGIN_DOWNLOAD_FILE || 0x0A || "Downloading"
| |
| |-
| |
| | FAIL_INVALID_SERVER || 0x0B || "Unable to Connect"
| |
| |-
| |
| | FAIL_SUSPENDED || 0x0C || "The World of Warcraft account has been temporarily suspended.<br>Please go to http://www.wow-europe.com/en/misc/banned.html for further information.
| |
| |-
| |
| | FAIL_NO_ACCESS || 0x0D || "Unable to Connect"
| |
| |-
| |
| | SUCCESS_SURVEY || 0x0E || "Success!"<br>Pressing cancel either shows a cached realmlist or "Retrieving realm list".
| |
| |-
| |
| | FAIL_PARENTALCONTROL || 0x0F || "Access to this account has been blocked by parental controls.<br>Your settings may be changed in your account preferences at http://www.worldofwarcraft.com."
| |
| |-
| |
| | FAIL_LOCKED_ENFORCED || 0x10 || Does not appear to be valid on 1.12.1.
| |
| |}
| |
|
| |
|
| ==Challenge packets== | | ==Challenge packets== |
Line 65: |
Line 28: |
| === Server === | | === Server === |
|
| |
|
| {| class="wikitable"
| | See [[CMD_AUTH_LOGON_PROOF_Server]]. |
| |+ AuthLogonProof_Server
| |
| ! Offset
| |
| ! Size
| |
| ! Type
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| !colspan="5"| Header
| |
| |-
| |
| | 0x0 || 1 / - || uint8 || command || LOGIN_PROOF (0x1)
| |
| |-
| |
| | 0x1 || 1 / - || uint8 || error || The fields below are only included if this is LOGIN_OK (0x0).
| |
| |-
| |
| !colspan="5"| Body
| |
| |-
| |
| | 0x2 || 20 / Little || uint8[20] || m2 || SRP6 Server proof.
| |
| |-
| |
| | 0x16 || 4 / Little || uint32 || hardware_survey_id || ID of a hardware survey that the client should perform. <br>Set to 0 to not use. Can safely be set to 0.
| |
| |}
| |
|
| |
|
| ==Reconnection challenge packets== | | ==Reconnection challenge packets== |
Line 112: |
Line 56: |
| === Client === | | === Client === |
|
| |
|
| {| class="wikitable"
| | See [[CMD_REALM_LIST_Client]]. |
| |+ RealmList_Client
| |
| ! Offset
| |
| ! Size / Endianness
| |
| ! Type
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| | 0x0 || 1 / - || uint8 || cmd || REALMLIST (0x10)
| |
| |-
| |
| | 0x1 || 4 / - || uint32 || unknown || Hardcoded to 0 in the client. Can be expected to always be 0.
| |
| |-
| |
| |}
| |
|
| |
|
| === Server === | | === Server === |
|
| |
|
| The server answers with a packet composed of a RealmHeader_Server, as many
| | See [[CMD_REALM_LIST_Server]]. |
| RealmInfo_Server as specified and a RealmFooter_Server.
| |
| | |
| ==== Header ====
| |
| | |
| {| class="wikitable"
| |
| |+ RealmHeader_Server
| |
| ! Offset
| |
| ! Size / Endianness
| |
| ! Type
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| | 0x0 || 1 / - || uint8 || command || REALMLIST (0x10)
| |
| |-
| |
| | 0x1 || 2 / Little || uint16 || size || Size of the rest of packet, without the command and size fields (3 bytes).
| |
| |-
| |
| | 0x3 || 4 / - || uint32 || unknown || Not used in public clients. Set to 0.
| |
| |-
| |
| | 0x7 || 1 / - || uint8 || num_realms || Number of RealmInfo_Server.
| |
| |-
| |
| |}
| |
| | |
| The size value can be computed with the part of the header taken into account
| |
| plus the footer (5+2 bytes) and the size of every RealmInfo_Server which is
| |
| variable.
| |
| | |
| ==== Body ====
| |
| | |
| {| class="wikitable"
| |
| |+ RealmInfo_Server
| |
| ! Offset
| |
| ! Size / Endianness
| |
| ! Type
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| | 0x0 || 4 / Little || uint32 || realm_type || 0 is normal, 1 is PvP, 6 is RP and 8 is RPPvP.
| |
| |-
| |
| | 0x4 || 1 / - || uint8 || flags || See RealmInfo_Server.flags table below.
| |
| |-
| |
| | 0x5 || - / Big || char[] || realm_name || Zero terminated string; name of the Realm
| |
| |-
| |
| | || - / Big || char[] || address_port || Zero terminated string; address of the Realm ("ip:port")
| |
| |-
| |
| | || 4 / Little || float || population || Population value.<br>200 is always green "Recommended", <br>400 is always red "Full",<br>600 is always blue "Recommended".<br>Low/Medium/High are calculated based on the population values sent.
| |
| |-
| |
| | || 1 / - || uint8 || num_chars || The number of characters the client has on the server.
| |
| |-
| |
| | || 1 / - || uint8 || realm_category || The language or region of the server.<br>How this is interpreted depends on the locale of the client.<br>It is shown as tabs at the bottom of the realmlist screen.<br>If there are only realms of one category no tabs are shown.<br>See table RealmInfo_Server.realm_category Values.
| |
| |-
| |
| | || 1 / - || uint8 || realm_id || Used for the initial sorting of the realms. Identical values are not a problem.
| |
| |-
| |
| |}
| |
| | |
| {| class="wikitable"
| |
| |+ RealmInfo_Server.flags Values
| |
| ! Value
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| | 0x00 || NONE || No changes.
| |
| |-
| |
| | 0x01 || INVALID || Color realm name in read.
| |
| |-
| |
| | 0x02 || OFFLINE || Gray out name and prevent selection.
| |
| |-
| |
| | 0x04 || SPECIFY_BUILD || Unused. Possibly used to list realm build numbers previously.
| |
| |-
| |
| | 0x08 || UNK1 || Unused.
| |
| |-
| |
| | 0x10 || UNK2 || Unused.
| |
| |-
| |
| | 0x20 || FORCE_RECOMMENDED || Forces the client to show the server as "Recommended" in blue text,<br> no matter what the population value is.
| |
| |-
| |
| | 0x40 || FORCE_NEW_PLAYERS || Forces the client to show the server as "Recommended" in green text,<br> no matter what the population value is.
| |
| |-
| |
| | 0x80 || FORCE_FULL || Forces the client to show the population as "Full" in red text,<br> no matter what the population value is.
| |
| |-
| |
| |}
| |
| | |
| {| class="wikitable"
| |
| |+ RealmInfo_Server.realm_category Values
| |
| ! Value
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| | 0x00 || DEFAULT || Same as the first value for a locale.
| |
| |-
| |
| !colspan="3"| US
| |
| |-
| |
| | 0x01 || UNITED_STATES || United States.
| |
| |-
| |
| | 0x05 || OCEANIC || Oceania.
| |
| |-
| |
| !colspan="3"| EUROPE
| |
| |-
| |
| | 0x01 || ENGLISH || English.
| |
| |-
| |
| | 0x02 || GERMAN || German.
| |
| |-
| |
| | 0x03 || FRENCH || French.
| |
| |-
| |
| | 0x05 || SPANISH || Spanish.
| |
| |-
| |
| !colspan="3"| KOREA
| |
| |-
| |
| | 0x01 || KOREA || Korea.
| |
| |-
| |
| !colspan="3"| TAIWAN
| |
| |-
| |
| | 0x01 || TAIWAN || Taiwan.
| |
| |-
| |
| !colspan="3"| CHINA
| |
| |-
| |
| | 0x01 || CHINA || China.
| |
| |-
| |
| | 0x02 || CN3 || Unknown.
| |
| |-
| |
| | 0x03 || CN7 || Unknown.
| |
| |-
| |
| !colspan="3"| TEST
| |
| |-
| |
| | 0x01 || TEST_SERVER || Test.
| |
| |-
| |
| | 0x05 || OCEANIC_TEST || Oceanic test.
| |
| |-
| |
| !colspan="3"| QA
| |
| |-
| |
| | 0x01 || QA_SERVER || QA server.
| |
| |}
| |
| | |
| ==== Footer ====
| |
|
| |
|
| {| class="wikitable"
| |
| |+ RealmFooter_Server
| |
| ! Offset
| |
| ! Size / Endianness
| |
| ! Type
| |
| ! Name
| |
| ! Description
| |
| |-
| |
| | 0x0 || 2 / ? || uint16 || unknown || Ignored in public clients. Set to 0.
| |
| |-
| |
| |}
| |
|
| |
|
| [[Category:Login]] | | [[Category:Login]] |
| [[Category:Packet]] | | [[Category:Packet]] |
| [[Category:Packet/Login]] | | [[Category:Packet/Login]] |