少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-05 60f616fc149c620953f468d1383f15a810f898df
System/KnapSack/Logic/ItemOperateUtility.cs
@@ -9,7 +9,8 @@
    [XLua.LuaCallCSharp]
    public class ItemOperateUtility : Singleton<ItemOperateUtility>
    {
        PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        StrengthenModel strengthModel { get { return ModelCenter.Instance.GetModel<StrengthenModel>(); } }
        EquipWashModel equipWashModel { get { return ModelCenter.Instance.GetModel<EquipWashModel>(); } }
@@ -24,274 +25,84 @@
        #region 装备
        public ItemModel selectedItem { get; private set; }
        ItemConfig sendItemConfig = null;
        int itemIndex = -1;
        public void PutOnItem(ItemOperateType btnType, string guid)
        public string operateItemGuid { get; private set; }
        public void PutOnItem(string guid)
        {
            selectedItem = playerPack.GetItemByGuid(guid);
            this.operateItemGuid = guid;
            var selectedItem = packModel.GetItemByGuid(guid);
            if (selectedItem == null)
            {
                return;
            }
            var itemId = selectedItem.itemId;
            sendItemConfig = ItemConfig.Get(selectedItem.itemId);
            if (sendItemConfig.JobLimit != 0 && sendItemConfig.JobLimit / 100 != PlayerDatas.Instance.baseData.Job)
            if (selectedItem.config.JobLimit != 0 && selectedItem.config.JobLimit / 100 != PlayerDatas.Instance.baseData.Job)
            {
                SysNotifyMgr.Instance.ShowTip("GeRen_lhs_31379");
                return;
            }
            itemIndex = selectedItem.itemPlace;
            var putOnLimits = selectedItem.GetUseDataModel((int)ItemUseDataKey.cancelUseLimit);
            if (putOnLimits != null)
            if (putOnLimits != null && putOnLimits[0] == 1)
            {
                if (putOnLimits[0] == 1)
                var placable = CheckPutOnPlace(itemId);
                if (!placable)
                {
                    CheckPutOnPlace(itemId);
                    return;
                }
                else
                {
                    CheckEquipUseLimit(itemId);
                }
                PutOnEquip(selectedItem.equipPlace,selectedItem.guid);
                return;
            }
            else
            var wearable = IsWearable(itemId);
            if (wearable)
            {
                CheckEquipUseLimit(itemId);
                var placable = CheckPutOnPlace(itemId);
                if (!placable)
                {
                    return;
                }
                PutOnEquip(selectedItem.equipPlace, selectedItem.guid);
            }
        }
        bool CheckEquipUseLimit(int itemId)
        bool IsWearable(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            int[] uselimits = config.UseCondiType;
            if (uselimits == null || uselimits.Length < 1)
            var uselimits = config.UseCondiType;
            var wearable = true;
            if (!uselimits.IsNullOrEmpty())
            {
                CheckPutOnPlace(itemId);
                return true;
            }
            bool wearable = true;
            for (int i = 0; i < uselimits.Length; i++)
            {
                switch (uselimits[i])
                for (int i = 0; i < uselimits.Length; i++)
                {
                    case 0:
                        var level = PlayerDatas.Instance.baseData.LV;
                        if (level < config.UseLV)
                        {
                            wearable = false;
                            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
                                Language.Get("EquipWinLevelLimit", config.UseLV, config.UseLV - level));
                        }
                        break;
                    case 1:
                        wearable = CheckPutOnRealm(itemId);
                        break;
                    case 2:
                        wearable = CheckPutOnNeed(itemId);
                        break;
                    switch (uselimits[i])
                    {
                        case 1:
                            wearable = CheckPutOnRealm(itemId);
                            break;
                    }
                }
            }
            if (wearable)
            {
                CheckPutOnPlace(itemId);
            }
            return wearable;
        }
        /// <summary>
        /// 检测穿戴装备所需要的条件
        /// </summary>
        private StringBuilder offsetConditionStr = new StringBuilder();
        private StringBuilder upgradConditionStr = new StringBuilder();
        private StringBuilder needConditionStr = new StringBuilder();
        private Dictionary<AttrEnum, float> sumOffsetlist = new Dictionary<AttrEnum, float>();
        private Dictionary<AttrEnum, int> sumNeedlist = new Dictionary<AttrEnum, int>();
        private float sumOffsetPoint = 0;
        private int sumNeedPoint = 0;
        private bool CheckPutOnNeed(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            int playerJob = PlayerDatas.Instance.baseData.Job;
            if (playerJob != Math.Floor((double)config.JobLimit / 100) && config.JobLimit != 0)
            {
                SysNotifyMgr.Instance.ShowTip("GeRen_lhs_31379");
                return false;
            }
            int jobRank = config.JobLimit % 10;
            offsetConditionStr.Length = 0;
            sumOffsetlist.Clear();
            sumNeedlist.Clear();
            sumOffsetPoint = 0;
            sumNeedPoint = 0;
            needConditionStr.Length = 0;
            upgradConditionStr.Length = 0;
            float offset = 0;
            if (config.LimitSTR != 0)
            {
                offset = config.LimitSTR - UIHelper.GetPropertyMapPlayerData(AttrEnum.POWER);
                if (offset > 0)
                {
                    if (offsetConditionStr.Length > 0)
                    {
                        offsetConditionStr.Append("\n" + Language.Get("KnapS136", offset));
                    }
                    else
                    {
                        offsetConditionStr.Append(Language.Get("KnapS136", offset));
                    }
                    if (upgradConditionStr.Length > 0)
                    {
                        upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS136", config.LimitSTR), offset));
                    }
                    else
                    {
                        upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS136", config.LimitSTR), offset));
                    }
                    sumOffsetPoint += offset;
                    sumNeedPoint += config.LimitSTR;
                    sumOffsetlist.Add(AttrEnum.POWER, offset);
                }
                sumNeedlist.Add(AttrEnum.POWER, config.LimitSTR);
                if (needConditionStr.Length > 0)
                {
                    needConditionStr.Append("\n" + Language.Get("KnapS136", config.LimitSTR));
                }
                else
                {
                    needConditionStr.Append(Language.Get("KnapS136", config.LimitSTR));
                }
            }
            if (config.LimitPHY != 0)
            {
                offset = config.LimitPHY - UIHelper.GetPropertyMapPlayerData(AttrEnum.AGILITY);
                if (offset > 0)
                {
                    if (offsetConditionStr.Length > 0)
                    {
                        offsetConditionStr.Append("\n" + Language.Get("KnapS135", offset));
                    }
                    else
                    {
                        offsetConditionStr.Append(Language.Get("KnapS135", offset));
                    }
                    if (upgradConditionStr.Length > 0)
                    {
                        upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS135", config.LimitPHY), offset));
                    }
                    else
                    {
                        upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS135", config.LimitPHY), offset));
                    }
                    sumOffsetPoint += offset;
                    sumNeedPoint += config.LimitPHY;
                    sumOffsetlist.Add(AttrEnum.AGILITY, offset);
                }
                sumNeedlist.Add(AttrEnum.AGILITY, config.LimitPHY);
                if (needConditionStr.Length > 0)
                {
                    needConditionStr.Append("\n" + Language.Get("KnapS135", config.LimitPHY));
                }
                else
                {
                    needConditionStr.Append(Language.Get("KnapS135", config.LimitPHY));
                }
            }
            if (config.LimitPNE != 0)
            {
                offset = config.LimitPNE - UIHelper.GetPropertyMapPlayerData(AttrEnum.MENTALITY);
                if (offset > 0)
                {
                    if (offsetConditionStr.Length > 0)
                    {
                        offsetConditionStr.Append("\n" + Language.Get("KnapS137", offset));
                    }
                    else
                    {
                        offsetConditionStr.Append(Language.Get("KnapS137", offset));
                    }
                    if (upgradConditionStr.Length > 0)
                    {
                        upgradConditionStr.Append("\n" + Language.Get("KnapS141", Language.Get("KnapS137", config.LimitPNE), offset));
                    }
                    else
                    {
                        upgradConditionStr.Append(Language.Get("KnapS141", Language.Get("KnapS137", config.LimitPNE), offset));
                    }
                    sumOffsetPoint += offset;
                    sumOffsetlist.Add(AttrEnum.MENTALITY, offset);
                    sumNeedPoint += config.LimitPNE;
                }
                sumNeedlist.Add(AttrEnum.MENTALITY, config.LimitPNE);
                if (needConditionStr.Length > 0)
                {
                    needConditionStr.Append("\n" + Language.Get("KnapS137", config.LimitPNE));
                }
                else
                {
                    needConditionStr.Append(Language.Get("KnapS137", config.LimitPNE));
                }
            }
            if (offsetConditionStr.Length > 0)
            {
                if (sumOffsetPoint <= PlayerDatas.Instance.baseData.FreePoint)
                {
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("KnapS132", offsetConditionStr.ToString()), (bool isOk) =>
                    {
                        if (isOk)
                        {
                            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.AddPoint))
                            {
                                foreach (var key in sumOffsetlist.Keys)
                                {
                                    PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshFreePoint;
                                    rolePointModel.SendAddPoint((int)key, (int)sumOffsetlist[key]);
                                }
                            }
                            else
                            {
                                FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.AddPoint);
                            }
                        }
                    });
                }
                return false;
            }
            return true;
        }
        private StringBuilder curRealmImgStr = new StringBuilder();
        private StringBuilder needRealmImgStr = new StringBuilder();
        private bool CheckPutOnRealm(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            curRealmImgStr.Length = 0;
            needRealmImgStr.Length = 0;
            var _realmLv = config.RealmLimit;
            var needRealmConfig = RealmConfig.Get(_realmLv);
            var realmLevel = config.RealmLimit;
            var needRealmConfig = RealmConfig.Get(realmLevel);
            var curRealmConfig = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel);
            if (PlayerDatas.Instance.baseData.realmLevel < _realmLv)
            if (PlayerDatas.Instance.baseData.realmLevel < realmLevel)
            {
                needRealmImgStr.AppendFormat("<Img img={0}/>", needRealmConfig.Img);
                if (curRealmConfig != null && PlayerDatas.Instance.baseData.realmLevel > 0)
@@ -322,34 +133,12 @@
            return true;
        }
        private void RefreshFreePoint(PlayerDataRefresh refreshType)
        {
            switch (refreshType)
            {
                case PlayerDataRefresh.STR:
                case PlayerDataRefresh.PNE:
                case PlayerDataRefresh.PHY:
                case PlayerDataRefresh.CON:
                    {
                        ConfirmCancel.ShowPopConfirm(Language.Get("KnapS138"), Language.Get("KnapS139"), () =>
                        {
                            CheckPutOnPlace(selectedItem == null ? 0 : selectedItem.itemId);
                        });
                        PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= RefreshFreePoint;
                    }
                    break;
            }
        }
        /// <summary>
        /// 检测穿戴的位置对仙器进行特殊处理
        /// </summary>
        private void CheckPutOnPlace(int itemId)
        private bool CheckPutOnPlace(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            if (config == null)
            {
                return;
                return false;
            }
            ItemModel putOnModel1 = null;
@@ -357,20 +146,15 @@
            bool isSameEquip = false;
            switch ((RoleEquipType)config.EquipPlace)
            {
                case RoleEquipType.FairyCan1:
                    isSameEquip = true;
                    putOnModel1 = playerPack.GetItemByIndex(PackType.Equip, config.EquipPlace);
                    putOnModel2 = playerPack.GetItemByIndex(PackType.Equip, (int)RoleEquipType.FairyCan2);
                    break;
                case RoleEquipType.JadeDynasty_Glove1:
                    isSameEquip = true;
                    putOnModel1 = playerPack.GetItemByIndex(PackType.JadeDynastyEquip, config.EquipPlace);
                    putOnModel2 = playerPack.GetItemByIndex(PackType.JadeDynastyEquip, (int)RoleEquipType.JadeDynasty_Glove2);
                    putOnModel1 = packModel.GetItemByIndex(PackType.JadeDynastyEquip, config.EquipPlace);
                    putOnModel2 = packModel.GetItemByIndex(PackType.JadeDynastyEquip, (int)RoleEquipType.JadeDynasty_Glove2);
                    break;
                case RoleEquipType.JadeDynasty_Ring1:
                    isSameEquip = true;
                    putOnModel1 = playerPack.GetItemByIndex(PackType.JadeDynastyEquip, config.EquipPlace);
                    putOnModel2 = playerPack.GetItemByIndex(PackType.JadeDynastyEquip, (int)RoleEquipType.JadeDynasty_Ring2);
                    putOnModel1 = packModel.GetItemByIndex(PackType.JadeDynastyEquip, config.EquipPlace);
                    putOnModel2 = packModel.GetItemByIndex(PackType.JadeDynastyEquip, (int)RoleEquipType.JadeDynasty_Ring2);
                    break;
            }
@@ -379,11 +163,12 @@
                if (putOnModel1 != null || putOnModel2 != null)
                {
                    WindowCenter.Instance.Open<FairyWearWin>();
                    return;
                    return false;
                }
            }
            CheckSuitReplaceInfo(config.EquipPlace, selectedItem);
            return true;
        }
        public void CheckSuitReplaceInfo(int equipPlace, ItemModel item)
