## rAthena References: ## - EQUIPITEM_INFO ## - clif_item_equip class_name EquippableItemInformation extends PacketChunk const BYTE_LENGTH := 22 ## Byte Type: u16 ## Byte Length: 2 var index: int ## Byte Type: u32 ## Byte Length: 4 var item_id: int ## Byte Type: u8 ## Byte Length: 1 var item_type: int ## Byte Type: u32 ## Byte Length: 4 var equip_position: int ## Byte Type: u32 ## Byte Length: 4 var equipped_position: int ## Byte Type: u32 ## Byte Length: 4 var slot: int ## Byte Type: u32 ## Byte Length: 4 var hire_expiration_date: int ## Byte Type: u16 ## Byte Length: 2 var bind_on_equip_type: int ## Byte Type: u16 ## Byte Length: 2 var w_item_sprite_number: int ## Byte Type: u8 ## Byte Length: 1 ## always 0 ? var option_count: int ## Byte Length: 5 * ItemOption.BYTE_LENGTH var option_data: Array[ItemOption] ## Byte Type: u8 ## Byte Length: 1 var refinement_level: int ## Byte Type: u8 ## Byte Length: 1 var enchantment_level: int ## Byte Type: u8 ## Byte Length: 1 var flags: int static func from_bytes(bytes: PackedByteArray): var info = EquippableItemInformation.new() info.index = bytes.decode_u16(0) info.item_id = bytes.decode_u32(2) info.item_type = bytes.decode_u8(6) info.equipped_position = bytes.decode_u32(7) info.equipped_position = bytes.decode_u32(11) info.slot = bytes.decode_u32(15) info.hire_expiration_date = bytes.decode_u32(19) info.bind_on_equip_type = bytes.decode_u16(23) info.w_item_sprite_number = bytes.decode_u16(25) info.option_count = bytes.decode_u8(27) var option_data_end = 28 + (5 * ItemOption.BYTE_LENGTH) info.option_data = ItemOption.array_from_bytes(bytes.slice(28, option_data_end)) info.refinement_level = bytes.decode_u8(option_data_end) info.enchantment_level = bytes.decode_u8(option_data_end + 1) info.flags = bytes.decode_u8(option_data_end + 2) return info static func array_from_bytes(bytes: PackedByteArray) -> Array[EquippableItemInformation]: var array: Array[EquippableItemInformation] = [] var offset = 0 while offset < bytes.size(): var chunk = from_bytes(bytes.slice(offset)) array.append(chunk) offset += chunk.byte_length return array