示例#1
0
        public void SaveItem(UserItemInfo item)
        {
            if (item == null || string.IsNullOrEmpty(item.UserItemID))
            {
                return;
            }
            var tempItem = ItemPackage.Find(m => !string.IsNullOrEmpty(item.UserItemID) && string.Equals(m.UserItemID, item.UserItemID));

            if (tempItem == null)
            {
                ItemPackage.Add(item);
            }
            else
            {
                tempItem.UpdateNotify(obj =>
                {
                    tempItem.UserItemID = item.UserItemID;
                    tempItem.GeneralID  = item.GeneralID;
                    tempItem.IsRemove   = item.IsRemove;
                    tempItem.ItemID     = item.ItemID;
                    tempItem.ItemLv     = item.ItemLv;
                    tempItem.ItemStatus = item.ItemStatus;
                    tempItem.ItemType   = item.ItemType;
                    tempItem.Num        = item.Num;
                    tempItem.SoldDate   = item.SoldDate;
                    return(true);
                });
            }
        }
示例#2
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);
        }
示例#3
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);
     }
 }
示例#4
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);
        }
示例#5
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);
        }
示例#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);
        }
示例#7
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);
        }
示例#8
0
        /// <summary>
        /// ����ճ�������Ʒ����
        /// </summary>
        /// <param name="userLv"></param>
        /// <returns></returns>
        public UserItemInfo GetDailyItem(short userLv)
        {
            UserItemInfo  userItem  = null;
            int           index     = (int)TaskStar - 1;
            var           cacheSet  = new ShareCacheStruct <DailyTaskInfo>();
            DailyTaskInfo dtaskInfo = cacheSet.FindKey(TaskID);

            string[] NumRank = dtaskInfo.QishiNumRank.ToNotNullString().Split(new char[] { ',' });
            int      num     = NumRank.Length > index && index >= 0 ? NumRank[index].ToInt() : 0;

            if (num <= 0)
            {
                return(userItem);
            }

            string[] QishiRank  = dtaskInfo.QishiRank.ToNotNullString().Split(new char[] { ',' });
            string[] UserLvRank = dtaskInfo.UserLvRank.ToNotNullString().Split(new char[] { ',' });
            if (QishiRank.Length > 0 && QishiRank.Length == UserLvRank.Length)
            {
                int          itemIndex = GetItemIndex(UserLvRank, userLv);
                int          itemID    = QishiRank.Length > itemIndex ? QishiRank[itemIndex].ToInt() : 0;
                ItemBaseInfo itemInfo  = new ShareCacheStruct <ItemBaseInfo>().FindKey(itemID);
                if (itemInfo != null)
                {
                    userItem        = new UserItemInfo();
                    userItem.ItemID = itemInfo.ItemID;
                    userItem.Num    = num;
                }
            }
            return(userItem);
        }
示例#9
0
        /// <summary>
        /// 双倍材料,月饼道具使用
        /// </summary>
        /// <param name="userItem"></param>
        /// <param name="itemInfo"></param>
        /// <returns></returns>
        private bool DoCaiLiaoYueBingItem(UserItemInfo userItem, ItemBaseInfo itemInfo)
        {
            UserProps props = new GameDataCacheSet <UserProps>().FindKey(ContextUser.UserID, userItem.ItemID);

            if (props != null)
            {
                if (userItem.ItemID == 5200 && props.DoRefresh() > 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1608_CombatPowerNotEnough;
                    return(false);
                }

                props.SurplusNum += itemInfo.EffectNum;
                props.ChangeTime  = DateTime.Now;
                //props.Update();
            }
            else
            {
                UserProps uProps = new UserProps(ContextUser.UserID, itemInfo.ItemID)
                {
                    SurplusNum = itemInfo.EffectNum,
                    ChangeTime = DateTime.Now
                };
                new GameDataCacheSet <UserProps>().Add(uProps, GameEnvironment.CacheUserPeriod);
            }
            return(true);
        }
示例#10
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);
        }
示例#11
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 ConfigCacheSet<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;
        }
示例#12
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);
            }
        }
示例#13
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);
        }
示例#14
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);
        }
示例#15
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);
        }
示例#16
0
        /// <summary>
        /// 领取神秘礼包
        /// </summary>
        /// <returns></returns>
        public static void MysteriousSpree(UserItemInfo item, GameUser user)
        {
            ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID);

            if (itemInfo != null)
            {
                var       prizeInfosArray = itemInfo.ItemPack;
                int       randomNum       = RandomUtils.GetRandom(0, prizeInfosArray.Count);
                PrizeInfo prizeInfo       = prizeInfosArray[randomNum];
                ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num);
            }
        }
示例#17
0
        private static string SetUserItem(UserItemInfo userItem, string userID, ItemBaseInfo itemInfo, ItemStatus itemStatus, short itemLv)
        {
            string uitemID = System.Guid.NewGuid().ToString();

            userItem.UserItemID = uitemID;
            userItem.ItemID     = itemInfo.ItemID;
            userItem.ItemStatus = itemStatus;
            userItem.GeneralID  = itemStatus == ItemStatus.YongBing ? UserGeneral.MainID : 0;
            userItem.ItemLv     = itemLv;
            userItem.ItemType   = itemInfo.ItemType;
            return(uitemID);
        }
