Ejemplo n.º 1
0
        //判断背包是否已满
        public static bool IsBeiBaoFull(GameUser user, int itembaseId)
        {
            ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itembaseId);

            if (itemInfo != null)
            {
                var package = UserItemPackage.Get(user.UserID);

                //查找出所有已用的格子
                var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);

                //查找出已用格子中是相同物品格子的数量
                var itemmountArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao && m.ItemID == itembaseId);

                int totalNum = 0;
                //累加所有的该物品的数量
                foreach (UserItemInfo userItemInfo in itemmountArray)
                {
                    totalNum = MathUtils.Addition(totalNum, userItemInfo.Num);
                }
                //是否有空余位置
                int mount = totalNum % itemInfo.PackMaxNum;

                if (userItemArray.Count >= user.GridNum && mount == 0)
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        private void AppenUserItem(ItemSynthesisInfo synthesisInfo, int ugeneralID, ItemStatus istatus, short itemLv)
        {
            //原因:合成黄色装备,物品存放为0
            if (istatus != ItemStatus.YongBing)
            {
                istatus = ItemStatus.BeiBao;
            }
            var package = UserItemPackage.Get(Uid);

            string       uitemID  = Guid.NewGuid().ToString();
            UserItemInfo userItem = new UserItemInfo()
            {
                UserItemID = uitemID,
                ItemID     = synthesisInfo.ItemID,
                ItemLv     = MathUtils.Subtraction(itemLv, (short)5, (short)1),
                ItemStatus = istatus,
                ItemType   = ItemType.ZhuangBei,
                GeneralID  = ugeneralID,
                Num        = 1
            };

            package.SaveItem(userItem);
            //package.DelayChange();
            UserItemHelper.AddItemLog(ContextUser.UserID, synthesisInfo.ItemID, 1, MathUtils.Subtraction(itemLv, (short)5, (short)1), 5, uitemID);
        }
Ejemplo n.º 3
0
        public override bool TakeAction()
        {
            var          package  = UserItemPackage.Get(ContextUser.UserID);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID == userItemID);

            if (userItem != null)
            {
                UserTrump userTrump = new GameDataCacheSet <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump != null && userTrump.TrumpLv >= GameConfigSet.MaxTrumpLv)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1456_OutTrumpMaxLv;
                    return(false);
                }
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemInfo != null && itemInfo.PropType == 10)
                {
                    TrumpHelper.CheckTrumpEscalate(ContextUser.UserID, itemInfo.EffectNum);
                    UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1);
                    var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                    if (usergeneral != null)
                    {
                        usergeneral.RefreshMaxLife();
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 4
0
        public override bool TakeAction()
        {
            var package = UserItemPackage.Get(Uid);

            userItemArray = package.ItemPackage.FindAll(u => u.ItemType == ItemType.ZhuangBei && u.GeneralID <= 0 && u.ItemStatus.ToEnum <ItemStatus>() != ItemStatus.YongBing); //点击装备或者更换装备的时候,在筛选时去掉已经装备
            userItemArray.QuickSort((x, y) =>
            {
                int result = 0;
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                // 1、品质高低
                result = y.ItemQuality.CompareTo(x.ItemQuality);
                if (result == 0)
                {
                    result = x.ItemID.CompareTo(y.ItemID);
                }
                //return new ShareCacheStruct<ItemBaseInfo>().FindKey(x.ItemID).EquParts.CompareTo(new ShareCacheStruct<ItemBaseInfo>().FindKey(y.ItemID).EquParts);
                return(result);
            });
            coldTime = ConfigEnvSet.GetInt("UserItem.EquColdTime");
            return(true);
        }
Ejemplo n.º 5
0
        public override bool TakeAction()
        {
            var          package  = UserItemPackage.Get(ContextUser.UserID);
            UserItemInfo useritem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID));

            if (useritem != null)
            {
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(useritem.ItemID);
                if (itemInfo != null && itemInfo.DemandLv > ContextUser.VipLv)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                    return(false);
                }
            }
            ItemUseHelper itemuse = new ItemUseHelper();

            itemuse.UseItem(userItemID, Uid);
            if (itemuse.result && itemuse.content != string.Empty)
            {
                ErrorCode = 0;
            }
            if (!itemuse.result)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
            }
            ErrorInfo = itemuse.content.Trim(',');
            return(true);
        }