@@ -470,20 +255,26 @@
                {
                    if (ok)
                    {
                        PutOnEquip(equipPlace, itemIndex, item);
                        PutOnEquip(equipPlace, item.guid);
                    }
                }
                );
            }
            else
            {
                PutOnEquip(equipPlace, itemIndex, item);
                PutOnEquip(equipPlace, item.guid);
            }
        }
        public void PutOnEquip(int equipPlace, int itemIndex, ItemModel oldItem)
        void PutOnEquip(int equipPlace, string guid)
        {
            EquipAttrShift(equipPlace, oldItem);
            var clientPlaceInfo = EquipSet.ServerPlaceToClientPlace(equipPlace);
            var oldItem = packModel.GetItemByGuid(equipModel.GetEquip(clientPlaceInfo.x, clientPlaceInfo.y));
            if (oldItem != null)
            {
                EquipAttrShift(equipPlace, oldItem);
            }
            switch ((RoleEquipType)equipPlace)
            {
                case RoleEquipType.JadeDynasty_Cloak:
@@ -498,28 +289,31 @@
                case RoleEquipType.JadeDynasty_Sword2:
                case RoleEquipType.JadeDynasty_Sword3:
                case RoleEquipType.JadeDynasty_Sword4:
                    PutOnJadeDynastyEquip(equipPlace, itemIndex);
                    PutOnJadeDynastyEquip(equipPlace, guid);
                    break;
                default:
                    PutOnNormalEquip(equipPlace, itemIndex);
                    PutOnNormalEquip(equipPlace, guid);
                    break;
            }
            SoundPlayer.Instance.PlayUIAudio(24);
        }
        private void PutOnNormalEquip(int equipPlace, int itemIndex)
        private void PutOnNormalEquip(int equipPlace, string guid)
        {
            var item = packModel.GetItemByGuid(guid);
            var putOnEquip = new C0703_tagCEquipItem();
            putOnEquip.RoleEquipType = (byte)equipPlace;
            putOnEquip.ItemIndex = (byte)itemIndex;
            putOnEquip.ItemIndex = (byte)item.itemPlace;
            GameNetSystem.Instance.SendInfo(putOnEquip);
        }
        private void PutOnJadeDynastyEquip(int equipPlace, int itemIndex)
        private void PutOnJadeDynastyEquip(int equipPlace, string guid)
        {
            var item = packModel.GetItemByGuid(guid);
            var equipZhuXianItem = new CA330_tagCMEquipZhuXianItem();
            equipZhuXianItem.EquipIndex = (byte)(equipPlace - 121);
            equipZhuXianItem.ItemIndex = (byte)itemIndex;
            equipZhuXianItem.ItemIndex = (byte)item.itemPlace;
            GameNetSystem.Instance.SendInfo(equipZhuXianItem);
        }