示例#18
0
        /// <summary>
        /// 被合成的装备
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="itemID"></param>
        /// <returns></returns>
        public static UserItemInfo GetUserItemInfo(string userID, int itemID)
        {
            UserItemInfo userItemInfo   = null;
            var          userItemsArray = UserItemHelper.GetItems(userID).FindAll(u => u.ItemID == itemID && (u.ItemStatus == ItemStatus.BeiBao || u.ItemStatus == ItemStatus.CangKu));

            if (userItemsArray.Count == 0)
            {
                userItemsArray = UserItemHelper.GetItems(userID).FindAll(u => u.ItemID == itemID && u.ItemStatus == ItemStatus.YongBing && new UserItemHelper(u).GeneralStatus(userID) != GeneralStatus.LiDui);
            }
            if (userItemsArray.Count > 0)
            {
                userItemInfo = userItemsArray[0];
            }
            return(userItemInfo);
        }
示例#19
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);
        }
示例#20
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);
        }
示例#21
0
        public void RemoveItem(UserItemInfo userItem)
        {
            if (userItem != null)
            {
                userItem.IsRemove = true;
                ItemPackage.Remove(userItem);

                TraceLog.Write(string.Format("UserId:{0} remove item:'{1}' {2}*{3},state:{4},lv:{5}",
                                             UserID,
                                             userItem.UserItemID,
                                             userItem.ItemID,
                                             userItem.Num,
                                             userItem.ItemStatus,
                                             userItem.ItemLv));
            }
        }
示例#22
0
        /// <summary>
        /// 传入仓库或取出物品后合并物品
        /// </summary>
        public static void MergerUserItem(string userID, string userItemID, ItemStatus itemStatus)
        {
            var          package  = UserItemPackage.Get(userID);
            UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && string.Equals(m.UserItemID, userItemID));

            if (userItem != null)
            {
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemInfo == null)
                {
                    return;
                }
                if (userItem.Num == itemInfo.PackMaxNum)
                {
                    userItem.ItemStatus = itemStatus;
                    package.SaveItem(userItem);
                }
                else
                {
                    int itemNum   = userItem.Num;
                    var itemArray = package.ItemPackage.FindAll(u => !u.IsRemove && u.ItemID == userItem.ItemID && u.ItemStatus.Equals(itemStatus));
                    foreach (var item in itemArray)
                    {
                        if (item.Num < itemInfo.PackMaxNum)
                        {
                            int subNum = MathUtils.Subtraction(itemInfo.PackMaxNum, item.Num, 0);
                            item.Num = MathUtils.Addition(item.Num, itemNum, itemInfo.PackMaxNum);
                            itemNum  = MathUtils.Subtraction(itemNum, subNum, 0);
                            package.SaveItem(item);
                            //item.Update();
                        }
                    }
                    if (itemNum > 0)
                    {
                        userItem.Num        = itemNum;
                        userItem.ItemStatus = itemStatus;
                        package.SaveItem(userItem);
                    }
                    else
                    {
                        AddItemLog(userID, userItem.ItemID, itemNum, userItem.ItemLv, 7, userItemID);

                        package.RemoveItem(userItem);
                    }
                }
            }
        }
示例#23
0
        /// <summary>
        /// 随机获得金币、精力奖励
        /// </summary>
        /// <param name="item"></param>
        /// <param name="user"></param>
        public static void GetProbabilityReward(GameUser user, UserItemInfo item)
        {
            ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(item.ItemID);

            if (itemInfo != null)
            {
                var      prizeInfosArray = itemInfo.ItemPack;
                double[] probability     = new double[prizeInfosArray.Count];
                for (int i = 0; i < prizeInfosArray.Count; i++)
                {
                    probability[i] = (double)prizeInfosArray[i].Probability;
                }
                int       index2    = RandomUtils.GetHitIndex(probability);
                PrizeInfo prizeInfo = prizeInfosArray[index2];
                ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num);
                UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);
            }
        }
示例#24
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);
        }
示例#25
0
        public void AddUserItems(ItemInfo itemInfo)
        {
            UserItemInfo temp_info = new UserItemInfo
            {
                itemID  = ( uint )itemInfo.ItemId,
                buyTime = ( ulong )itemInfo.BuyTime,
                endTime = ( ulong )itemInfo.EndTime,
                itemNum = ( int )itemInfo.ItemNum
            };

            //若不为永久拥有,过期则删除
            if (-1 != itemInfo.EndTime && 0 > itemInfo.EndTime + itemInfo.BuyTime - TimeUtils.utcTime)
            {
                CS.instance.userMgr.UserAskUdateItem(temp_info, DBOperation.Del, this.guid);
            }
            else
            {
                this.userDbData.item_Map[temp_info.itemID] = temp_info;
            }
        }
示例#26
0
        public override bool TakeAction()
        {
            string puUserID;

            if (string.IsNullOrEmpty(toUserID))
            {
                puUserID = ContextUser.UserID;
            }
            else
            {
                puUserID = toUserID;
                UserCacheGlobal.LoadOffline(puUserID);
            }
            UserGeneral general = new PersonalCacheStruct <UserGeneral>().FindKey(puUserID, generalID);

            if (general == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }
            generalName = general.GeneralName;
            careerID    = general.CareerID;
            var          package  = UserEnchant.Get(puUserID);
            UserItemInfo useritem = EnchantHelper.GetGeneralWeapon(general.UserID, general.GeneralID);

            if (useritem != null)
            {
                userItemID = useritem.UserItemID;
                ItemBaseInfo itemInfo = new ShareCacheStruct <ItemBaseInfo>().FindKey(useritem.ItemID);
                if (itemInfo != null)
                {
                    itemName = itemInfo.ItemName;
                    headID   = itemInfo.HeadID;
                }
                openNum      = EnchantHelper.EnchantOpenGridNum(useritem.ItemLv);
                enchantArray = package.EnchantPackage.FindAll(m => m.UserItemID == useritem.UserItemID).ToArray();
            }

            return(true);
        }
