diff options
Diffstat (limited to 'packets')
-rw-r--r-- | packets/character_server/character_creation_failed_packet.gd | 19 | ||||
-rw-r--r-- | packets/character_server/create_character_success_packet.gd | 22 | ||||
-rw-r--r-- | packets/client/character_server/create_character_packet.gd | 54 | ||||
-rw-r--r-- | packets/login_server/login_failed_packet.gd (renamed from packets/login_failed_packet.gd) | 0 | ||||
-rw-r--r-- | packets/login_server/login_failed_packet_2.gd | 27 | ||||
-rw-r--r-- | packets/login_server/login_server_login_success_packet.gd | 2 |
6 files changed, 123 insertions, 1 deletions
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_server/login_failed_packet.gd index 93ebf23..93ebf23 100644 --- a/packets/login_failed_packet.gd +++ b/packets/login_server/login_failed_packet.gd 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 |