@@ -533,10 +327,10 @@
            switch (packType)
            {
                case PackType.JadeDynastyItem:
                    putOnModel = playerPack.GetItemByIndex(PackType.JadeDynastyEquip, equipPlace);
                    putOnModel = packModel.GetItemByIndex(PackType.JadeDynastyEquip, equipPlace);
                    break;
                default:
                    putOnModel = playerPack.GetItemByIndex(PackType.Equip, equipPlace);
                    putOnModel = packModel.GetItemByIndex(PackType.Equip, equipPlace);
                    break;
            }
@@ -612,7 +406,7 @@
        public void PutOffEquip(string guid)
        {
            var item = playerPack.GetItemByGuid(guid);
            var item = packModel.GetItemByGuid(guid);
            if (item == null)
            {
                return;
@@ -640,7 +434,7 @@
                case RoleEquipType.JadeDynasty_Sword2:
                case RoleEquipType.JadeDynasty_Sword3:
                case RoleEquipType.JadeDynasty_Sword4:
                    remainGrid = playerPack.GetEmptyGridCount(PackType.JadeDynastyItem);
                    remainGrid = packModel.GetEmptyGridCount(PackType.JadeDynastyItem);
                    if (remainGrid < 1)
                    {
                        SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_998371");
@@ -652,8 +446,8 @@
                    }
                    break;
                default:
                    singlePack = playerPack.GetSinglePack(PackType.Item);
                    remainGrid = playerPack.GetEmptyGridCount(PackType.Item);
                    singlePack = packModel.GetSinglePack(PackType.Item);
                    remainGrid = packModel.GetEmptyGridCount(PackType.Item);
                    if (remainGrid < 1)
                    {
                        SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_998371");
@@ -698,7 +492,7 @@
        public void PutInWareHouse(string guid)
        {
            var itemModel = playerPack.GetItemByGuid(guid);
            var itemModel = packModel.GetItemByGuid(guid);
            if (itemModel == null)
            {
                return;
@@ -713,7 +507,7 @@
        public void TakeOutFromWarehouse(ItemOperateType btnType, string guid)
        {
            var itemModel = playerPack.GetItemByGuid(guid);
            var itemModel = packModel.GetItemByGuid(guid);
            if (itemModel == null)
            {
                return;
@@ -732,7 +526,7 @@
        public ItemModel useItemModel { get; set; }
        public void GotoUseItem(int itemIndex)
        {
            var singlePack = playerPack.GetSinglePack(PackType.Item);
            var singlePack = packModel.GetSinglePack(PackType.Item);
            if (singlePack == null)
            {
                return;
@@ -760,7 +554,7 @@
                case 951:
                    int startLockIndex = singlePack.unlockedGridCount - GeneralDefine.initBagGridCount;
                    int chooseGridCnt = singlePack.unlockedGridCount + GetExtendGridCnt(startLockIndex);
                    playerPack.UnLockPackGrid(chooseGridCnt, PackType.Item);
                    packModel.UnLockPackGrid(chooseGridCnt, PackType.Item);
                    return;
                case 1506:
                    var crossOneVsOneModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>();
@@ -770,7 +564,7 @@
                    }
                    break;
            }
            if (playerPack.CheckIsDrugById(useItemModel.itemId))
            if (packModel.CheckIsDrugById(useItemModel.itemId))
            {
                if (CheckItemUselimit(useItemModel.itemId))
                {
@@ -779,7 +573,7 @@
                return;
            }
            int dungeonID = playerPack.GetDungeonIDByDrugID(useItemModel.itemId);
            int dungeonID = packModel.GetDungeonIDByDrugID(useItemModel.itemId);
            if (dungeonID != 0)
            {
                MapConfig tagMapModel = MapConfig.Get(PlayerDatas.Instance.baseData.MapID);
@@ -837,7 +631,7 @@
        private int GetExtendGridCnt(int startLockIndex, int needTool = 0, int extendCnt = 0)
        {
            FuncConfigConfig _tagFuncModel = FuncConfigConfig.Get("OpenBagItem");
            int haveCount = playerPack.GetItemCountByID(PackType.Item, useItemModel.itemId);
            int haveCount = packModel.GetItemCountByID(PackType.Item, useItemModel.itemId);
            startLockIndex += 1;
            Equation.Instance.Clear();
            Equation.Instance.AddKeyValue("index", startLockIndex);
@@ -853,7 +647,7 @@
                {
                    extendCnt = 1;
                }
                int remianLock = GeneralDefine.maxBagGridCount - playerPack.GetSinglePack(PackType.Item).unlockedGridCount;
                int remianLock = GeneralDefine.maxBagGridCount - packModel.GetSinglePack(PackType.Item).unlockedGridCount;
                if (extendCnt > remianLock)
                {
                    extendCnt = remianLock;
@@ -897,7 +691,7 @@
            if (itemModel.config.Type == 59)
            {
                playerPack.GotoWashAttributePoint(itemModel.guid);
                packModel.GotoWashAttributePoint(itemModel.guid);
                WindowCenter.Instance.Open<WashAttrPointWin>();
                return true;
            }
@@ -953,7 +747,7 @@
            }
            ulong maxValue = 0;
            playerPack.IsReachUseLimit(itemModel.guid, out maxValue);
            packModel.IsReachUseLimit(itemModel.guid, out maxValue);
            if (itemModel.config.BatchUse != 0 && maxValue > 1)
            {
                BatchUseModel.Instance.SetBatchModel(itemModel.guid);
@@ -1041,7 +835,7 @@
        public void UseItem(int index, int useCnt = 1, int extra = 0)
        {
            var itemModel = playerPack.GetItemByIndex(PackType.Item, index);
            var itemModel = packModel.GetItemByIndex(PackType.Item, index);
            if (itemModel == null)
            {
                return;
@@ -1070,21 +864,21 @@
        public bool CanUseItem(int index, int useCnt, out int error)
        {
            var itemModel = playerPack.GetItemByIndex(PackType.Item, index);
            var itemModel = packModel.GetItemByIndex(PackType.Item, index);
            if (itemModel == null)
            {
                error = 999;
                return false;
            }
            var usedCountToday = playerPack.GetItemUsedTimesToday(itemModel.itemId);
            var usedCountToday = packModel.GetItemUsedTimesToday(itemModel.itemId);
            if (itemModel.config.MaxSkillCnt > 0 && itemModel.config.MaxSkillCnt <= usedCountToday)
            {
                error = 1;
                return false;
            }
            var usedCountTotal = playerPack.GetItemTotalUsedTimes(itemModel.itemId);
            var usedCountTotal = packModel.GetItemTotalUsedTimes(itemModel.itemId);
            var fruitConfig = AttrFruitConfig.Get(itemModel.itemId);
            if (fruitConfig != null && (usedCountTotal >= fruitConfig.MaxUseCnt || useCnt > fruitConfig.MaxUseCnt))
            {
@@ -1098,7 +892,7 @@
        public void UseItemMainServer(int index, int useCnt, int extra)
        {
            var itemModel = playerPack.GetItemByIndex(PackType.Item, index);
            var itemModel = packModel.GetItemByIndex(PackType.Item, index);
            if (itemModel == null)
            {
                return;
@@ -1113,7 +907,7 @@
        public void UseItemCrossServer(int index)
        {
            var itemModel = playerPack.GetItemByIndex(PackType.Item, index);
            var itemModel = packModel.GetItemByIndex(PackType.Item, index);
            if (itemModel == null)
            {
                return;
@@ -1139,15 +933,15 @@
                return;
            }
            var itemModel = playerPack.GetItemByGuid(guid);
            var itemModel = packModel.GetItemByGuid(guid);
            if (itemModel == null)
            {
                return;
            }
            var packType = GeneralDefine.GetPackTypeByItemType(itemModel.config.Type);
            var singlePack = playerPack.GetSinglePack(packType);
            if (playerPack.GetEmptyGridCount(packType) < 1)
            var singlePack = packModel.GetSinglePack(packType);
            if (packModel.GetEmptyGridCount(packType) < 1)
            {
                SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_676165", packType);
            }
@@ -1166,7 +960,7 @@
        #region 上架
        public void PutAwayItem(string guid)
        {
            var itemModel = playerPack.GetItemByGuid(guid);
            var itemModel = packModel.GetItemByGuid(guid);
            if (itemModel == null || itemModel.packType != PackType.Item)
            {
                return;
@@ -1181,7 +975,7 @@
        #region 镶嵌
        public void GotoInlayItem(string guid)
        {
            var model = playerPack.GetItemByGuid(guid);
            var model = packModel.GetItemByGuid(guid);
            var packType = GeneralDefine.GetPackTypeByItemType(model.config.Type);
            switch (packType)
            {
@@ -1210,10 +1004,10 @@
                bool isOverdue = ItemLogicUtility.Instance.IsOverdue(attrData.guid, attrData.itemConfig.ID, attrData.useDataDict);
                bool isLimit = Math.Floor((double)attrData.itemConfig.JobLimit / 100) == PlayerDatas.Instance.baseData.Job
                    || attrData.itemConfig.JobLimit == 0 ? true : false;
                var putModel = playerPack.GetItemByIndex(PackType.Equip, attrData.itemConfig.EquipPlace);
                var putModel = packModel.GetItemByIndex(PackType.Equip, attrData.itemConfig.EquipPlace);
                if (attrData.itemConfig.EquipPlace == (int)RoleEquipType.FairyCan1)
                {
                    var fairy2Model = playerPack.GetItemByIndex(PackType.Equip, (int)RoleEquipType.FairyCan2);
                    var fairy2Model = packModel.GetItemByIndex(PackType.Equip, (int)RoleEquipType.FairyCan2);
                    if (fairy2Model == null || putModel == null)
                    {
                        putModel = null;
@@ -1319,7 +1113,7 @@
                }
            }
            int offsetGrid = needGridCnt - playerPack.GetEmptyGridCount(PackType.Item);
            int offsetGrid = needGridCnt - packModel.GetEmptyGridCount(PackType.Item);
            if (offsetGrid > 0)
            {
                SysNotifyMgr.Instance.ShowTip("BagFull102", attrData.itemConfig.ItemName, offsetGrid);