示例#27
0
        public override bool TakeAction()
        {
            ErrorCode = _ops;
            int goldNum = ConfigEnvSet.GetInt("SparePart.PropertyGoldNum");

            if (_ops == 1)
            {
                ErrorInfo = string.Format(LanguageManager.GetLang().St1216_EnableSpartProperty, goldNum, _position);
            }
            else if (_ops == 2)
            {
                if (ContextUser.GoldNum < goldNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                if (ContextUser.EnableSpareProperty(_sparepartID, out _sparePart))
                {
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, goldNum);
                    //ContextUser.Update();
                    var          itempackage = UserItemPackage.Get(ContextUser.UserID);
                    UserItemInfo userItem    = itempackage.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(_sparePart.UserItemID));
                    if (userItem != null && userItem.ItemStatus.Equals(ItemStatus.YongBing))
                    {
                        var userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, userItem.GeneralID);
                        if (userGeneral != null)
                        {
                            userGeneral.RefreshMaxLife();
                        }
                    }
                }
                else
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    return(false);
                }
            }
            return(true);
        }
示例#28
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)
            {
                package.UpdateNotify(obj =>
                {
                    package.RemoveItem(userItem);
                    return(true);
                });
                UserItemHelper.AddItemLog(ContextUser.UserID, userItem.ItemID, userItem.Num, userItem.ItemLv, 8, userItem.UserItemID);
            }
            else
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().ServerBusy;
                return(false);
            }
            return(true);
        }
示例#29
0
        private void ResetProperty()
        {
            //洗涤属性
            var sparePart = ContextUser.SparePartList.Find(m => m.UserSparepartID.Equals(_sparepartID));

            if (sparePart != null)
            {
                var sparePartInfo = new ConfigCacheSet <SparePartInfo>().FindKey(sparePart.SparePartId) ?? new SparePartInfo();
                sparePart.UpdateNotify(obj =>
                {
                    for (int i = 0; i < sparePart.Propertys.Count; i++)
                    {
                        if (!sparePart.Propertys[i].IsEnable)
                        {
                            continue;
                        }
                        if (_partPropertys.Length > 0 && Array.Exists(_partPropertys, m => m.ToInt() - 1 == i))
                        {
                            continue;
                        }

                        sparePart.Propertys[i] = UserSparePart.RandomProperty(sparePartInfo, false, sparePart.Propertys);
                        var package            = UserItemPackage.Get(Uid);
                        UserItemInfo userItem  = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(sparePart.UserItemID));
                        if (userItem != null && userItem.ItemStatus.Equals(ItemStatus.YongBing))
                        {
                            var userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(Uid, userItem.GeneralID);
                            if (userGeneral != null)
                            {
                                userGeneral.RefreshMaxLife();
                            }
                        }
                    }
                    return(true);
                });
                _sparePart = ContextUser.SparePartList.Find(m => m.UserSparepartID.Equals(_sparepartID));
                //ContextUser.UpdateSparePart();
            }
        }
示例#30
0
文件: Action1603.cs 项目: 0jpq0/Scut
        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);
        }
示例#31
0
文件: Action1204.cs 项目: 0jpq0/Scut
        public override bool TakeAction()
        {
            //int maxEquNum = ConfigEnvSet.GetInt("UserQueue.EquStrengMaxNum");
            //int coldTime = ConfigEnvSet.GetInt("UserItem.EquColdTime");

            //铜钱不足
            var package = UserItemPackage.Get(Uid);
            userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(userItemID)) ?? new UserItemInfo();
            if (ops == StrongOnce)
            {
                // 强化 1 次用钱
                strongMoney = new UserItemHelper(userItem, 1).StrongMoney;
            }
            else if (ops == StrongTenTimes)
            {
                // 强化 10 次用钱
                strongMoney = new UserItemHelper(userItem, 10).StrongMoney;
            }
            short strongMaxLv = (ContextUser.UserLv * 3).ToShort(); //MathUtils.Addition(ContextUser.UserLv, 1.ToShort()); //强化最高等级
            if (ContextUser.GameCoin < strongMoney)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                return false;
            }

            //UserGeneral userGeneral = new GameDataCacheSet<UserGeneral>().FindKey(ContextUser.UserID, userItem.GeneralID);
            //if (userGeneral != null && userItem.ItemLv >= strongMaxLv)
            //{
            //    ErrorCode = LanguageManager.GetLang().ErrorCode;
            //    ErrorInfo = LanguageManager.GetLang().St1204_EquGeneralMaxLv;
            //    return false;
            //}

            if (userItem.ItemLv >= strongMaxLv)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1204_EquMaxLv;
                return false;
            }

            itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(userItem.ItemID);
            if (itemInfo != null)
            {
                itemEquArray = new ConfigCacheSet<ItemEquAttrInfo>().FindAll(m => m.ItemID == itemInfo.ItemID);
            }

            if (strongMoney > ContextUser.GameCoin)
            {
                isStrong = 1;
            }
            else if (userItem.ItemLv >= strongMaxLv)
            {
                isStrong = 2;
            }

            UpdateUserItem(ContextUser, userItem, strongMoney);
            //日常任务-强化
            TaskHelper.TriggerDailyTask(Uid, 4001);

            UserGeneral general = new GameDataCacheSet<UserGeneral>().FindKey(ContextUser.UserID, userItem.GeneralID);
            if (general != null)
            {
                general.RefreshMaxLife();
            }
            return true;
        }