Ejemplo n.º 6
0
        public override bool TakeAction()
        {
            int uItemID = 0;

            if (itemID == 0 && userItemID != "")
            {
                var          package  = UserItemPackage.Get(Uid);
                UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID));
                if (userItem != null)
                {
                    uItemID = userItem.ItemID;
                }
            }
            else
            {
                uItemID = itemID;
            }
            List <ItemSynthesisInfo> itemSynthesisArray = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(u => u.SynthesisID.Equals(uItemID));

            if (itemSynthesisArray.Count > 0)
            {
                itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemSynthesisArray[0].ItemID); //合成物品的信息
                //synthesisArray = new ConfigCacheSet<ItemSynthesisInfo>().FindAll(u => u.ItemID.Equals(itemInfo.ItemID) && u.SynthesisID != itemID);
                synthesisArray = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(u => u.ItemID.Equals(itemInfo.ItemID));
                equAttrInfo    = new ConfigCacheSet <ItemEquAttrInfo>().FindAll(u => u.ItemID.Equals(itemInfo.ItemID));
            }

            synthesisMinLv = ConfigEnvSet.GetInt("ItemInfo.SynthesisMinLv");
            return(true);
        }
Ejemplo n.º 7
0
        public override bool TakeAction()
        {
            var package = UserItemPackage.Get(Uid);

            itemArray = package.ItemPackage.FindAll(
                u =>
            {
                var helper = new UserItemHelper(u);
                return(!u.IsRemove && u.ItemType == ItemType.YaoJi &&
                       helper.DemandLv <= ContextUser.UserLv &&
                       helper.MedicineType == medicineType &&
                       (u.ItemStatus == ItemStatus.BeiBao || u.ItemStatus == ItemStatus.CangKu));
            });
            itemArray.QuickSort((x, y) =>
            {
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                return(x.ItemID.CompareTo(y.ItemID));
            });
            return(true);
        }
Ejemplo n.º 8
0
        private int GetItemMaxNum(ItemSynthesisInfo synthesis)
        {
            if (synthesis == null)
            {
                return(0);
            }
            var package       = UserItemPackage.Get(packUser);
            var userItemArray = package.ItemPackage.FindAll(
                u => !u.IsRemove && u.ItemID.Equals(synthesis.SynthesisID) &&
                u.ItemStatus != ItemStatus.Sell &&
                new UserItemHelper(u).GeneralStatus(packUser) != GeneralStatus.LiDui);

            int maxNum = 0;
            int sumNum = 0;

            foreach (var userItem in userItemArray)
            {
                sumNum += userItem.Num;
            }
            if (sumNum >= synthesis.DemandNum)
            {
                maxNum = synthesis.DemandNum;
            }
            else
            {
                maxNum = sumNum;
            }
            return(maxNum);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// 强化
 /// </summary>
 private void UpdateUserItem(GameUser user, UserItemInfo userItem, int strongMoney)
 {
     if (user.GameCoin >= strongMoney)
     {
         user.GameCoin = MathUtils.Subtraction(user.GameCoin, strongMoney, 0);
         var package = UserItemPackage.Get(user.UserID);
         strongLv = 0;
         VipLvInfo vipLvInfo = new ConfigCacheSet <VipLvInfo>().FindKey(user.VipLv);
         for (int i = 0; i < ops; i++)
         {
             EquStreng streng = null;
             if (vipLvInfo != null && vipLvInfo.EquStreng != null)
             {
                 streng = vipLvInfo.EquStreng;
             }
             if (streng != null && RandomUtils.IsHit(streng.probability))
             {
                 strongLv += (short)RandomUtils.GetRandom(streng.start, streng.end);
             }
             else
             {
                 strongLv += 1;
             }
         }
         userItem.ItemLv = MathUtils.Addition(userItem.ItemLv, strongLv);
         package.SaveItem(userItem);
         UserLogHelper.AppenStrongLog(user.UserID, 1, userItem.UserItemID, userItem.ItemID, 2, userItem.ItemLv, 0, userItem.GeneralID);
     }
 }
Ejemplo n.º 10
0
        public override bool TakeAction()
        {
            var          package  = UserItemPackage.Get(Uid);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID));

            if (userItem == null)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                return(false);
            }
            if (ops == 1)
            {
                var ckUserItemArray = UserItemHelper.GetItems(Uid).FindAll(m => m.ItemStatus == ItemStatus.CangKu);
                if (ckUserItemArray.Count >= ContextUser.WarehouseNum)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St1107_WarehouseNumFull;
                    return(false);
                }
                UserItemHelper.MergerUserItem(ContextUser.UserID, userItemID, ItemStatus.CangKu);
            }
            else if (ops == 2)
            {
                var bbUserItemArray = UserItemHelper.GetItems(Uid).FindAll(m => m.ItemStatus == ItemStatus.BeiBao);
                if (bbUserItemArray.Count >= ContextUser.GridNum)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St1107_GridNumFull;
                    return(false);
                }
                UserItemHelper.MergerUserItem(ContextUser.UserID, userItemID, ItemStatus.BeiBao);
            }
            return(true);
        }
