/// <summary> /// 装備品のカバンの中での位置 /// </summary> /// <param name="slot">装備スロット</param> /// <returns>位置</returns> unsafe private int GetEquipItemPos(eEquipSlot slot) { int pos; int off = (int)OFFSET.EQUIP_INFO + ((int)slot * 8) + 4; MemoryProvider.ReadProcessMemory(pol.Handle, (IntPtr)((int)pol.BaseAddress + off), &pos, 4, null); return (pos - 1); }
/// <summary> /// 装備してるアイテムの数取得 : 事実上 ammo にしか意味なし /// </summary> /// <param name="slot"></param> /// <returns></returns> public byte GetEquippedItemCount(eEquipSlot slot) { int pos = GetEquipItemPos(slot); if ((pos) < 0) return (byte)0; InventoryItem item = _GetInventoryItem((short)pos, OFFSET.INVENTORY_INFO); if (item.id == 0) return (byte)0; return (byte)item.count; }
/// <summary> /// 装備アイテム名取得 /// </summary> /// <param name="slot"></param> /// <returns></returns> public string GetEquippedItemName(eEquipSlot slot) { int pos = GetEquipItemPos(slot); if (pos < 0) return ""; InventoryItem item = _GetInventoryItem((short)pos, OFFSET.INVENTORY_INFO); if (item.id == 0) return ""; return GetItemNameById(item.id); }