|
|
(One intermediate revision by the same user not shown) |
Line 6: |
Line 6: |
|
| |
|
| See [[Login Packet Results]] for result values. | | See [[Login Packet Results]] for result values. |
| | |
| | See [[Login Packet Security Flags]] for security flag values. These are only used for {{Template:Sandbox/PrettyVersion|expansionlevel=2}} and later. |
|
| |
|
| ==Challenge packets== | | ==Challenge packets== |
Line 58: |
Line 60: |
| === 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]] |