/// <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); }
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); }
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); }
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); }