/// <summary> /// 获取商品购买限制 /// </summary> /// <param name="mallItemId">商品id</param> /// <param name="limitData">限制类型 优先级 NotEnough>UnShelve>SoldOut>Vip>CharacterLv</param> /// <param name="marketGridLimitDes">是否为黑市格子限制描述</param> /// <returns></returns> public bool TryGetMallItemPurchaseLimitType(uint mallItemId, out MallDefine.PurchaseLimitData limitData , bool marketGridLimitDes = true, bool packageFullCheck = true) { if (!MallReady) { InitMallData(); } bool success = false; limitData = new MallDefine.PurchaseLimitData(); MallDefine.MallLocalData local = MallDefine.MallLocalData.Create(mallItemId); if (null == local) { return(success); } //限制判断 if (packageFullCheck && DataManager.Manager <KnapsackManager>().IsSimpleKanpsackFull()) { limitData.limitType = MallDefine.PurchaseLimitType.NotEnough; //1、背包空间 limitData.limitDes = "背包已满"; success = true; } else if (local.LocalMall.vipLev != 0 && Client.ClientGlobal.Instance().MainPlayer.GetProp((int)Client.PlayerProp.Vip) < local.LocalMall.vipLev) { //2、vip limitData.limitType = MallDefine.PurchaseLimitType.Vip; limitData.limitDes = (marketGridLimitDes) ? string.Format("VIP{0}可购", local.LocalMall.vipLev) : string.Format("需要VIP{0}才可购买", local.LocalMall.vipLev); success = true; } else if (local.LocalMall.lev != 0 && Client.ClientGlobal.Instance().MainPlayer.GetProp((int)Client.CreatureProp.Level) < local.LocalMall.lev) { //3、主角等级 limitData.limitType = MallDefine.PurchaseLimitType.CharacterLv; limitData.limitDes = (marketGridLimitDes) ? string.Format("{0}级才可购", local.LocalMall.lev) : string.Format("需要达到{0}级才可购买", local.LocalMall.lev); success = true; } //else if (IsMallItemSoldOut(mallItemId.)) //{ // //4、是否售罄 // limitData.limitType = MallDefine.PurchaseLimitType.SoldOut; // limitData.limitDes = "该商品已售罄"; // success = true; //} else if (IsMallItemUnShelve(mallItemId)) { //5、是否下架 limitData.limitType = MallDefine.PurchaseLimitType.UnShelve; limitData.limitDes = "该商品已下架"; success = true; } return(success); }
/// <summary> /// 购买商品 /// </summary> /// <param name="mallItemId">商品唯一id</param> /// <param name="storeType">商店类型</param> /// <param name="num">购买数量</param> public void PurchaseMallItem(uint mallItemId, uint storeType, int num, uint pos = 0) { if (!MallReady) { InitMallData(); } MallDefine.PurchaseLimitData purchaselimitData = null; //购买限制检测 if (TryGetMallItemPurchaseLimitType(mallItemId, out purchaselimitData, false)) { TipsManager.Instance.ShowTips(purchaselimitData.limitDes); return; } if (null != Sender) { Sender.PurchaseMallItemReq(mallItemId, storeType, (uint)num, pos); } }
public override void SetGridData(object data) { base.SetGridData(data); ResetInfoGrid(); if (null == data) { return; } this.mallInfo = (GameCmd.DynaStorePosInfo)data; MallDefine.MallLocalData localData = DataManager.Manager <MallManager>().GetMallLocalDataByMallItemId(mallInfo.baseid); if (null == localData) { Debug.LogError(string.Format("UIBlackMarketGrid SetGridData faield,localData errir baseId:{0}", mallInfo.baseid)); return; } MallDefine.PurchaseLimitData limitData = null; string limitDes = ""; if (DataManager.Manager <MallManager>().TryGetMallItemPurchaseLimitType(localData.MallId, out limitData, packageFullCheck: false) && (limitData.limitType == MallDefine.PurchaseLimitType.CharacterLv || limitData.limitType == MallDefine.PurchaseLimitType.Vip)) { limitDes = limitData.limitDes; } if (null != m_labName) { m_labName.text = localData.LocalItem.Name; } //bool fightPowerUp = false; //if (localData.LocalItem.IsEquip // && DataManager.Manager<EquipManager>().IsEquipNeedFightPowerMask(localData.LocalItem.BaseId, out fightPowerUp)) //{ // SetFightPower(true, fightPowerUp); //} SetBorder(true, localData.LocalItem.BorderIcon); SetIcon(true, localData.LocalItem.Icon); bool enable = (localData.LocalMall.pileNum > 1) ? true : false; SetNum(enable, localData.LocalMall.pileNum.ToString()); SetLimit(limitDes); SetSoldOut((mallInfo.buy_flag == 1) ? true : false); if (null != this.cost && null != this.costIcon) { MallDefine.CurrencyData cost = new MallDefine.CurrencyData((GameCmd.MoneyType)localData.LocalMall.moneyType, localData.LocalMall.buyPrice); string costIconName = (null != cost) ? MallDefine.GetCurrencyIconNameByType(cost.CType) : ""; UIManager.GetAtlasAsyn(costIconName, ref m_costCASD, () => { if (null != this.costIcon) { this.costIcon.atlas = null; } }, this.costIcon); string costString = (null != cost) ? localData.LocalMall.buyPrice.ToString() : "0"; this.cost.text = costString; } //SetFightUp(false); if (localData.LocalItem.IsMuhon) { SetMuhonMask(true, Muhon.GetMuhonStarLevel(localData.LocalItem.BaseId)); SetMuhonLv(true, Muhon.GetMuhonLv(localData.LocalItem)); } else if (localData.LocalItem.IsRuneStone) { SetRuneStoneMask(true, (uint)localData.LocalItem.Grade); } else if (localData.LocalItem.IsChips) { SetChips(true); } }