public void UpdateShortCut() { if (null == mPkg) { return; } for (int i = 0; i < mShortCutItems.Length; i++) { ShortCutItem item = mShortCutItems[i]; if (null == item || null == item.protoData) { continue; } bool useProtoID = item.protoData.maxStackNum > 1 && 60 != item.protoId; //grenade == 60 if (useProtoID) { int itemCount = mPkg.GetCount(item.protoId); if (itemCount == 0) { PutItem(null, i, false); } else { item.SetStackCount(itemCount); } } else { ItemObject itemObj = ItemMgr.Instance.Get(item.itemInstanceId); if (null == itemObj) { PutItem(null, i, false); continue; } if (itemObj.protoData.maxStackNum > 1) { item.SetStackCount(itemObj.GetCount()); } CheckEquipInPackage(item, i); } } SendUpdateMsg(); }
//public void DeleteItem(ItemObject itemObj) //{ // if (itemObj == null) // return; // if (itemObj.protoData.category == quest_item) // { // _missionPak.RemoveItem(itemObj); // ItemManager.RemoveItem(itemObj.instanceId); // } // else // { // _playerPak.RemoveItem(itemObj); // ItemManager.RemoveItem(itemObj.instanceId); // } //} //internal void RemoveItem(int itemID, int count, ref List<ItemObject> effItems) //{ // ItemProto itemData = ItemProto.GetItemData(itemID); // if (null == itemData) // return; // if (itemData.category == ItemCategory.IC_QuestItem) // { // _missionPak.RemoveItem(itemID, count, ref effItems); // } // else // { // _playerPak.RemoveItem(itemID, count, ref effItems); // } //} //internal ItemObject[] RemoveItem(IEnumerable<ItemSample> items) //{ // var finalItems = new List<ItemObject>(10); // foreach (ItemSample item in items) // RemoveItem(item.protoId, item.stackCount, ref finalItems); // return finalItems.ToArray(); //} //internal void AddSameItems(int itemID, int count, ref List<ItemObject> effItems) //{ // ItemProto itemData = ItemProto.GetItemData(itemID); // if (null == itemData) // return; // if (itemData.category == ItemCategory.IC_QuestItem) // _missionPak.AddSameItems(itemID, count, ref effItems); // else // _playerPak.AddSameItems(itemID, count, ref effItems); //} //internal ItemObject[] AddSameItems(IEnumerable<ItemSample> items) //{ // if (!CanAdd(items)) // return null; // var finalItems = new List<ItemObject>(10); // foreach (ItemSample iter in items) // { // if (iter.protoData.category == ItemCategory.IC_QuestItem) // _missionPak.AddSameItems(iter, ref finalItems); // else // _playerPak.AddSameItems(iter, ref finalItems); // } // return finalItems.ToArray(); //} //internal void AddSameItems(ItemSample item, ref List<ItemObject> effItems) //{ // AddSameItems(item.protoId, item.stackCount, ref effItems); //} //public ItemObject GetItemById(int objId) //{ // ItemObject item = ItemManager.GetItemByID(objId); // if (item == null) // return null; // if (item.protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.GetItemById(objId); // else // return _playerPak.GetItemById(objId); //} //public int RemoveItem(ItemObject itemObj) //{ // if (null == itemObj) // return -1; // if (itemObj.protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.RemoveItem(itemObj); // else // return _playerPak.RemoveItem(itemObj); //} //public List<ItemObject> GetValidItemList(int type) //{ // return _playerPak.GetValidItemList(type); //} //public byte[] GetChangedIndex() //{ // return _playerPak.GetChangedIndex(); //} //internal IEnumerable<int> GetItemObjIDs(int tab) //{ // return _playerPak.GetItemObjIDs(tab); //} //public void ExtendPackage(int itemMax, int equipmentMax, int resourceMax, int armorMax) //{ // _playerPak.ExtendPackage(itemMax, equipmentMax, resourceMax, armorMax); //} //public int AddItem(ItemObject item, int index) //{ // if (!CanAdd(item)) // return -1; // if (item.protoData.category == ItemCategory.IC_QuestItem) // { // return _missionPak.AddItem(item, index); // } // else // { // return _playerPak.AddItem(item, index); // } //} //public bool CanAdd(IEnumerable<ItemSample> items) //{ // foreach (ItemObject iter in items) // { // if (iter.protoData.category == ItemCategory.IC_QuestItem) // if (!_missionPak.CanAdd(iter)) // return false; // else // if (!_playerPak.CanAdd(iter)) // return false; // } // return true; //} //public bool CanAdd(ItemObject item) //{ // if (item == null) // return false; // if (item.protoData.category == ItemCategory.IC_QuestItem) // { // return _missionPak.CanAdd(item); // } // else // { // return _playerPak.CanAdd(item); // } //} //public bool CanAdd(ItemSample item) //{ // return CanAdd(item.protoId, item.stackCount); //} //public bool CanAdd(int itemId, int num) //{ // ItemProto itemData = ItemProto.GetItemData(itemId); // if (null == itemData) // return false; // if (itemData.category == ItemCategory.IC_QuestItem) // { // return _missionPak.CanAdd(itemId, num); // } // else // { // return _playerPak.CanAdd(itemId, num); // } //} //public void AddItemList(IEnumerable<ItemObject> items) //{ // foreach (ItemObject iter in items) // { // if (iter.protoData.category == ItemCategory.IC_QuestItem) // _missionPak.AddItem(iter, -1); // else // _playerPak.AddItem(iter, -1); // } //} //public int GetEmptyGridCount(ItemProto protoData) //{ // if (protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.GetEmptyGridCount(protoData.tabIndex); // else // return _playerPak.GetEmptyGridCount(protoData.tabIndex); //} //public ItemObject[] Sort(int type) //{ // return _playerPak.Sort(type); //} //public bool HasEnoughItems(IEnumerable<ItemSample> items) //{ // foreach (ItemSample item in items) // { // if (null == item || -1 == item.protoId) // continue; // if (item.protoData.category == ItemCategory.IC_QuestItem) // if (!_missionPak.HasEnoughItems(items)) // return false; // else // if (!_playerPak.HasEnoughItems(items)) // return false; // } // return true; //} //public ItemObject GetItemByIndex(int idx, int type) //{ // return _playerPak.GetItemByIndex(idx, type); //} //internal bool ExistID(ItemObject item) //{ // if (null == item) // return false; // if (item.protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.ExistID(item); // else // return _playerPak.ExistID(item); //} //internal bool ExistID(int objID) //{ // ItemObject itemObj = ItemManager.GetItemByID(objID); // if (null == itemObj) // { // return false; // } // if (itemObj.protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.ExistID(objID); // else // return _playerPak.ExistID(objID); //} //public int GetEmptyIndex(ItemProto protoData) //{ // if (protoData == null) // return -1; // if (protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.GetEmptyIndex(protoData.tabIndex); // else // return _playerPak.GetEmptyIndex(protoData.tabIndex); //} //public int ItemNotBindCount() //{ // return _playerPak.ItemNotBindCount(); //} //public List<ItemObject> GetValidItemListNotBind(int type) //{ // return _playerPak.GetValidItemListNotBind(type); //} //public int GetItemCount(int itemId) //{ // ItemProto proto = ItemProto.GetItemData(itemId); // if (proto == null) // return -1; // if (proto.category == ItemCategory.IC_QuestItem) // return _missionPak.GetItemCount(itemId); // else // return _playerPak.GetItemCount(itemId); //} //public bool HasEnoughSpace(List<MissionIDNum> missionItems) //{ // int itemcount = 0; // int equipcount = 0; // int resourcescount = 0; // int armorcount = 0; // int mItemcount = 0; // int mEquipcount = 0; // int mResourcescount = 0; // int mArmorcount = 0; // int itemempty = _playerPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Item); // int equipempty = _playerPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Equipment); // int resourcesempty = _playerPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Resource); // int armorempty = _playerPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Armor); // int mItemempty = _missionPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Item); // int mEquipempty = _missionPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Equipment); // int mResourcesempty = _missionPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Resource); // int mArmorempty = _missionPak.GetEmptyGridCount((int)ItemPackage.ESlotType.Armor); // for (int i = 0; i < missionItems.Count; i++) // { // ItemProto itemdata = ItemProto.GetItemData(missionItems[i].id); // if (itemdata == null) // continue; // if (itemdata.category == ItemCategory.IC_QuestItem) // { // if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Item) // { // if (itemdata.maxStackNum > 0) // mItemcount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // else if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Equipment) // { // if (itemdata.maxStackNum > 0) // mEquipcount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // else if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Resource) // { // if (itemdata.maxStackNum > 0) // mResourcescount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // else if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Armor) // { // if (itemdata.maxStackNum > 0) // mArmorcount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // } // else // { // if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Item) // { // if (itemdata.maxStackNum > 0) // itemcount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // else if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Equipment) // { // if (itemdata.maxStackNum > 0) // equipcount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // else if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Resource) // { // if (itemdata.maxStackNum > 0) // resourcescount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // else if (itemdata.tabIndex == (int)ItemPackage.ESlotType.Armor) // { // if (itemdata.maxStackNum > 0) // armorcount += ((missionItems[i].num - 1) / itemdata.maxStackNum) + 1; // } // } // } // if (itemcount > itemempty || equipcount > equipempty || resourcescount > resourcesempty || armorcount > armorempty) // return false; // if (mItemcount > mItemempty || mEquipcount > mEquipempty || mResourcescount > mResourcesempty || mArmorcount > mArmorempty) // return false; // return true; //} //public int GetItemIndex(ItemObject item) //{ // if (item == null) // return -1; // if (item.protoData.category == ItemCategory.IC_QuestItem) // return _missionPak.GetItemIndex(item); // else // return _playerPak.GetItemIndex(item); //} //public void Clear(ItemPackage.ESlotType type = ItemPackage.ESlotType.Max) //{ // _playerPak.Clear(type); // _missionPak.Clear(type); //} #endregion #region Helper public int GetCount(int prototypeId) { ItemProto itemData = ItemProto.GetItemData(prototypeId); if (itemData == null) { return(0); } if (itemData.category == quest_item) { return(_missionPak.GetCount(prototypeId)); } else { return(_playerPak.GetCount(prototypeId)); } }
public int GetItemCount(int protoId) { return(m_Package.GetCount(protoId)); }