示例#32
0
        public override bool TakeAction()
        {
            if (!string.IsNullOrEmpty(_toUserID))
            {
                packUser = _toUserID;
            }
            else
            {
                packUser = ContextUser.UserID;
            }
            var package = UserItemPackage.Get(packUser);

            _useritem = package.ItemPackage.Find(m => string.Equals(m.UserItemID, _userItemID)) ?? new UserItemInfo();
            if (_useritem == null || _useritem.ItemID == 0)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                return(false);
            }

            _itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(_useritem.ItemID);
            if (_itemInfo == null)
            {
                ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }

            if (_useritem.ItemLv > _itemInfo.DemandLv)
            {
                demandLv = _useritem.ItemLv;
            }
            else
            {
                demandLv = _itemInfo.DemandLv;
            }
            if (_itemInfo.ItemType == ItemType.ZhuangBei)
            {
                _salePrice = UserHelper.StrongEquPayPrice(packUser, _userItemID);
            }
            else
            {
                if (isShow > 0)
                {
                    _salePrice = (_itemInfo.SalePrice / 4);
                }
                else
                {
                    _salePrice = ((_itemInfo.SalePrice / 4) * _useritem.Num);
                }
            }

            _itemEquArray = new ConfigCacheSet <ItemEquAttrInfo>().FindAll(m => m.ItemID == _useritem.ItemID);
            List <ItemSynthesisInfo> synthsisArray = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(m => m.SynthesisID == _useritem.ItemID);

            if (synthsisArray.Count > 0)
            {
                var synthsis = synthsisArray[0];
                if (_itemInfo.ItemType == ItemType.TuZhi || _itemInfo.ItemType == ItemType.TuZhi)
                {
                    _itemSynthsisArray = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(m => m.ItemID == synthsis.ItemID && m.SynthesisID != _useritem.ItemID);
                }
            }

            if (_itemInfo.CareerRange != null && _itemInfo.CareerRange.Trim() != "0")
            {
                _careerList = _itemInfo.CareerRange.Split(',');
            }
            PropertyArray = UserHelper.SparePartPropertyList(packUser, _userItemID); //灵件属性
            return(true);
        }
示例#33
0
文件: Action1204.cs 项目: 0jpq0/Scut
 /// <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);
     }
 }
示例#34
0
        /// <summary>
        /// 增加物品
        /// </summary>
        public static void AddUserItem(string userID, int itemID, int itemNum, ItemStatus itemStatus, short itemLv, List<UniversalInfo> universalInfoList = null)
        {
            // 增加玩家集邮册
            AddUserAlbum(userID,itemID);

            var chatService = new TjxChatService();
            GameUser user = new GameDataCacheSet<GameUser>().FindKey(userID);

            ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(itemID);
            if (user == null || itemInfo == null)
            {
                return;
            }
            AddUniversalInfo(universalInfoList, itemInfo, itemNum);

            if (itemInfo.ItemType == ItemType.DaoJu && itemInfo.PropType == 17)
            {
                for (int i = 0; i < itemNum; i++)
                {

                    if (!PackIsFull(userID, BackpackType.HunJi, 1))
                    {

                        AddUserAbility(itemInfo.EffectNum, userID.ToInt(), 0, 0);
                    }
                }

            }
            else
            {
                if (itemInfo.ItemType == ItemType.DaoJu && itemInfo.PropType == 20)
                {
                    AddGeneralSoul(userID, itemInfo.ItemID, itemNum);

                }
                else
                {
                    int gridMaxNum = 0;
                    if (itemInfo.ItemType == ItemType.ZhuangBei)
                    {
                        gridMaxNum = GetPackTypePositionNum(BackpackType.ZhuangBei, userID);
                    }
                    else
                    {
                        gridMaxNum = GetPackTypePositionNum(BackpackType.BeiBao, userID);
                    }
                    int packNum = itemNum / itemInfo.PackMaxNum;
                    int num = itemNum % itemInfo.PackMaxNum;
                    ////判断背包是否有空位
                    //bool isOut = false;
                    //if (itemStatus == ItemStatus.BeiBao)
                    //{
                    //    isOut = CheckItemOut(user, itemStatus);
                    //}

                    var package = UserItemPackage.Get(userID);
                    var itemList = package.ItemPackage.FindAll(m => !m.IsRemove && m.ItemStatus.Equals(ItemStatus.BeiBao));
                    //背包中是否有余
                    var packItemList = package.ItemPackage.FindAll(
                        m => !m.IsRemove && m.ItemStatus.Equals(itemStatus) &&
                             m.ItemID == itemID &&
                             m.Num < itemInfo.PackMaxNum);

                    //当前空位
                    int currGridNum = gridMaxNum - itemList.Count;
                    // if ((isOut && packItemList.Count == 0) || currGridNum < packNum)
                    if (packItemList.Count == 0 && currGridNum <= 0)
                    {
                        AddItemLog(userID, itemID, itemNum, 1, 0, null);
                        chatService.SystemSendWhisper(user, string.Format("掉落物品{0}*{1}", itemInfo.ItemName, itemNum));
                        return;
                    }
                    currGridNum = MathUtils.Subtraction(currGridNum, packNum, 0);

                    for (int i = 0; i < packNum; i++)
                    {
                        //增加整包
                        UserItemInfo userItem = new UserItemInfo();
                        string uitemID = SetUserItem(userItem, userID, itemInfo, itemStatus, itemLv);
                        userItem.Num = itemInfo.PackMaxNum;

                        package.SaveItem(userItem);
                        AddItemLog(userID, itemID, userItem.Num, userItem.ItemLv, 1, uitemID);
                    }
                    //背包中是否有余
                    foreach (var item in packItemList)
                    {
                        if (num == 0) break;

                        int gridNum = itemInfo.PackMaxNum - item.Num;
                        int tempNum = gridNum > num ? num : gridNum;

                        item.Num = MathUtils.Addition(item.Num, tempNum, itemInfo.PackMaxNum);

                        package.SaveItem(item);
                        num = num > tempNum ? num - tempNum : 0;
                    }
                    //数据是否有余
                    if (num > 0)
                    {
                        if (currGridNum <= 0)
                        {
                            AddItemLog(userID, itemInfo.ItemID, num, 1, 0, null);
                            chatService.SystemSendWhisper(user, string.Format("掉落物品{0}*{1}", itemInfo.ItemName, num));
                        }
                        else
                        {
                            var userItem = new UserItemInfo();
                            string uitemID = SetUserItem(userItem, userID, itemInfo, itemStatus, itemLv);
                            userItem.Num = num;
                            package.SaveItem(userItem);

                            AddItemLog(userID, itemID, userItem.Num, userItem.ItemLv, 1, uitemID);
                        }
                    }
                }
            }
        }
