summaryrefslogtreecommitdiff
path: root/packets/character_server_login_success_packet.gd
diff options
context:
space:
mode:
Diffstat (limited to 'packets/character_server_login_success_packet.gd')
-rw-r--r--packets/character_server_login_success_packet.gd44
1 files changed, 44 insertions, 0 deletions
diff --git a/packets/character_server_login_success_packet.gd b/packets/character_server_login_success_packet.gd
new file mode 100644
index 0000000..800e218
--- /dev/null
+++ b/packets/character_server_login_success_packet.gd
@@ -0,0 +1,44 @@
+class_name CharacterServerLoginSuccessPacket
+extends Packet
+
+
+## Byte Length: 2
+var unknown: int
+
+## Byte Length: 1
+var normal_slot_count: int
+
+## Byte Length: 1
+var vip_slot_count: int
+
+## Byte Length: 1
+var billing_slot_count: int
+
+## Byte Length: 1
+var producible_slot_count: int
+
+## Byte Length: 1
+var valid_slot: int
+
+## Byte Length: 20
+var unused: PackedByteArray
+
+
+static func from_bytes(bytes: PackedByteArray):
+ var packet = CharacterServerLoginSuccessPacket.new()
+
+ packet.unknown = bytes.decode_u16(0)
+ packet.normal_slot_count = bytes.decode_u8(2)
+ packet.vip_slot_count = bytes.decode_u8(3)
+ packet.billing_slot_count = bytes.decode_u8(4)
+ packet.producible_slot_count = bytes.decode_u8(5)
+ packet.valid_slot = bytes.decode_u8(6)
+ packet.unused = bytes.slice(7, 7 + 20)
+
+ return packet
+
+static func from_bytes_via_peer(peer: StreamPeer):
+ var _header = peer.get_data(6)
+ var remaining_bytes = peer.get_data(peer.get_available_bytes())
+
+ return from_bytes(remaining_bytes[1])