Ejemplo n.º 11
0
        public static bool IsNomalHeritage(string userID, int opsType)
        {
            int     itemid  = 0;
            int     itemnum = 0;
            OpsInfo opsInfo = GeneralHelper.HeritageOpsInfo(opsType);

            if (opsInfo != null)
            {
                itemid  = opsInfo.ItemID;
                itemnum = opsInfo.ItemNum;
            }
            if (itemid > 0 && itemnum > 0)
            {
                var package = UserItemPackage.Get(userID);
                if (package != null)
                {
                    int num      = 0;
                    var useritem = package.ItemPackage.FindAll(s => s.ItemID == itemid);
                    foreach (var itemInfo in useritem)
                    {
                        num += itemInfo.Num;
                    }
                    if (num >= itemnum)
                    {
                        UserItemHelper.UseUserItem(userID, itemid, itemnum);
                        return(true);
                    }
                }
            }
            else
            {
                return(true);
            }
            return(false);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 新手礼包
        /// </summary>
        /// <param name="user"></param>
        /// <param name="item"></param>
        /// <param name="noviceActivities"></param>
        /// <returns></returns>
        public static bool GetNoviceActivities(GameUser user, UserItemInfo item, NoviceActivities noviceActivities)
        {
            List <NoviceReward> noviceArray = noviceActivities.Reward.ToList();
            var package       = UserItemPackage.Get(user.UserID);
            var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);
            int subPackNum    = MathUtils.Subtraction(user.GridNum, MathUtils.Subtraction(userItemArray.Count, 5, 0), 0);

            if (noviceArray.Count > subPackNum)
            {
                return(false);
            }

            bool isupdate = false;

            foreach (NoviceReward reward in noviceArray)
            {
                if (reward.Type == 1)
                {
                    isupdate       = true;
                    user.EnergyNum = MathUtils.Addition(user.EnergyNum, (short)reward.Num, short.MaxValue);
                }
                if (reward.Type == 2)
                {
                    isupdate      = true;
                    user.GameCoin = MathUtils.Addition(user.GameCoin, reward.Num, int.MaxValue);
                }
                else if (reward.Type == 3)
                {
                    ItemBaseInfo itemInfo    = new ShareCacheStruct <ItemBaseInfo>().FindKey(reward.Reward);
                    UserGeneral  userGeneral = UserGeneral.GetMainGeneral(user.UserID);
                    if (itemInfo.ItemType == ItemType.ZhuangBei && !itemInfo.CheckCareer(userGeneral.CareerID))
                    {
                        continue;
                    }
                    UserItemHelper.AddUserItem(user.UserID, itemInfo.ItemID, reward.Num);
                }
                else if (reward.Type == 4)
                {
                    //晶石
                    isupdate      = true;
                    user.GiftGold = MathUtils.Addition(user.GiftGold, reward.Num, int.MaxValue);
                }
            }
            UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);

            if (isupdate)
            {
                //user.Update();
            }

            if (item.ItemID == 5000 || item.ItemID == 5001 ||
                item.ItemID == 5002 || item.ItemID == 5003)
            {
                int itemID = MathUtils.Addition(item.ItemID, 1, int.MaxValue);
                UserItemHelper.AddUserItem(user.UserID, itemID, 1);
            }
            return(true);
        }
