From f3d360e022fce829370c7d916abe98083b14818c Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Mon, 7 Apr 2025 11:45:05 +0200 Subject: next commit --- .../character_creation_failed_packet.gd | 19 ++++++++ .../create_character_success_packet.gd | 22 +++++++++ .../character_server/create_character_packet.gd | 54 ++++++++++++++++++++++ packets/login_failed_packet.gd | 22 --------- packets/login_server/login_failed_packet.gd | 22 +++++++++ packets/login_server/login_failed_packet_2.gd | 27 +++++++++++ .../login_server_login_success_packet.gd | 2 +- 7 files changed, 145 insertions(+), 23 deletions(-) create mode 100644 packets/character_server/character_creation_failed_packet.gd create mode 100644 packets/character_server/create_character_success_packet.gd create mode 100644 packets/client/character_server/create_character_packet.gd delete mode 100644 packets/login_failed_packet.gd create mode 100644 packets/login_server/login_failed_packet.gd create mode 100644 packets/login_server/login_failed_packet_2.gd (limited to 'packets') diff --git a/packets/character_server/character_creation_failed_packet.gd b/packets/character_server/character_creation_failed_packet.gd new file mode 100644 index 0000000..8ce5b15 --- /dev/null +++ b/packets/character_server/character_creation_failed_packet.gd @@ -0,0 +1,19 @@ +class_name CharacterCreationFailedPacket +extends Packet + + +const HEADER := 0x006e +const BYTE_LENGTH := 3 + + +## Byte Type: u8 +## Byte Length: 1 +var reason: Constants.CharacterCreationFailedReason + + +static func from_bytes(bytes: PackedByteArray): + var packet = CharacterCreationFailedPacket.new() + + packet.reason = bytes.decode_u8(2) + + return packet diff --git a/packets/character_server/create_character_success_packet.gd b/packets/character_server/create_character_success_packet.gd new file mode 100644 index 0000000..b7f826d --- /dev/null +++ b/packets/character_server/create_character_success_packet.gd @@ -0,0 +1,22 @@ +class_name CreateCharacterSuccessPacket +extends Packet + + +const HEADER := 0x0b6f +const BYTE_LENGTH := 0 + + +## Byte Type: u16 +## Byte Length: 2 +var packet_length: int + +var character_information: CharacterInformation + + +static func from_bytes(bytes: PackedByteArray): + var packet = CreateCharacterSuccessPacket.new() + + packet.packet_length = bytes.decode_u16(2) + packet.character_information = CharacterInformation.from_bytes(bytes.slice(4)) + + return packet diff --git a/packets/client/character_server/create_character_packet.gd b/packets/client/character_server/create_character_packet.gd new file mode 100644 index 0000000..a368508 --- /dev/null +++ b/packets/client/character_server/create_character_packet.gd @@ -0,0 +1,54 @@ +class_name CreateCharacterPacket +extends Packet + + +const HEADER := 0x0a39 +const BYTE_LENGTH := 36 + + +## Byte Type: u8 +## Byte Length: 24 +var name: String + +## Byte Type: u8 +## Byte Length: 1 +var slot: int + +## Byte Type: u16 +## Byte Length: 2 +var hair_color: int + +## Byte Type: u16 +## Byte Length: 2 +var hair_style: int + +## Byte Type: u16 +## Byte Length: 2 +var start_job: int + +## Byte Type: u8 +## Byte Length: 2 +var unknown: int + +## Byte Type: u8 +## Byte Length: 1 +var gender: Constants.Gender + + +func to_bytes(): + var payload = PackedByteArray([]) + + var name_buffer = name.to_ascii_buffer() + name_buffer.resize(24) + payload.append_array(name_buffer) + + payload.resize(BYTE_LENGTH - 2) + + payload.encode_u8(24, slot) + payload.encode_u16(25, hair_color) + payload.encode_u16(27, hair_style) + payload.encode_u16(29, start_job) + payload.encode_u16(31, unknown) + payload.encode_u8(33, gender) + + return get_header() + payload diff --git a/packets/login_failed_packet.gd b/packets/login_failed_packet.gd deleted file mode 100644 index 93ebf23..0000000 --- a/packets/login_failed_packet.gd +++ /dev/null @@ -1,22 +0,0 @@ -## rAthena References: -## - clif_authfail_fd -class_name LoginFailedPacket -extends Packet - - -const HEADER := 0x0081 -const BYTE_LENGTH := 3 - - -## Byte Type: u8 -## Byte Length: 1 -@warning_ignore("enum_variable_without_default") -var reason: Constants.LoginFailedReason - - -static func from_bytes(bytes: PackedByteArray) -> LoginFailedPacket: - var packet = LoginFailedPacket.new() - - packet.reason = bytes.decode_u8(2) - - return packet diff --git a/packets/login_server/login_failed_packet.gd b/packets/login_server/login_failed_packet.gd new file mode 100644 index 0000000..93ebf23 --- /dev/null +++ b/packets/login_server/login_failed_packet.gd @@ -0,0 +1,22 @@ +## rAthena References: +## - clif_authfail_fd +class_name LoginFailedPacket +extends Packet + + +const HEADER := 0x0081 +const BYTE_LENGTH := 3 + + +## Byte Type: u8 +## Byte Length: 1 +@warning_ignore("enum_variable_without_default") +var reason: Constants.LoginFailedReason + + +static func from_bytes(bytes: PackedByteArray) -> LoginFailedPacket: + var packet = LoginFailedPacket.new() + + packet.reason = bytes.decode_u8(2) + + return packet diff --git a/packets/login_server/login_failed_packet_2.gd b/packets/login_server/login_failed_packet_2.gd new file mode 100644 index 0000000..1c4bb4a --- /dev/null +++ b/packets/login_server/login_failed_packet_2.gd @@ -0,0 +1,27 @@ +## rAthena References: +## - clif_authfail_fd +class_name LoginFailedPacket2 +extends Packet + + +const HEADER := 0x083e +const BYTE_LENGTH := 26 + + +## Byte Type: u32 +## Byte Length: 4 +@warning_ignore("enum_variable_without_default") +var reason: Constants.LoginFailedReason2 + +## Byte Type: u8 +## Byte Length: 20 +var unblock_time: String + + +static func from_bytes(bytes: PackedByteArray) -> LoginFailedPacket2: + var packet = LoginFailedPacket2.new() + + packet.reason = bytes.decode_u32(2) + packet.unblock_time = bytes.slice(6, 26).get_string_from_utf8() + + return packet diff --git a/packets/login_server/login_server_login_success_packet.gd b/packets/login_server/login_server_login_success_packet.gd index ce6a058..f1893df 100644 --- a/packets/login_server/login_server_login_success_packet.gd +++ b/packets/login_server/login_server_login_success_packet.gd @@ -32,7 +32,7 @@ var ip_address: PackedByteArray ## Byte Length: 26 var last_login: PackedByteArray -## Byte Type: u8 +## Byte Type: u8 [br] ## Byte Length: 1 var gender: Constants.Gender -- cgit v1.2.3