Skip to content

Commit

Permalink
Add server 0x00fc and client 0x008b. Add example for server 0x00fc. (#48
Browse files Browse the repository at this point in the history
)

* Add server 0x00fc and client 0x008b.

Add example for server 0x00fc.
Move Message Server Definition to common.

* Fix missing newline.

---------

Co-authored-by: John Chadwick <john@jchw.io>
  • Loading branch information
JMC47 and jchv committed Jun 15, 2023
1 parent e18ff1a commit cf37b25
Show file tree
Hide file tree
Showing 7 changed files with 107 additions and 42 deletions.
Binary file not shown.
53 changes: 53 additions & 0 deletions src/packets/common/message_server.ksy
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
meta:
id: message_server
title: Message Server
encoding: ASCII
endian: le
imports:
- pstring

doc: |
This structure lists various message server data in certain packets.
Used in packets such as [LoginService Server 0x0009 Message Server List](/packets/loginservice/server/0009.ksy)
and [GameService Server 0x00fc Message Server List](/packets/gameservice/server/00fc.ksy)
seq:
- id: name
type: strz
size: 40
doc: Display name of server.
- id: id
type: u4
doc: ID of server, used in the Select Server packet.
- id: max_users
type: u4
doc: Maximum number of simultaneous users allowed.
- id: num_users
type: u4
doc: Number of users currently online.
- id: ip_address
type: strz
size: 18
doc: IPv4 address of server.
- id: port
type: u2
doc: TCP port of server.
- id: unknown2
size: 2
doc: Unknown field.
- id: flags
size: 2
doc: |
This field contains server flags. The meaning of each bit differs
per region.
- id: unknown3
size: 14
doc: More unknown bytes.
- id: char_icon
type: u2
doc: |
Specifies which character icon to display next to the server.
This is presumably unused for Message Servers, since they aren't displayed in a menu.
20 changes: 20 additions & 0 deletions src/packets/gameservice/client/008b.ksy
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#pragma.examples gameservice/client 008b
#pragma.parseAs GameserviceClientPacket
---
meta:
id: gameservice_client_008b_request_message_server_list
title: GameService Client Request Message Server List
encoding: ASCII
endian: le

doc: |
This packet is sent occasionally sent by the Pangya client to get the
message server list. This message is only sent if the client has failed
to connect to the message server at login.
Response is GameServer 0x00fc
**See Also**: [Game Server 0x00fc Message Server List](/packets/gameservice/server/00fc.ksy)
This Packet has no payload.
2 changes: 2 additions & 0 deletions src/packets/gameservice/client/index.ksy
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ meta:
- '0082'
- '0083'
- '0088'
- '008b'
- '0098'
- '009c'
- '00a2'
Expand Down Expand Up @@ -163,6 +164,7 @@ seq:
0x0082: gameservice_client_0082_multiplayer_mode_leave
0x0083: gameservice_client_0083_sub_server_connect_multiplayer_mode
0x0088: gameservice_client_0088_authentication_keepalive_response
0x008b: gameservice_client_008b_request_message_server_list
0x0098: gameservice_client_0098_rare_shop_open
0x009c: gameservice_client_009c_unknown_opponent_related_request
0x00a2: gameservice_client_00a2_unknown_cookies_related
Expand Down
28 changes: 28 additions & 0 deletions src/packets/gameservice/server/00fc.ksy
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#pragma.examples gameservice/server 00fc
#pragma.parseAs GameserviceServerPacket

meta:
id: gameservice_server_00fc_message_server_list
title: GameService Server Message Server List
encoding: ASCII
endian: le
imports:
- ../../common/pstring

doc: |
This packet is a response to client request messenger list. It lists the messenger servers
along with their IP addresses.
It is a response to:
* [GameService Client 0x008b](/packets/gameservice/client/008b.ksy)
seq:
- id: count
type: u1
doc: |
Number of servers in the response.
- id: servers
type: message_server
repeat: expr
repeat-expr: count

2 changes: 2 additions & 0 deletions src/packets/gameservice/server/index.ksy
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ meta:
- '00f6'
- '00fa'
- '00fb'
- '00fc'
- '010b'
- '010e'
- '012a'
Expand Down Expand Up @@ -221,6 +222,7 @@ seq:
0x00f6: gameservice_server_00f6_multiplayer_mode_leave_response
0x00fa: gameservice_server_00fa_room_bonus_collectables_result
0x00fb: gameservice_server_00fb_unknown_black_papel_related
0x00fc: gameservice_server_00fc_message_server_list
0x010b: gameservice_server_010b_rare_shop_open_response
0x010c: gameservice_server_010e_unknown_opponent_related_response
0x012a: gameservice_server_012a_tiki_report_use_response
Expand Down
44 changes: 2 additions & 42 deletions src/packets/loginservice/server/0009.ksy
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ meta:
encoding: ASCII
endian: le
imports:
- ../../common/pstring
- ../../common/message_server

doc: |
This packet is sent shortly after a successful login, if the user already
Expand All @@ -19,46 +19,6 @@ seq:
doc: |
Number of servers in the response.
- id: servers
type: server
type: message_server
repeat: expr
repeat-expr: count

types:
server:
seq:
- id: name
type: strz
size: 40
doc: Display name of server.
- id: id
type: u4
doc: ID of server, used in the Select Server packet.
- id: max_users
type: u4
doc: Maximum number of simultaneous users allowed.
- id: num_users
type: u4
doc: Number of users currently online.
- id: ip_address
type: strz
size: 18
doc: IPv4 address of server.
- id: port
type: u2
doc: TCP port of server.
- id: unknown2
size: 2
doc: Unknown field.
- id: flags
size: 2
doc: |
This field contains server flags. The meaning of each bit differs
per region.
- id: unknown3
size: 14
doc: More unknown bytes.
- id: char_icon
type: u2
doc: |
Specifies which character icon to display next to the server.
This is presumably unused for Message Servers, since they aren't displayed in a menu.

0 comments on commit cf37b25

Please sign in to comment.