示例#35
0
 private static int GetEquAttrEffect(UserItemInfo item, AbilityType abilityType)
 {
     ItemEquAttrInfo equAttr = new ConfigCacheSet<ItemEquAttrInfo>().FindKey(item.ItemID, abilityType);
     return (equAttr != null ? equAttr.GetEffectNum(item.ItemLv) : 0);
 }
示例#36
0
 // 重载构造函数,用于强化 10 次
 public UserItemHelper(UserItemInfo item, int count)
 {
     _item = item;
     _itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(_item.ItemID) ?? new ItemBaseInfo();
     _strongCount = count;
 }
示例#37
0
        private static int _strongCount = 1;  // 强化次数

        public UserItemHelper(UserItemInfo item)
        {
            _item = item;
            _itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(_item.ItemID) ?? new ItemBaseInfo();
        }
示例#38
0
文件: Action1603.cs 项目: 0jpq0/Scut
 /// <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);
 }
示例#39
0
        public override bool TakeAction()
        {
            UserHelper.ChechDailyRestrain(ContextUser.UserID);
            int maxNum = 0;
            int useNum = 0;
            DailyRestrainSet restrainSet = new ShareCacheStruct<DailyRestrainSet>().FindKey(RestrainType.DragonHolyWater);
            if (restrainSet != null)
            {
                maxNum = restrainSet.MaxNum;
            }

            int _itemID = 5050;
            UserGeneral general = new GameDataCacheSet<UserGeneral>().FindKey(ContextUser.UserID, generalID);
            if (general == null || general.SaturationNum == 0)
            {
                return false;
            }

            var package = UserItemPackage.Get(ContextUser.UserID);
            var userItemArray = package.ItemPackage.FindAll(m => m.ItemID.Equals(_itemID));
            UserItemInfo useritem = new UserItemInfo();
            if (userItemArray.Count > 0)
            {
                useritem = userItemArray[0];
            }
            else
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1423_UserItemNotEnough;
                return false;
            }
            ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(useritem.ItemID);
            if (itemInfo == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                return false;
            }
            var cacheSet = new GameDataCacheSet<UserDailyRestrain>();
            UserDailyRestrain userRestrain = cacheSet.FindKey(ContextUser.UserID);
            if (userRestrain != null && userRestrain.UserExtend != null && userRestrain.UserExtend.WaterNum.Count > 0)
            {
                List<DailyRestrain> daliyrestrainList = userRestrain.UserExtend.WaterNum.FindAll(m => m.ID == generalID);
                useNum = daliyrestrainList.Count;
            }
            if (ops == 1)
            {
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1423_ClearCurrSatiation, itemInfo.ItemName);
                return false;
            }
            else if (ops == 2)
            {
                if (useNum >= maxNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1423_DragonHolyWater;
                    return false;
                }
                if (general.SaturationNum > 0)
                {
                    ErrorCode = ops;
                    general.SaturationNum = 0; //general.SaturationNum.Subtraction(itemInfo.SatiationNum, 0);
                    DailyRestrain restrain = new DailyRestrain();
                    restrain.ID = generalID;
                    if (userRestrain != null)
                    {
                        userRestrain.UserExtend.UpdateNotify(obj =>
                        {
                            userRestrain.UserExtend.WaterNum.Add(restrain);
                            return true;
                        });
                    }
                    UserItemHelper.UseUserItem(ContextUser.UserID, itemInfo.ItemID, 1);
                }
            }
            return true;
        }
示例#40
0
 private static string SetUserItem(UserItemInfo userItem, string userID, ItemBaseInfo itemInfo, ItemStatus itemStatus, short itemLv)
 {
     string uitemID = System.Guid.NewGuid().ToString();
     userItem.UserItemID = uitemID;
     userItem.ItemID = itemInfo.ItemID;
     userItem.ItemStatus = itemStatus;
     userItem.GeneralID = itemStatus == ItemStatus.YongBing ? UserGeneral.MainID : 0;
     userItem.ItemLv = itemLv;
     userItem.ItemType = itemInfo.ItemType;
     return uitemID;
 }
示例#41
0
        /// <summary>
        /// 七夕活动奖励
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public static string GianTanabataReward(GameUser user, UserItemInfo item)
        {
            string content = string.Empty;
            ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.ItemID);
            if (itemInfo != null)
            {
                List<PrizeInfo> prizeInfosArray = itemInfo.ItemPack.ToList();

                double[] probability = new double[prizeInfosArray.Count];
                for (int i = 0; i < prizeInfosArray.Count; i++)
                {
                    probability[i] = (double)prizeInfosArray[i].Probability;
                }
                int index2 = RandomUtils.GetHitIndex(probability);
                PrizeInfo prizeInfo = prizeInfosArray[index2];
                if (prizeInfo.Type == RewardType.Item && prizeInfo.ItemList != null)
                {
                    content = PrizeItemList(user.UserID, prizeInfo.ItemList, prizeInfo.CrystalType.ToEnum<CrystalQualityType>());
                }
                else
                {
                    content = ActivitiesAward.GameUserRewardNocite(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num, prizeInfo.CrystalType);
                }
                UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);
            }
            return content;
        }