Ejemplo n.º 13
0
        public override bool TakeAction()
        {
            try
            {
                MaxLength = ConfigEnvSet.GetInt("User.MaxLength");
                itemID    = ConfigEnvSet.GetInt("UserName.ItemID");
                int length = System.Text.Encoding.Default.GetByteCount(_nickName);
                if (length <= 0 || length > MaxLength)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = string.Format(LanguageManager.GetLang().St1005_KingNameTooLong, MaxLength);
                    return(false);
                }
                if (GameUser.IsNickName(_nickName))
                {
                    ErrorCode = 1;
                    ErrorInfo = LanguageManager.GetLang().St1005_Rename;
                    return(false);
                }
                //UserItemLog userItem = UserItemLog.FindKey(itemID);
                var          package  = UserItemPackage.Get(Uid);
                UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.ItemID == itemID);
                if (userItem == null || userItem.Num <= 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    return(false);
                }
                ContextUser.NickName = _nickName;

                int                rankID = 0;
                UserRank           rankInfo;
                Ranking <UserRank> ranking = RankingFactory.Get <UserRank>(CombatRanking.RankingKey);
                if (ranking.TryGetRankNo(m => m.UserID == ContextUser.UserID, out rankID))
                {
                    rankInfo = ranking.Find(s => s.UserID == ContextUser.UserID);
                    if (rankInfo != null)
                    {
                        rankInfo.NickName = _nickName;
                    }
                }
                //ContextUser.Update();
                //UserGeneral usergen = UserGeneral.GetMainGeneral(ContextUser.UserID);
                //if (usergen != null)
                //{
                //    usergen.GeneralName = _nickName;
                //    //usergen.Update();
                //}
                UserItemHelper.UseUserItem(ContextUser.UserID, itemID, 1);

                return(true);
            }
            catch (Exception ex)
            {
                SaveLog(ex);
                return(false);
            }
        }
Ejemplo n.º 14
0
        public override bool TakeAction()
        {
            var package   = UserItemPackage.Get(ContextUser.UserID);
            var itemArray =
                package.ItemPackage.FindAll(
                    m => m.ItemStatus.Equals(ItemStatus.BeiBao) && m.ItemType == ItemType.Gift);

            userItemArray = itemArray.GetPaging(pageIndex, pageSize, out pageCount).ToArray();
            return(true);
        }
Ejemplo n.º 15
0
        public override bool TakeAction()
        {
            MosaicInfo mosaicInfo = new ShareCacheStruct <MosaicInfo>().FindKey(postion);

            if (mosaicInfo != null)
            {
                notchColor = mosaicInfo.MosaicColor;
            }
            var package     = UserEnchant.Get(ContextUser.UserID);
            var itemPackage = UserItemPackage.Get(ContextUser.UserID);

            if (package == null || itemPackage == null)
            {
                return(false);
            }

            UserItemInfo userItem = itemPackage.ItemPackage.Find(m => m.UserItemID == userItemID);

            if (userItem != null)
            {
                int openPostion = EnchantHelper.EnchantOpenGridNum(userItem.ItemLv);
                if (postion > openPostion)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1213_GridNumNotEnough;
                    return(false);
                }
                var userEnchantInfo = package.EnchantPackage.Find(m => m.UserItemID == userItemID && m.Position == postion);
                if (userEnchantInfo != null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1259_EnchantOpenGridFull;
                    return(false);
                }
                List <UserEnchantInfo> enchantList = new List <UserEnchantInfo>();
                var enchantInfoArray = package.EnchantPackage.FindAll(m => string.IsNullOrEmpty(m.UserItemID));

                foreach (var info in enchantInfoArray)
                {
                    EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(info.EnchantID);
                    if (enchantInfo != null && EnchantHelper.IsMosaicColor(postion, enchantInfo.ColorType))
                    {
                        enchantList.Add(info);
                    }
                }
                if (enchantList.Count == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1261_EnchantEquipmentNotEnough;
                    return(false);
                }
                enchantArray = enchantList.GetPaging(pageIndex, pageSize, out PageCount).ToArray();
            }
            return(true);
        }
