summaryrefslogtreecommitdiff
path: root/packets
diff options
context:
space:
mode:
Diffstat (limited to 'packets')
-rw-r--r--packets/character_server/character_creation_failed_packet.gd19
-rw-r--r--packets/character_server/create_character_success_packet.gd22
-rw-r--r--packets/client/character_server/create_character_packet.gd54
-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.gd27
-rw-r--r--packets/login_server/login_server_login_success_packet.gd2
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