Exemple #1
0
        /// <summary>
        /// Check whether the player has a fishing rod in inventory
        /// </summary>
        /// <returns>TRUE if the player has a fishing rod</returns>
        public bool hasFishingRod()
        {
            if (!inventoryEnabled)
            {
                return(false);
            }
            int start = 36;
            int end   = 44;

            Inventory.Container container = GetPlayerInventory();

            foreach (KeyValuePair <int, Item> a in container.Items)
            {
                if (a.Key < start || a.Key > end)
                {
                    continue;
                }

                if (a.Value.Type == ItemType.FishingRod)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #2
0
        private InventoryEntity GetItems(uint address, Inventory.Container type)
        {
            var offset           = (uint)((int)type * 24);
            var containerAddress = MemoryHandler.Instance.GetUInt32(address, offset);

            var container = new InventoryEntity
            {
                Amount = MemoryHandler.Instance.GetByte(address, offset + 0x8),
                Items  = new List <ItemInfo>(),
                Type   = type
            };

            for (var ci = 0; ci < 1600; ci += 64)
            {
                var itemOffset = (uint)(containerAddress + ci);
                var id         = MemoryHandler.Instance.GetUInt32(itemOffset, 0x8);
                if (id > 0)
                {
                    container.Items.Add(new ItemInfo
                    {
                        ID         = id,
                        Slot       = MemoryHandler.Instance.GetByte(itemOffset, 0x4),
                        Amount     = MemoryHandler.Instance.GetByte(itemOffset, 0xC),
                        SB         = MemoryHandler.Instance.GetUInt16(itemOffset, 0x10),
                        Durability = MemoryHandler.Instance.GetUInt16(itemOffset, 0x12),
                        GlamourID  = MemoryHandler.Instance.GetUInt32(itemOffset, 0x30)
                    });
                }
            }

            return(container);
        }
Exemple #3
0
        private static InventoryContainer GetInventoryItems(Inventory.Container type)
        {
            var InventoryPointerMap = new IntPtr(MemoryHandler.Instance.GetPlatformUInt(Scanner.Instance.Locations[Signatures.InventoryKey]));
            //Debug.WriteLine($"InventoryPointerMap : {InventoryPointerMap.ToInt64():X}");

            var offset           = (uint)((int)type * 24);
            var containerAddress = MemoryHandler.Instance.GetPlatformUInt(InventoryPointerMap, offset);

            var container = new InventoryContainer {
                Amount        = MemoryHandler.Instance.GetByte(InventoryPointerMap, offset + MemoryHandler.Instance.Structures.InventoryContainer.Amount),
                TypeID        = (byte)type,
                ContainerType = type,
                BagType       = MemoryHandler.Instance.GetInt32(Scanner.Instance.Locations["INVENTORYBAGS"].GetAddress(), sizeof(int) * (int)type)
            };

            Debug.WriteLine($"bag {type} is bagid {MemoryHandler.Instance.GetInt32(InventoryPointerMap,  offset + 4)} ");
            // The number of item is 50 in COMPANY's locker
            int limit = MemoryHandler.Instance.GetByte(InventoryPointerMap, offset + MemoryHandler.Instance.Structures.InventoryContainer.Amount) * 56;

            /*switch (type) {
             *  case Inventory.Container.COMPANY_1:
             *  case Inventory.Container.COMPANY_2:
             *  case Inventory.Container.COMPANY_3:
             *      limit = MemoryHandler.Instance.GetByte(InventoryPointerMap, offset + MemoryHandler.Instance.Structures.InventoryContainer.Amount) * 56;
             *      break;
             *  default:
             *      limit = MemoryHandler.Instance.GetByte(InventoryPointerMap, offset + MemoryHandler.Instance.Structures.InventoryContainer.Amount) * 56;
             *      break;
             * }*/

            for (var i = 0; i < limit; i += 56)
            {
                var itemOffset = new IntPtr(containerAddress + i);
                var id         = MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.ID);
                if (id > 0)
                {
                    container.InventoryItems.Add(
                        new InventoryItem {
                        ID         = (uint)id,
                        Slot       = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.Slot),
                        Amount     = (uint)MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.Amount),
                        SB         = MemoryHandler.Instance.GetUInt16(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.SB),
                        Durability = MemoryHandler.Instance.GetUInt16(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.ID),
                        GlamourID  = (uint)MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.GlamourID),

                        // get the flag that show if the item is hq or not
                        HqFlag = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.IsHQ)
                    });
                }
            }

            return(container);
        }
        private static InventoryContainer GetInventoryItems(Inventory.Container type)
        {
            var InventoryPointerMap = new IntPtr(MemoryHandler.Instance.GetPlatformUInt(Scanner.Instance.Locations[Signatures.InventoryKey]));

            var offset           = (uint)((int)type * 24);
            var containerAddress = MemoryHandler.Instance.GetPlatformUInt(InventoryPointerMap, offset);

            var container = new InventoryContainer {
                Amount        = MemoryHandler.Instance.GetByte(InventoryPointerMap, offset + MemoryHandler.Instance.Structures.InventoryContainer.Amount),
                TypeID        = (byte)type,
                ContainerType = type
            };

            // The number of item is 50 in COMPANY's locker
            int limit;

            switch (type)
            {
            case Inventory.Container.COMPANY_1:
            case Inventory.Container.COMPANY_2:
            case Inventory.Container.COMPANY_3:
                limit = 3200;
                break;

            default:
                limit = 1600;
                break;
            }

            for (var i = 0; i < limit; i += 64)
            {
                var itemOffset = new IntPtr(containerAddress + i);
                var id         = MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.ID);
                if (id > 0)
                {
                    container.InventoryItems.Add(
                        new InventoryItem {
                        ID         = (uint)id,
                        Slot       = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.Slot),
                        Amount     = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.Amount),
                        SB         = MemoryHandler.Instance.GetUInt16(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.SB),
                        Durability = MemoryHandler.Instance.GetUInt16(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.ID),
                        GlamourID  = (uint)MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.GlamourID),

                        // get the flag that show if the item is hq or not
                        IsHQ = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.InventoryItem.IsHQ) == 0x01
                    });
                }
            }

            return(container);
        }
        private static InventoryEntity GetItems(IntPtr address, Inventory.Container type)
        {
            var offset           = (uint)((int)type * 24);
            var containerAddress = MemoryHandler.Instance.GetPlatformUInt(address, offset);

            var container = new InventoryEntity
            {
                Amount = MemoryHandler.Instance.GetByte(address, offset + MemoryHandler.Instance.Structures.InventoryEntity.Amount),
                Items  = new List <ItemInfo>(),
                TypeID = (byte)type,
                Type   = type
            };
            // The number of item is 50 in COMPANY's locker
            int limit;

            switch (type)
            {
            case Inventory.Container.COMPANY_1:
            case Inventory.Container.COMPANY_2:
            case Inventory.Container.COMPANY_3:
                limit = 3200;
                break;

            default:
                limit = 1600;
                break;
            }

            for (var ci = 0; ci < limit; ci += 64)
            {
                var itemOffset = new IntPtr(containerAddress + ci);
                var id         = MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.ID);
                if (id > 0)
                {
                    container.Items.Add(new ItemInfo
                    {
                        ID         = (uint)id,
                        Slot       = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.Slot),
                        Amount     = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.Amount),
                        SB         = MemoryHandler.Instance.GetUInt16(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.SB),
                        Durability = MemoryHandler.Instance.GetUInt16(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.ID),
                        GlamourID  = (uint)MemoryHandler.Instance.GetPlatformUInt(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.GlamourID),
                        //get the flag that show if the item is hq or not
                        IsHQ = MemoryHandler.Instance.GetByte(itemOffset, MemoryHandler.Instance.Structures.ItemInfo.IsHQ) == 0x01
                    });
                }
            }

            return(container);
        }
