class_name QuestDetails extends PacketChunk ## Byte Type: u32 ## Byte Length: 4 var hunt_identification: int ## Byte Type: u32 ## Byte Length: 4 var objective_type: int ## Byte Type: u32 ## Byte Length: 4 var mob_id: int ## Byte Type: u16 ## Byte Length: 2 var minimum_level: int ## Byte Type: u16 ## Byte Length: 2 var maximum_level: int ## Byte Type: u16 ## Byte Length: 2 var kill_count: int ## Byte Type: u16 ## Byte Length: 2 var total_count: int ## Byte Type: u8 ## Byte Length: 24 var mob_name: String func get_byte_length(): return 44 static func from_bytes(bytes: PackedByteArray): var details = QuestDetails.new() details.server_ip = bytes.slice(0, 4) details.server_port = bytes.decode_u16(4) details.server_name = bytes.slice(6, 6 + 20).get_string_from_utf8() details.user_count = bytes.decode_u16(26) details.server_type = bytes.decode_u16(28) details.display_new = bytes.decode_u16(30) details.unknown = bytes.slice(32) return details static func array_from_bytes(bytes: PackedByteArray) -> Array: var array = [] var offset = 0 while offset < bytes.size(): var chunk = from_bytes(bytes.slice(offset)) array.append(chunk) offset += chunk.byte_length return array