示例#42
0
        public override bool TakeAction()
        {
            if (string.IsNullOrEmpty(ContextUser.MercenariesID) || guildID != ContextUser.MercenariesID)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St6011_GuildMemberNotMember;
                return(false);
            }
            UserGuild userGuild = new ShareCacheStruct <UserGuild>().FindKey(guildID);

            if (userGuild == null)
            {
                return(false);
            }
            List <UserGuild> guildArray = new ShareCacheStruct <UserGuild>().FindAll(m => m.GuildName == guildName);

            if (guildArray.Count > 0)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St6017_Rename;
                return(false);
            }

            int nameLength = System.Text.Encoding.Default.GetByteCount(guildName);

            if (nameLength < 4 || nameLength > 12)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St6017_GuildNameTooLong;
                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 = LanguageManager.GetLang().ErrorCode;
                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().St6007_AuditPermissions;
                    return(false);
                }
            }
            else
            {
                return(false);
            }
            userGuild.GuildName = guildName;
            //userGuild.Update();
            UserItemHelper.UseUserItem(ContextUser.UserID, itemID, 1);
            return(true);
        }
示例#43
0
        public override bool TakeAction()
        {
            if (!string.IsNullOrEmpty(_toUserID))
            {
                packUser = _toUserID;
            }
            else
            {
                packUser = ContextUser.UserID;
            }
            var package = UserItemPackage.Get(packUser);
            _useritem = package.ItemPackage.Find(m => string.Equals(m.UserItemID, _userItemID)) ?? new UserItemInfo();
            if (_useritem == null || _useritem.ItemID == 0)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                return false;
            }

            _itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(_useritem.ItemID);
            if (_itemInfo == null)
            {
                ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                return false;
            }

            if (_useritem.ItemLv > _itemInfo.DemandLv)
            {
                demandLv = _useritem.ItemLv;
            }
            else
            {
                demandLv = _itemInfo.DemandLv;
            }
            if (_itemInfo.ItemType == ItemType.ZhuangBei)
            {
                _salePrice = UserHelper.StrongEquPayPrice(packUser, _userItemID);
            }
            else
            {
                if (isShow > 0)
                {
                    _salePrice = (_itemInfo.SalePrice / 4);

                }
                else
                {
                    _salePrice = ((_itemInfo.SalePrice / 4) * _useritem.Num);
                }
            }

            _itemEquArray = new ShareCacheStruct<ItemEquAttrInfo>().FindAll(m => m.ItemID == _useritem.ItemID);
            List<ItemSynthesisInfo> synthsisArray = new ShareCacheStruct<ItemSynthesisInfo>().FindAll(m => m.SynthesisID == _useritem.ItemID);
            if (synthsisArray.Count > 0)
            {
                var synthsis = synthsisArray[0];
                if (_itemInfo.ItemType == ItemType.TuZhi || _itemInfo.ItemType == ItemType.TuZhi)
                {
                    _itemSynthsisArray = new ShareCacheStruct<ItemSynthesisInfo>().FindAll(m => m.ItemID == synthsis.ItemID && m.SynthesisID != _useritem.ItemID);
                }
            }

            if (_itemInfo.CareerRange != null && _itemInfo.CareerRange.Trim() != "0")
            {
                _careerList = _itemInfo.CareerRange.Split(',');
            }
            PropertyArray = UserHelper.SparePartPropertyList(packUser, _userItemID); //灵件属性
            return true;
        }
示例#44
0
 /// <summary>
 /// 领取神秘礼包
 /// </summary>
 /// <returns></returns>
 public static void MysteriousSpree(UserItemInfo item, GameUser user)
 {
     ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.ItemID);
     if (itemInfo != null)
     {
         var prizeInfosArray = itemInfo.ItemPack;
         int randomNum = RandomUtils.GetRandom(0, prizeInfosArray.Count);
         PrizeInfo prizeInfo = prizeInfosArray[randomNum];
         ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num);
     }
 }
示例#45
0
 /// <summary>
 /// 
 /// </summary>
 /// <returns></returns>
 public static string CrystalNumFull(GameUser user, UserItemInfo item)
 {
     string content = string.Empty;
     ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(item.ItemID);
     if (itemInfo != null)
     {
         List<PrizeInfo> prizeInfosArray = itemInfo.ItemPack.ToList();
         double[] probability = new double[prizeInfosArray.Count];
         for (int i = 0; i < prizeInfosArray.Count; i++)
         {
             probability[i] = (double)prizeInfosArray[i].Probability;
         }
         int index2 = RandomUtils.GetHitIndex(probability);
         PrizeInfo prizeInfo = prizeInfosArray[index2];
         content = ActivitiesAward.GameUserRewardNocite(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num, prizeInfo.CrystalType);
         //ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num);
         UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);
     }
     return content;
 }
