Inheritance: System.Data.Objects.DataClasses.EntityObject
Esempio n. 1
0
 public Item(DroppedItem item, ZoneCharacter pNewOwner, sbyte pSlot)
 {
     DatabaseItem dbi = new DatabaseItem();
     dbi.Amount = item.Amount;
     dbi.Character = pNewOwner.character;
     dbi.ObjectID = item.ItemID;
     dbi.Slot = pSlot;
     Program.Entity.AddToDatabaseItems(dbi);
     Program.Entity.SaveChanges();
     _item = dbi;
     ItemID = item.ItemID;
     pNewOwner.InventoryItems.Add(pSlot, this);
 }
Esempio n. 2
0
        public InventoryStatus GiveItem(string InxName, byte amount = 1)
        {
            ItemInfo info;

            if (DataProvider.Instance.ItemsByName.TryGetValue(InxName, out info))
            {
                ushort id = DataProvider.Instance.GetItemByInxNameInfo(InxName).ItemID;

                if (info.Slot == FiestaLib.ItemSlot.Normal)
                {
                    foreach (var i in InventoryItems.Values)
                    {
                        if (i.ItemID == id && i.Amount < i.Info.MaxLot)
                        {
                            // We found the same item and it can stack more!
                            byte left = (byte)(i.Info.MaxLot - i.Amount);
                            if (left > amount)
                            {
                                i.Amount += left;
                                amount -= left;
                            }
                            else
                            {
                                i.Amount += amount;
                                amount = 0;
                            }
                            Handler12.ModifyInventorySlot(this, 0x24, (byte)i.Slot, (byte)i.Slot, i);
                            if (amount == 0)
                            {
                                break;
                            }
                        }
                    }
                    // If we have still some stuff left, go ahead and create new stacks!
                    if (amount > 0)
                    {
                        while (amount > 0)
                        {
                            sbyte invslot;
                            if (GetFreeInventorySlot(out invslot))
                            {
                                DatabaseItem item = new DatabaseItem();
                                item.Amount = amount;
                                item.Character = character;
                                item.ObjectID = info.ItemID;
                                item.Slot = invslot;
                                Program.Entity.AddToDatabaseItems(item);
                                Item nitem = new Item(item);
                                InventoryItems.Add(invslot, nitem);
                                Handler12.ModifyInventorySlot(this, 0x24, (byte)invslot, (byte)invslot, nitem);
                                amount -= info.MaxLot;
                            }
                            else return InventoryStatus.FULL;
                        }
                    }
                    Save();
                    return InventoryStatus.ADDED;
                }
                else
                {
                    sbyte invslot;
                    if (GetFreeInventorySlot(out invslot))
                    {
                        DatabaseEquip equip = new DatabaseEquip();
                        equip.Character = character;
                        equip.EquipID = info.ItemID;
                        equip.Slot = invslot;
                        Program.Entity.AddToDatabaseEquips(equip);
                        Equip nequip = new Equip(equip);
                        InventoryItems.Add(invslot, nequip);
                        Save();
                        Handler12.ModifyInventorySlot(this, 0x24, (byte)invslot, (byte)invslot, nequip);
                        return InventoryStatus.ADDED;
                    }
                    else return InventoryStatus.FULL;
                }
            }
            else return InventoryStatus.NOT_FOUND;
        }
Esempio n. 3
0
 /// <summary>
 /// Veraltete Methode zum Hinzufügen eines neuen Objekts zum EntitySet 'DatabaseItems'. Verwenden Sie stattdessen die Methode '.Add' der zugeordneten Eigenschaft 'ObjectSet&lt;T&gt;'.
 /// </summary>
 public void AddToDatabaseItems(DatabaseItem databaseItem)
 {
     base.AddObject("DatabaseItems", databaseItem);
 }
Esempio n. 4
0
 /// <summary>
 /// Erstellt ein neues DatabaseItem-Objekt.
 /// </summary>
 /// <param name="id">Anfangswert der Eigenschaft ID.</param>
 /// <param name="owner">Anfangswert der Eigenschaft Owner.</param>
 /// <param name="objectID">Anfangswert der Eigenschaft ObjectID.</param>
 /// <param name="slot">Anfangswert der Eigenschaft Slot.</param>
 /// <param name="amount">Anfangswert der Eigenschaft Amount.</param>
 public static DatabaseItem CreateDatabaseItem(global::System.Int32 id, global::System.Int32 owner, global::System.Int32 objectID, global::System.Int16 slot, global::System.Int16 amount)
 {
     DatabaseItem databaseItem = new DatabaseItem();
     databaseItem.ID = id;
     databaseItem.Owner = owner;
     databaseItem.ObjectID = objectID;
     databaseItem.Slot = slot;
     databaseItem.Amount = amount;
     return databaseItem;
 }
Esempio n. 5
0
 public Item(DatabaseItem item)
 {
     _item = item;
     ItemID = (ushort)item.ObjectID;
 }