| | |
| | | [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>(); } } |
| | |
| | | |
| | | #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) |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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) |
| | |
| | | { |
| | | 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: |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | |
| | | public void PutOffEquip(string guid) |
| | | { |
| | | var item = playerPack.GetItemByGuid(guid); |
| | | var item = packModel.GetItemByGuid(guid); |
| | | if (item == null) |
| | | { |
| | | return; |
| | |
| | | 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"); |
| | |
| | | } |
| | | 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"); |
| | |
| | | |
| | | public void PutInWareHouse(string guid) |
| | | { |
| | | var itemModel = playerPack.GetItemByGuid(guid); |
| | | var itemModel = packModel.GetItemByGuid(guid); |
| | | if (itemModel == null) |
| | | { |
| | | return; |
| | |
| | | |
| | | public void TakeOutFromWarehouse(ItemOperateType btnType, string guid) |
| | | { |
| | | var itemModel = playerPack.GetItemByGuid(guid); |
| | | var itemModel = packModel.GetItemByGuid(guid); |
| | | if (itemModel == null) |
| | | { |
| | | return; |
| | |
| | | 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; |
| | |
| | | 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>(); |
| | |
| | | } |
| | | break; |
| | | } |
| | | if (playerPack.CheckIsDrugById(useItemModel.itemId)) |
| | | if (packModel.CheckIsDrugById(useItemModel.itemId)) |
| | | { |
| | | if (CheckItemUselimit(useItemModel.itemId)) |
| | | { |
| | |
| | | return; |
| | | } |
| | | |
| | | int dungeonID = playerPack.GetDungeonIDByDrugID(useItemModel.itemId); |
| | | int dungeonID = packModel.GetDungeonIDByDrugID(useItemModel.itemId); |
| | | if (dungeonID != 0) |
| | | { |
| | | MapConfig tagMapModel = MapConfig.Get(PlayerDatas.Instance.baseData.MapID); |
| | |
| | | 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); |
| | |
| | | { |
| | | 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; |
| | |
| | | |
| | | if (itemModel.config.Type == 59) |
| | | { |
| | | playerPack.GotoWashAttributePoint(itemModel.guid); |
| | | packModel.GotoWashAttributePoint(itemModel.guid); |
| | | WindowCenter.Instance.Open<WashAttrPointWin>(); |
| | | return true; |
| | | } |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | 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)) |
| | | { |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | public void UseItemCrossServer(int index) |
| | | { |
| | | var itemModel = playerPack.GetItemByIndex(PackType.Item, index); |
| | | var itemModel = packModel.GetItemByIndex(PackType.Item, index); |
| | | if (itemModel == null) |
| | | { |
| | | return; |
| | |
| | | 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); |
| | | } |
| | |
| | | #region 上架 |
| | | public void PutAwayItem(string guid) |
| | | { |
| | | var itemModel = playerPack.GetItemByGuid(guid); |
| | | var itemModel = packModel.GetItemByGuid(guid); |
| | | if (itemModel == null || itemModel.packType != PackType.Item) |
| | | { |
| | | return; |
| | |
| | | #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) |
| | | { |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | |
| | | 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); |