Exemple #6
0
        private InventoryEntity GetItems(uint address, Inventory.Container type)
        {
            var offset           = (uint)((int)type * 24);
            var containerAddress = MemoryHandler.Instance.GetUInt32(address, offset);

            var container = new InventoryEntity
            {
                Amount = MemoryHandler.Instance.GetByte(address, offset + 0x8),
                Items  = new List <ItemInfo>(),
                Type   = type
            };
            // The number of item is 50 in COMPANY's locker
            int limit;

            switch (type)
            {
            case Inventory.Container.COMPANY_1:
            case Inventory.Container.COMPANY_2:
            case Inventory.Container.COMPANY_3:
                limit = 3200;
                break;

            default:
                limit = 1600;
                break;
            }

            for (var ci = 0; ci < limit; ci += 64)
            {
                var itemOffset = (uint)(containerAddress + ci);
                var id         = MemoryHandler.Instance.GetUInt32(itemOffset, 0x8);
                if (id > 0)
                {
                    container.Items.Add(new ItemInfo
                    {
                        ID         = id,
                        Slot       = MemoryHandler.Instance.GetByte(itemOffset, 0x4),
                        Amount     = MemoryHandler.Instance.GetByte(itemOffset, 0xC),
                        SB         = MemoryHandler.Instance.GetUInt16(itemOffset, 0x10),
                        Durability = MemoryHandler.Instance.GetUInt16(itemOffset, 0x12),
                        GlamourID  = MemoryHandler.Instance.GetUInt32(itemOffset, 0x30),
                        //get the flag that show if the item is hq or not
                        IsHQ = (MemoryHandler.Instance.GetByte(itemOffset, 0x14) == 0x01)
                    });
                }
            }

            return(container);
        }