From a14e88ff4d0d87841a44254e2bff1784da6e8b48 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sun, 15 Dec 2024 14:23:25 +0100 Subject: next commit --- .../character_server_keep_alive_packet.gd | 22 +++++++++++ .../character_server_login_packet.gd | 39 +++++++++++++++++++ .../request_character_list_packet.gd | 10 +++++ .../character_server/select_character_packet.gd | 19 ++++++++++ .../login_server/login_server_keep_alive_packet.gd | 22 +++++++++++ .../login_server/login_server_login_packet.gd | 41 ++++++++++++++++++++ packets/client/map_server/map_loaded_packet.gd | 12 ++++++ .../client/map_server/map_server_login_packet.gd | 44 ++++++++++++++++++++++ .../client/map_server/send_chat_message_packet.gd | 21 +++++++++++ 9 files changed, 230 insertions(+) create mode 100644 packets/client/character_server/character_server_keep_alive_packet.gd create mode 100644 packets/client/character_server/character_server_login_packet.gd create mode 100644 packets/client/character_server/request_character_list_packet.gd create mode 100644 packets/client/character_server/select_character_packet.gd create mode 100644 packets/client/login_server/login_server_keep_alive_packet.gd create mode 100644 packets/client/login_server/login_server_login_packet.gd create mode 100644 packets/client/map_server/map_loaded_packet.gd create mode 100644 packets/client/map_server/map_server_login_packet.gd create mode 100644 packets/client/map_server/send_chat_message_packet.gd (limited to 'packets/client') diff --git a/packets/client/character_server/character_server_keep_alive_packet.gd b/packets/client/character_server/character_server_keep_alive_packet.gd new file mode 100644 index 0000000..81f918c --- /dev/null +++ b/packets/client/character_server/character_server_keep_alive_packet.gd @@ -0,0 +1,22 @@ +## rAthena References: +class_name CharacterServerKeepAlivePacket +extends Packet + + +const HEADER := 0x0187 +const BYTE_LENGTH := 6 + + +## Byte Type: u32 +## Byte Length: 4 +var account_id: int + + +func to_bytes(): + var payload = PackedByteArray([]) + payload.resize(4) + + # rAthena never reads this value, so just set it to 0 + payload.encode_u32(0, 0) + + return get_header() + payload diff --git a/packets/client/character_server/character_server_login_packet.gd b/packets/client/character_server/character_server_login_packet.gd new file mode 100644 index 0000000..fb8a7ea --- /dev/null +++ b/packets/client/character_server/character_server_login_packet.gd @@ -0,0 +1,39 @@ +class_name CharacterServerLoginPacket +extends Packet + + +const HEADER := 0x0065 +const BYTE_LENGTH := 17 + + +## Byte Type: u32 +## Byte Length: 4 +var account_id: int + +## Byte Type: u32 +## Byte Length: 4 +var login_id1: int + +## Byte Type: u32 +## Byte Length: 4 +var login_id2: int + +## Byte Type: u16 +## Byte Length: 2 +var unknown: int + +## Byte Type: u8 +## Byte Length: 1 +var gender: Constants.Gender + + +func to_bytes(): + var payload = PackedByteArray([]) + payload.resize(15) + payload.encode_u32(0, account_id) + payload.encode_u32(4, login_id1) + payload.encode_u32(8, login_id2) + payload.encode_u16(12, unknown) + payload.encode_u8(14, gender) + + return get_header() + payload diff --git a/packets/client/character_server/request_character_list_packet.gd b/packets/client/character_server/request_character_list_packet.gd new file mode 100644 index 0000000..2f43a05 --- /dev/null +++ b/packets/client/character_server/request_character_list_packet.gd @@ -0,0 +1,10 @@ +class_name RequestCharacterListPacket +extends Packet + + +const HEADER := 0x09a1 +const BYTE_LENGTH := 2 + + +func to_bytes(): + return get_header() diff --git a/packets/client/character_server/select_character_packet.gd b/packets/client/character_server/select_character_packet.gd new file mode 100644 index 0000000..56ba1fa --- /dev/null +++ b/packets/client/character_server/select_character_packet.gd @@ -0,0 +1,19 @@ +class_name SelectCharacterPacket +extends Packet + + +const HEADER := 0x0066 +const BYTE_LENGTH := 3 + + +## Byte Type: u8 +## Byte Length: 1 +var selected_slot: int + + +func to_bytes(): + var payload = PackedByteArray([]) + payload.resize(1) + payload.encode_u8(0, selected_slot) + + return get_header() + payload diff --git a/packets/client/login_server/login_server_keep_alive_packet.gd b/packets/client/login_server/login_server_keep_alive_packet.gd new file mode 100644 index 0000000..db0eedb --- /dev/null +++ b/packets/client/login_server/login_server_keep_alive_packet.gd @@ -0,0 +1,22 @@ +## rAthena References: +## - CA_CONNECT_INFO_CHANGED ? +class_name LoginServerKeepAlivePacket +extends Packet + + +const HEADER := 0x0200 +const BYTE_LENGTH := 26 + + +## Byte Type: u8 +## Byte Length: 24 +var user_name: String + + +func to_bytes(): + var payload = PackedByteArray([]) + + payload += user_name.to_utf8_buffer() + payload.resize(BYTE_LENGTH - 2) + + return get_header() + payload diff --git a/packets/client/login_server/login_server_login_packet.gd b/packets/client/login_server/login_server_login_packet.gd new file mode 100644 index 0000000..0fa117d --- /dev/null +++ b/packets/client/login_server/login_server_login_packet.gd @@ -0,0 +1,41 @@ +class_name LoginServerLoginPacket +extends Packet + + +const HEADER := 0x064 +const BYTE_LENGTH := 55 + + +## Byte Type: u32 +## Byte Length: 4 +var version: int = 0 + +## Byte Length: 24 +var username: String + +## Byte Length: 24 +var password: String + +## Byte Type: u8 +## Byte Length: 1 +var client_type: int = 0 + + +func to_bytes(): + var username_bytes = username.to_utf8_buffer() + username_bytes.resize(24) + + var password_bytes = password.to_utf8_buffer() + password_bytes.resize(24) + + var payload = PackedByteArray([]) + payload.resize(4) + payload.encode_u32(0, version) + + payload.append_array(username_bytes) + payload.append_array(password_bytes) + + payload.resize(53) + payload.encode_u8(52, client_type) + + return get_header() + payload diff --git a/packets/client/map_server/map_loaded_packet.gd b/packets/client/map_server/map_loaded_packet.gd new file mode 100644 index 0000000..e0f0967 --- /dev/null +++ b/packets/client/map_server/map_loaded_packet.gd @@ -0,0 +1,12 @@ +## rAthena References: +## - clif_parse_LoadEndAck +class_name MapLoadedPacket +extends Packet + + +const HEADER := 0x007d +const BYTE_LENGTH := 2 + + +func to_bytes(): + return get_header() diff --git a/packets/client/map_server/map_server_login_packet.gd b/packets/client/map_server/map_server_login_packet.gd new file mode 100644 index 0000000..2138d11 --- /dev/null +++ b/packets/client/map_server/map_server_login_packet.gd @@ -0,0 +1,44 @@ +class_name MapServerLoginPacket +extends Packet + + +const HEADER := 0x0436 +const BYTE_LENGTH := 23 + + +## Byte Type: u32 +## Byte Length: 4 +var account_id: int + +## Byte Type: u32 +## Byte Length: 4 +var character_id: int + +## Byte Type: u32 +## Byte Length: 4 +var login_id1: int + +## Byte Type: u32 +## Byte Length: 4 +var client_tick: int = 100 + +## Byte Type: u8 +## Byte Length: 1 +var gender: Constants.Gender + +## Byte Type: u32 +## Byte Length: 4 +var unknown: int = 0 + + +func to_bytes(): + var payload = PackedByteArray([]) + payload.resize(21) + payload.encode_u32(0, account_id) + payload.encode_u32(4, character_id) + payload.encode_u32(8, login_id1) + payload.encode_u32(12, client_tick) + payload.encode_u8(16, gender) + payload.encode_u32(17, unknown) + + return get_header() + payload diff --git a/packets/client/map_server/send_chat_message_packet.gd b/packets/client/map_server/send_chat_message_packet.gd new file mode 100644 index 0000000..671e9c6 --- /dev/null +++ b/packets/client/map_server/send_chat_message_packet.gd @@ -0,0 +1,21 @@ +## rAthena References: +## - +class_name SendChatMessagePacket +extends Packet + + +const HEADER := 0x00f3 +const BYTE_LENGTH := 0 + + +## Byte Type: u8 +## Byte Length: variable +var message: String + + +func to_bytes(): + var payload = PackedByteArray([]) + + payload = message.to_utf8_buffer() + + return get_header(4 + payload.size()) + payload -- cgit v1.2.3