Ejemplo n.º 16
0
        public override bool TakeAction()
        {
            if (string.IsNullOrEmpty(ContextUser.MercenariesID) || guildID != ContextUser.MercenariesID)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St9203_ChaTypeNotGuildMember;
                return(false);
            }
            UserGuild userGuild = new ShareCacheStruct <UserGuild>().FindKey(guildID);

            if (userGuild == null)
            {
                return(false);
            }
            GuildMember member = new ShareCacheStruct <GuildMember>().FindKey(ContextUser.MercenariesID, ContextUser.UserID);

            if (member != null)
            {
                if (member.PostType == PostType.Member)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St6024_AuditPermissions;
                    return(false);
                }
            }
            else
            {
                return(false);
            }
            //UserItem userItem = UserItem.FindKey(itemID);
            var          package  = UserItemPackage.Get(Uid);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.ItemID == itemID);

            if (userItem == null || userItem.Num <= 0)
            {
                ErrorCode = 1;
                return(false);
            }
            if (userGuild.AddMember >= maxMember)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St6024_GuildAddMemberToLong;
                return(false);
            }
            ItemBaseInfo item = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemID);

            if (item != null)
            {
                addMember = item.EffectNum;
            }
            userGuild.AddMember += addMember;
            //userGuild.Update();
            UserItemHelper.UseUserItem(ContextUser.UserID, itemID, 1);
            return(true);
        }
Ejemplo n.º 17
0
        public override bool TakeAction()
        {
            var package = UserItemPackage.Get(ContextUser.UserID);

            if (package != null)
            {
                var useritemArray = package.ItemPackage.FindAll(s => s.ItemType == ItemType.DaoJu && s.PropType == 14);
                useritemList = useritemArray.GetPaging(pageIndex, pageSize, out pageCount);
            }
            return(true);
        }
Ejemplo n.º 18
0
        public override bool TakeAction()
        {
            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = LanguageManager.GetLang().St1457_UseLifeExtension;
                return(false);
            }
            else if (ops == 2)
            {
                var            package       = UserItemPackage.Get(ContextUser.UserID);
                UserItemInfo[] userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemType == ItemType.DaoJu && m.PropType == 11).ToArray();
                if (userItemArray.Length == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1457_LifeExtensionNotEnough;
                    return(false);
                }
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(userItemArray[0].ItemID);
                if (itemInfo == null)
                {
                    return(false);
                }
                UserTrump userTrump = new PersonalCacheStruct <UserTrump>().FindKey(ContextUser.UserID, TrumpInfo.CurrTrumpID);
                if (userTrump != null)
                {
                    TrumpInfo trumpInfo = new ShareCacheStruct <TrumpInfo>().FindKey(TrumpInfo.CurrTrumpID, userTrump.TrumpLv);
                    if (trumpInfo != null)
                    {
                        if (userTrump.LiftNum < trumpInfo.MaxLift)
                        {
                            userTrump.LiftNum = MathUtils.Addition(userTrump.LiftNum, itemInfo.EffectNum, trumpInfo.MaxLift);
                            UserItemHelper.UseUserItem(ContextUser.UserID, userItemArray[0].ItemID, 1);
                            var usergeneral = UserGeneral.GetMainGeneral(ContextUser.UserID);
                            if (userTrump.LiftNum > 0 && usergeneral != null)
                            {
                                usergeneral.RefreshMaxLife();
                            }
                            ErrorCode = ops;
                            ErrorInfo = string.Format(LanguageManager.GetLang().St1457_ChangeLifeNum, itemInfo.EffectNum);
                        }
                        else
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1457_MaxLifeExtension;
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 19
0
        public override bool TakeAction()
        {
            var package       = UserItemPackage.Get(Uid);
            var userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.BeiBao);

            if (userItemArray.Count >= ContextUser.GridNum)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St7004_BeiBaoTimeOut;
                return(false);
            }

            ItemBaseInfo itemInfo  = new ConfigCacheSet <ItemBaseInfo>().FindKey(itemID);
            int          mallPrice = 0;

            if (itemInfo != null)
            {
                mallPrice = itemInfo.MysteryPrice; //itemInfo.PackMaxNum * itemInfo.SalePrice;
            }
            if (itemInfo != null && mallPrice > ContextUser.GameCoin)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                return(false);
            }
            if (ContextUser.UserExtend != null && ContextUser.UserExtend.UserShops != null)
            {
                List <MysteryShops> mysteryList = ContextUser.UserExtend.UserShops.ToList();
                MysteryShops        shops       = mysteryList.Find(m => m.ItemID == itemID);
                if (shops != null)
                {
                    if (shops.BuyNum > 0)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St7005_HavePurchasedItem;
                        return(false);
                    }

                    if (shops.BuyNum > 0)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St7005_HavePurchasedItem;
                        return(false);
                    }
                    shops.BuyNum         = 1;
                    ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, mallPrice, 0);
                    //ContextUser.Update();

                    UserItemHelper.AddUserItem(ContextUser.UserID, itemID, itemNum);
                }
            }
            return(true);
        }
