Ejemplo n.º 1
0
        public int CountItem(int v)
        {
            int count = 0;

            foreach (Inventory inv in Inventory.Where(s => s.ItemInstance.ItemVNum == v))
            {
                count += inv.ItemInstance.Amount;
            }
            return(count);
        }
Ejemplo n.º 2
0
        public Inventory GetFirstSlot(IEnumerable <ItemInstance> slotfree)
        {
            List <Guid> inventoryitemids = new List <Guid>();

            foreach (ItemInstance itemfree in slotfree)
            {
                inventoryitemids.Add(itemfree.Id);
            }
            return(Inventory.Where(i => inventoryitemids.Contains(i.ItemInstance.Id)).OrderBy(i => i.Slot).FirstOrDefault());
        }
Ejemplo n.º 3
0
 public void RemoveItemAmount(int v, int amount)
 {
     Logger.Debug($"v: {v} amount: {amount}", Owner.Session.SessionId);
     for (int i = 0; i < Inventory.Where(s => s.ItemInstance.ItemVNum == v).OrderBy(s => s.Slot).Count(); i++)
     {
         Inventory inv = Inventory.Where(s => s.ItemInstance.ItemVNum == v).OrderBy(s => s.Slot).ElementAt(i);
         if (inv.ItemInstance.Amount > amount)
         {
             inv.ItemInstance.Amount -= (byte)amount;
             amount = 0;
         }
         else
         {
             amount -= inv.ItemInstance.Amount;
             DeleteByInventoryItemId(inv.ItemInstance.ItemInstanceId);
         }
     }
 }
Ejemplo n.º 4
0
 public void RemoveItemAmount(int vnum, int amount)
 {
     Logger.Debug($"vnum: {vnum} amount: {amount}", Owner.Session.SessionId);
     for (int i = 0; i < Inventory.Where(s => s.ItemInstance.ItemVNum == vnum).OrderBy(s => s.Slot).Count(); i++)
     {
         Inventory inv = Inventory.Where(s => s.ItemInstance.ItemVNum == vnum).OrderBy(s => s.Slot).ElementAt(i);
         if (inv.ItemInstance.Amount > amount)
         {
             inv.ItemInstance.Amount -= (byte)amount;
             amount = 0;
             Owner.Session.SendPacket(Owner.Session.Character.GenerateInventoryAdd(inv.ItemInstance.ItemVNum, inv.ItemInstance.Amount, inv.Type, inv.Slot, inv.ItemInstance.Rare, inv.ItemInstance.Design, inv.ItemInstance.Upgrade, 0));
         }
         else
         {
             amount -= inv.ItemInstance.Amount;
             DeleteByInventoryItemId(inv.ItemInstance.Id);
             Owner.Session.SendPacket(Owner.Session.Character.GenerateInventoryAdd(-1, 0, inv.Type, inv.Slot, 0, 0, 0, 0));
         }
     }
 }