Beispiel #1
0
        /// <summary>
        /// Gets an item in a player's equipment slot. Returns null if unsuccessful.
        /// </summary>
        /// <param name="slot">The equipment slot to get the item from.</param>
        /// <returns></returns>
        public Objects.Item GetItemInSlot(Enums.EquipmentSlots slot)
        {
            Item item = null;

            switch (slot)
            {
            case Enums.EquipmentSlots.Ammo:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqAmmo, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqAmmo),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqAmmo + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Ammo);
                break;

            case Enums.EquipmentSlots.Torso:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqTorso, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqTorso),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqTorso + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Torso);
                break;

            case Enums.EquipmentSlots.Container:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqContainer, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqContainer),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqContainer + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Container);
                break;

            case Enums.EquipmentSlots.Feet:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqFeet, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqFeet),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqFeet + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Feet);
                break;

            case Enums.EquipmentSlots.Head:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqHead, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqHead),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqHead + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Head);
                break;

            case Enums.EquipmentSlots.LeftHand:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqLeftHand, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqLeftHand),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqLeftHand + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.LeftHand);
                break;

            case Enums.EquipmentSlots.Neck:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqNeck, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqNeck),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqNeck + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Neck);
                break;

            case Enums.EquipmentSlots.RightHand:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqRightHand, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqRightHand),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqRightHand + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.RightHand);
                break;

            case Enums.EquipmentSlots.Ring:
                item = new Objects.Item(this.Client, this.Client.Addresses.Containers.EqRing, this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqRing),
                                        this.Client.Memory.ReadUInt16(this.Client.Addresses.Containers.EqRing + this.Client.Addresses.Item.Distances.Count), Enums.EquipmentSlots.Ring);
                break;

            default:
                return(null);
            }
            if (item == null || item.ID == 0)
            {
                return(null);
            }
            return(item);
        }
Beispiel #2
0
 public Item(Client c, int address, ushort id, ushort count, Enums.EquipmentSlots eqSlot)
 {
     this.Client  = c;
     this.Address = address;
     this.ID      = id;
     this.Count   = count;
     this.Type    = Types.Equipment;
 }
Beispiel #3
0
 /// <summary>
 /// Constructor for a non-existant item in a equpiment slot.
 /// Use Item.ToItemLocation() for an existing item.
 /// </summary>
 /// <param name="slot">The equipment slot.</param>
 public ItemLocation(Enums.EquipmentSlots slot)
 {
     Objects.Item item = new Objects.Item(null)
     {
         ID              = 0,
         Count           = 0,
         Slot            = 0,
         ContainerNumber = (byte)slot,
     };
     this.WorldLocation = item.ToLocation();
     this.ItemID        = item.ID;
     this.ItemCount     = item.Count;
     this.StackIndex    = item.Slot;
 }