Ejemplo n.º 20
0
        public override bool TakeAction()
        {
            var         package     = UserItemPackage.Get(ContextUser.UserID);
            UserGeneral userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID);
            GeneralInfo general     = new ShareCacheStruct <GeneralInfo>().FindKey(generalID);

            if (package == null || general == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }
            if (userGeneral == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1442_SelectMercenaryUpgrade;
                return(false);
            }
            if (string.IsNullOrEmpty(userGeneral.GeneralCard))
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1442_SelectTheExperienceCard;
                return(false);
            }
            string[] itemStr = userGeneral.GeneralCard.Split(',');
            bool     isUse   = false;

            foreach (var str in itemStr)
            {
                var useritem = package.ItemPackage.Find(s => !s.IsRemove && s.UserItemID == str);
                if (useritem == null)
                {
                    continue;
                }
                int          exprience = 0;
                ItemBaseInfo itemInfo  = new ShareCacheStruct <ItemBaseInfo>().FindKey(useritem.ItemID);
                if (itemInfo != null)
                {
                    exprience = itemInfo.EffectNum;
                    if (general.ItemID == itemInfo.ItemID)
                    {
                        exprience = (exprience * GameConfigSet.ExpMultiple).ToInt();
                    }
                    //GeneralHelper.UserGeneralExp(ContextUser.UserID, generalID, exprience);
                    UserItemHelper.UseUserItem(ContextUser.UserID, useritem.ItemID, 1);
                    isUse = true;
                }
            }
            if (isUse)
            {
                userGeneral.GeneralCard = string.Empty;
            }
            return(true);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 收集到物品的数量
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="itemID"></param>
        /// <returns></returns>
        public static int GetUserItemNum(string userID, int itemID)
        {
            int itemNum  = 0;
            var package  = UserItemPackage.Get(userID);
            var useritem = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemID == itemID);

            foreach (var info in useritem)
            {
                itemNum = MathUtils.Addition(itemNum, info.Num);
            }
            return(itemNum);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 玩家剩余的材料
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="itemID"></param>
        /// <returns></returns>
        public static int SpecialItemNum(string userID, int itemID)
        {
            int itemNum = 0;
            var package = UserItemPackage.Get(userID);

            UserItemInfo[] itemInfosArray = package.ItemPackage.FindAll(m => m.ItemID.Equals(itemID)).ToArray();
            foreach (UserItemInfo itemInfo in itemInfosArray)
            {
                itemNum += itemInfo.Num;
            }
            return(itemNum);
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 合成后装备
        /// </summary>
        /// <param name="itemID"></param>
        /// <param name="info"></param>
        private void UpdateUserItem(int itemID, UserItemInfo info)
        {
            //原因:合成黄色装备,物品存放为0
            info.ItemID = itemID;
            info.ItemLv = MathUtils.Subtraction(info.ItemLv, (short)5, (short)1);
            var package = UserItemPackage.Get(Uid);

            info.ItemType = ItemType.ZhuangBei;
            package.SaveItem(info);
            //package.DelayChange();
            UserItemHelper.AddItemLog(ContextUser.UserID, itemID, 1, info.ItemLv, 5, info.UserItemID);
        }
Ejemplo n.º 24
0
        public override bool TakeAction()
        {
            var package = UserItemPackage.Get(ContextUser.UserID);

            userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemType == ItemType.DaoJu && m.PropType == 10).ToArray();
            if (userItemArray.Length == 0)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1456_UpTrumpItemNotEnough;
                return(false);
            }
            return(true);
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 传承佣兵身上是否有装备
        /// </summary>
        /// <param name="general"></param>
        /// <returns></returns>
        public static bool IsGeneralEqu(string userID, int generalID)
        {
            var package = UserItemPackage.Get(userID);

            if (package != null)
            {
                var useritemList = package.ItemPackage.FindAll(s => !s.IsRemove && s.GeneralID == generalID);
                if (useritemList.Count > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 佣兵卡片物品
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="userItemID"></param>
        /// <returns></returns>
        public static ItemBaseInfo GetItemBaseInfo(string userID, string userItemID)
        {
            var package = UserItemPackage.Get(userID);

            if (package != null)
            {
                var useritem = package.ItemPackage.Find(s => !s.IsRemove && s.UserItemID == userItemID);
                if (useritem != null)
                {
                    return(new ConfigCacheSet <ItemBaseInfo>().FindKey(useritem.ItemID));
                }
            }
            return(null);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 当前佣兵身上的武器
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="generalID"></param>
        /// <returns></returns>
        public static UserItemInfo GetGeneralWeapon(string userID, int generalID)
        {
            UserItemInfo useritem = null;
            var          package  = UserItemPackage.Get(userID);

            if (package != null)
            {
                UserItemInfo[] userItemArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.GeneralID == generalID && m.Equparts == EquParts.WuQi).ToArray();
                if (userItemArray.Length > 0)
                {
                    useritem = userItemArray[0];
                }
            }
            return(useritem);
        }
Ejemplo n.º 28
0
        public override bool TakeAction()
        {
            var package       = UserItemPackage.Get(Uid);
            var itemSortArray = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus == ItemStatus.CangKu);

            itemSortArray.QuickSort((x, y) =>
            {
                int result = 0;
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                result = ((int)x.ItemType).CompareTo((int)y.ItemType);
                if (result == 0)
                {
                    result = x.ItemID.CompareTo(y.ItemID);
                    if (result == 0)
                    {
                        if (x.ItemType == ItemType.ZhuangBei)
                        {
                            UserItemHelper h1 = new UserItemHelper(y);
                            UserItemHelper h2 = new UserItemHelper(x);
                            result            = ((int)h1.QualityType).CompareTo((int)h2.QualityType);
                            if (result == 0)
                            {
                                result = ((int)y.ItemLv).CompareTo((int)x.ItemLv);
                            }
                        }
                        else
                        {
                            result = ((int)y.ItemLv).CompareTo((int)x.ItemLv);
                        }
                    }
                }
                return(result);
            });

            mlist = itemSortArray.GetPaging(pageIndex, pageSize, out pageCount);
            return(true);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// 判断是否合成装备
        /// </summary>
        /// <param name="uItemID"></param>
        /// <returns></returns>
        public static bool IsSynthesisEqu(string userId, string uItemID)
        {
            bool         isEqu    = false;
            var          package  = UserItemPackage.Get(userId);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(uItemID));

            if (userItem != null)
            {
                ItemBaseInfo itemBaseInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemBaseInfo != null && itemBaseInfo.ItemType == ItemType.ZhuangBei)
                {
                    isEqu = true;
                }
            }
            return(isEqu);
        }
Ejemplo n.º 30
0
        public override bool TakeAction()
        {
            if (NoviceHelper.IsFestivalOpen(festivalID))
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().ZhongYuanHuodong;
                return(false);
            }
            var          package  = UserItemPackage.Get(Uid);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID));

            if (userItem != null)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemInfo == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    //ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                    return(false);
                }
                if (userItem.ItemID == 7003 || userItem.ItemID == 5200)
                {
                    //双倍材料掉落卡
                    if (!DoCaiLiaoYueBingItem(userItem, itemInfo))
                    {
                        return(false);
                    }
                }
                else
                {
                    //其他类型的道具
                    if (!UseProps(ContextUser.UserID, itemInfo))
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1608_CombatPowerNotEnough;
                        return(false);
                    }
                }
                PictureID = itemInfo.PictrueID;
                UserItemHelper.UseUserItem(ContextUser.UserID, userItem.ItemID, 1);
            }
            return(true);
        }