Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
    //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));
        }
    }
Exemplo n.º 3
0
 public int GetItemCount(int protoId)
 {
     return(m_Package.GetCount(protoId));
 }