public static void HandleUseEquipmentSet(IRealmClient client, RealmPacketIn packet) { var equipmentSwap = new EquipmentSwapHolder[19]; for (var i = 0; i < 19; i++) { equipmentSwap[i] = new EquipmentSwapHolder { ItemGuid = packet.ReadPackedEntityId(), SrcContainer = (InventorySlot)packet.ReadByte(), SrcSlot = packet.ReadByte() }; } var chr = client.ActiveCharacter; chr.Inventory.UseEquipmentSet(equipmentSwap); }
public void UseEquipmentSet(EquipmentSwapHolder[] swaps) { if (swaps == null) return; for (var i = 0; i < 19; i++) { var holder = swaps[i]; if (holder.ItemGuid == EntityId.Zero) continue; var destItem = GetItem(holder.ItemGuid); var srcItem = GetItem(holder.SrcContainer, holder.SrcSlot, IsBankOpen); if (destItem == null) continue; if (destItem == srcItem) continue; var msg = TrySwap(holder.SrcContainer, holder.SrcSlot, InventorySlot.Invalid, i); if (msg != InventoryError.OK) { ItemHandler.SendInventoryError(Owner.Client, msg); return; } ItemHandler.SendUseEquipmentSetResult(Owner.Client, UseEquipmentSetError.Success); } }