diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2025-04-07 11:45:05 +0200 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2025-04-07 11:45:05 +0200 |
commit | f3d360e022fce829370c7d916abe98083b14818c (patch) | |
tree | 4ac9f886b45a9482dcd42e991e85ab2e4bea3dbc /packets/client/character_server | |
parent | bd77c88efc9327805b6f6fd83fa0492ed59d0f9a (diff) |
Diffstat (limited to 'packets/client/character_server')
-rw-r--r-- | packets/client/character_server/create_character_packet.gd | 54 |
1 files changed, 54 insertions, 0 deletions
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 |