示例#46
0
        public override bool TakeAction()
        {
            int maxEquNum = ConfigEnvSet.GetInt("UserQueue.EquStrengMaxNum");
            UserItemPackage package;
            if (!string.IsNullOrEmpty(_toUserId))
            {
                package = UserItemPackage.Get(_toUserId);
            }
            else
            {
                package = UserItemPackage.Get(ContextUser.UserID);
            }

             _userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(_userItemId)) ?? new UserItemInfo();

            _itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(_userItem.ItemID);
            if (_itemInfo == null)
            {
                SaveDebuLog(string.Format("玩家{0}物品ID={1}[{2}]不存在!", Uid, _userItem.UserItemID, _userItem.ItemID));
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1107_UserItemNotEnough;
                return false;
            }

            if (_userItem.ItemLv > _itemInfo.DemandLv)
            {
                _demandLv = _userItem.ItemLv;
            }
            else
            {
                _demandLv = _itemInfo.DemandLv;
            }

            _strongMoney = new UserItemHelper(_userItem, 1).StrongMoney;
            _tenTimesStrongMoney = new UserItemHelper(_userItem, 10).StrongMoney;  // 强化 10 次用钱
            _itemEquArray = new ConfigCacheSet<ItemEquAttrInfo>().FindAll(m => m.ItemID == _userItem.ItemID);

            if (_userItem.ItemLv >= ContextUser.UserLv || _strongMoney > ContextUser.GameCoin)
            {
                _isStrong = 1;
            }
            List<UserQueue> userQueueArray = new GameDataCacheSet<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.EquipmentStrong);
            userQueueArray.QuickSort((x, y) =>
            {
                if (x == null && y == null) return 0;
                if (x != null && y == null) return 1;
                if (x == null) return -1;
                return y.Timing.CompareTo(x.Timing);
            });
            if (userQueueArray.Count == ContextUser.QueueNum)
            {
                DateTime minDateTime = DateTime.MinValue;
                foreach (UserQueue queue in userQueueArray)
                {
                    if (queue.DoRefresh() > 0 && !queue.IsSuspend && minDateTime < queue.Timing && queue.StrengNum >= maxEquNum)
                    {
                        _coldTime = queue.DoRefresh();
                    }
                }
            }
            UserHelper.SparePartPropertyList(Uid, _userItemId); //灵件属性
            return true;
        }
示例#47
0
 public void SaveItem(UserItemInfo item)
 {
     if (item == null || string.IsNullOrEmpty(item.UserItemID)) return;
     var tempItem = ItemPackage.Find(m => !string.IsNullOrEmpty(item.UserItemID) && string.Equals(m.UserItemID, item.UserItemID));
     if (tempItem == null)
     {
         ItemPackage.Add(item);
     }
     else
     {
         tempItem.UpdateNotify(obj =>
         {
             tempItem.UserItemID = item.UserItemID;
             tempItem.GeneralID = item.GeneralID;
             tempItem.IsRemove = item.IsRemove;
             tempItem.ItemID = item.ItemID;
             tempItem.ItemLv = item.ItemLv;
             tempItem.ItemStatus = item.ItemStatus;
             tempItem.ItemType = item.ItemType;
             tempItem.Num = item.Num;
             tempItem.SoldDate = item.SoldDate;
             return true;
         });
     }
 }
示例#48
0
        /// <summary>
        /// 暑期第四弹 --多人副本战友礼包奖励!
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public static string GianComradesPackReward(GameUser user, UserItemInfo item)
        {
            string content = string.Empty;
            ItemBaseInfo itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(item.ItemID);
            if (itemInfo != null)
            {
                List<PrizeInfo> prizeInfosArray = itemInfo.ItemPack.ToList();
                List<PrizeInfo> prizeInfosList = new List<PrizeInfo>();
                if (user.UserLv >= 40)
                {
                    prizeInfosList = new List<PrizeInfo>(prizeInfosArray).FindAll(m => m.UserLv == 40);
                }
                else
                {
                    prizeInfosList = new List<PrizeInfo>(prizeInfosArray).FindAll(m => m.UserLv == 0);
                }

                double[] probability = new double[prizeInfosList.Count];
                for (int i = 0; i < prizeInfosList.Count; i++)
                {
                    probability[i] = (double)prizeInfosList[i].Probability;
                }
                int index2 = RandomUtils.GetHitIndex(probability);
                PrizeInfo prizeInfo = prizeInfosList[index2];
                if (prizeInfo.Type == RewardType.Item)
                {
                    content = PrizeItemList(user.UserID, prizeInfo.ItemList, prizeInfo.CrystalType.ToEnum<CrystalQualityType>());
                }
                else
                {
                    content = ActivitiesAward.GameUserRewardNocite(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num, prizeInfo.CrystalType);
                }
                UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);
            }
            return content;
        }
示例#49
0
        /// <summary>
        /// 双倍材料,月饼道具使用
        /// </summary>
        /// <param name="userItem"></param>
        /// <param name="itemInfo"></param>
        /// <returns></returns>
        private bool DoCaiLiaoYueBingItem(UserItemInfo userItem, ItemBaseInfo itemInfo)
        {
            UserProps props = new GameDataCacheSet<UserProps>().FindKey(ContextUser.UserID, userItem.ItemID);
            if (props != null)
            {
                if (userItem.ItemID == 5200 && props.DoRefresh() > 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1608_CombatPowerNotEnough;
                    return false;
                }

                props.SurplusNum += itemInfo.EffectNum;
                props.ChangeTime = DateTime.Now;
                //props.Update();

            }
            else
            {
                UserProps uProps = new UserProps(ContextUser.UserID, itemInfo.ItemID)
                                       {
                                           SurplusNum = itemInfo.EffectNum,
                                           ChangeTime = DateTime.Now
                                       };
                new GameDataCacheSet<UserProps>().Add(uProps, GameEnvironment.CacheUserPeriod);
            }
            return true;
        }
示例#50
0
        public void RemoveItem(UserItemInfo userItem)
        {
            if (userItem != null)
            {
                userItem.IsRemove = true;
                ItemPackage.Remove(userItem);

                TraceLog.Write(string.Format("UserId:{0} remove item:'{1}' {2}*{3},state:{4},lv:{5}",
                    UserID,
                    userItem.UserItemID,
                    userItem.ItemID,
                    userItem.Num,
                    userItem.ItemStatus,
                    userItem.ItemLv));
            }
        }
示例#51
0
        /// <summary>
        /// ����ճ�������Ʒ����
        /// </summary>
        /// <param name="userLv"></param>
        /// <returns></returns>
        public UserItemInfo GetDailyItem(short userLv)
        {
            UserItemInfo userItem = null;
            int index = (int)TaskStar - 1;
            var cacheSet = new ConfigCacheSet<DailyTaskInfo>();
            DailyTaskInfo dtaskInfo = cacheSet.FindKey(TaskID);
            string[] NumRank = dtaskInfo.QishiNumRank.ToNotNullString().Split(new char[] { ',' });
            int num = NumRank.Length > index && index >= 0 ? NumRank[index].ToInt() : 0;
            if (num <= 0)
            {
                return userItem;
            }

            string[] QishiRank = dtaskInfo.QishiRank.ToNotNullString().Split(new char[] { ',' });
            string[] UserLvRank = dtaskInfo.UserLvRank.ToNotNullString().Split(new char[] { ',' });
            if (QishiRank.Length > 0 && QishiRank.Length == UserLvRank.Length)
            {
                int itemIndex = GetItemIndex(UserLvRank, userLv);
                int itemID = QishiRank.Length > itemIndex ? QishiRank[itemIndex].ToInt() : 0;
                ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(itemID);
                if (itemInfo != null)
                {
                    userItem = new UserItemInfo();
                    userItem.ItemID = itemInfo.ItemID;
                    userItem.Num = num;
                }
            }
            return userItem;
        }
示例#52
0
 /// <summary>
 /// 随机获得金币、精力奖励
 /// </summary>
 /// <param name="item"></param>
 /// <param name="user"></param>
 public static void GetProbabilityReward(GameUser user, UserItemInfo item)
 {
     ItemBaseInfo itemInfo = new ConfigCacheSet<ItemBaseInfo>().FindKey(item.ItemID);
     if (itemInfo != null)
     {
         var prizeInfosArray = itemInfo.ItemPack;
         double[] probability = new double[prizeInfosArray.Count];
         for (int i = 0; i < prizeInfosArray.Count; i++)
         {
             probability[i] = (double)prizeInfosArray[i].Probability;
         }
         int index2 = RandomUtils.GetHitIndex(probability);
         PrizeInfo prizeInfo = prizeInfosArray[index2];
         ActivitiesAward.GameUserReward(user.UserID, prizeInfo.Type, prizeInfo.ItemID, prizeInfo.Num);
         UserItemHelper.UseUserItem(user.UserID, item.ItemID, 1);
     }
 }
示例#53
0
 /// <summary>
 /// 灵件配置
 /// </summary>
 /// <param name="general"></param>
 /// <param name="item"></param>
 /// <returns></returns>
 private static void SetSparePart(CombatGeneral general, UserItemInfo item)
 {
     var user = new GameDataCacheSet<GameUser>().FindKey(general.UserID);
     if (user != null)
     {
         var sparepartList = user.SparePartList.FindAll(m => m.UserItemID.Equals(item.UserItemID));
         foreach (var sparepart in sparepartList)
         {
             foreach (var property in sparepart.Propertys)
             {
                 switch (property.AbilityType)
                 {
                     case AbilityType.WuLiGongJi:
                         general.ExtraAttack.WuliNum += property.Num.ToInt();
                         break;
                     case AbilityType.HunJiGongJi:
                         general.ExtraAttack.HunjiNum += property.Num.ToInt();
                         break;
                     case AbilityType.MoFaGongJi:
                         general.ExtraAttack.MofaNum += property.Num.ToInt();
                         break;
                     case AbilityType.WuLiFangYu:
                         general.ExtraDefense.WuliNum += property.Num.ToInt();
                         break;
                     case AbilityType.HunJiFangYu:
                         general.ExtraDefense.HunjiNum += property.Num.ToInt();
                         break;
                     case AbilityType.MoFaFangYu:
                         general.ExtraDefense.MofaNum += property.Num.ToInt();
                         break;
                     case AbilityType.MingZhong:
                         general.HitNum = MathUtils.Addition(general.HitNum, property.Num.ToDecimal(), decimal.MaxValue);
                         break;
                     case AbilityType.ShanBi:
                         general.ShanbiNum = MathUtils.Addition(general.ShanbiNum, property.Num.ToDecimal(), decimal.MaxValue);
                         break;
                     case AbilityType.RenXing:
                         general.RenxingNum = MathUtils.Addition(general.RenxingNum, property.Num.ToDecimal(), decimal.MaxValue);
                         break;
                     case AbilityType.BaoJi:
                         general.BaojiNum = MathUtils.Addition(general.BaojiNum, property.Num.ToDecimal(), decimal.MaxValue);
                         break;
                     case AbilityType.PoJi:
                         general.PojiNum = MathUtils.Addition(general.PojiNum, property.Num.ToDecimal(), decimal.MaxValue);
                         break;
                     case AbilityType.GeDang:
                         general.GedangNum = MathUtils.Addition(general.GedangNum, property.Num.ToDecimal(), decimal.MaxValue);
                         break;
                     default:
                         break;
                 }
             }
         }
     }
 }
示例#54
0
        private static int _strongCount = 1;  // 强化次数

        public UserItemHelper(UserItemInfo item)
        {
            _item = item;
            _itemInfo = new ShareCacheStruct<ItemBaseInfo>().FindKey(_item.ItemID) ?? new ItemBaseInfo();
        }