public override bool TakeAction() { UserDailyRestrain dailyRestrain = new GameDataCacheSet <UserDailyRestrain>().FindKey(ContextUser.UserID); if (RankingHelper.IsGainSportsReward(ContextUser.UserID) && dailyRestrain != null && dailyRestrain.UserExtend != null) { var envSet = ServerEnvSet.Get(ServerEnvKey.JingJiChangReward, ""); SportsRewardInfo sportsInfo = new ConfigCacheSet <SportsRewardInfo>().FindKey(dailyRestrain.UserExtend.UserRankID); { if (envSet != null && sportsInfo != null) { if (envSet.ToDateTime().Date > dailyRestrain.Funtion11.Date && dailyRestrain.UserExtend.UserRankID > 0) { dailyRestrain.Funtion11 = DateTime.Now; dailyRestrain.UserExtend.UserRankID = 0; //dailyRestrain.Update(); ContextUser.ObtainNum = MathUtils.Addition(ContextUser.ObtainNum, sportsInfo.RewardObtian, int.MaxValue); ContextUser.GameCoin = MathUtils.Addition(ContextUser.GameCoin, sportsInfo.RewardGoin, int.MaxValue); //ContextUser.Update(); UserHelper.Contribution(ContextUser.UserID, sportsInfo.RewardObtian); ErrorInfo = string.Format(LanguageManager.GetLang().St5106_JingJiChangRankReward, sportsInfo.RewardObtian, sportsInfo.RewardGoin); } } } } return(true); }
public override bool TakeAction() { UserFunction userFunction = new PersonalCacheStruct <UserFunction>().FindKey(ContextUser.UserID, FunctionEnum.Xiulian); if (userFunction != null) { UserHelper.XiuLianGianExperience(ContextUser.UserID); //修炼完成后更改修炼状态 int inerDate = (int)(DateTime.Now - ContextUser.OnlineDate).TotalSeconds; if (inerDate > 300 && ContextUser.UserStatus != UserStatus.XiuLian) { int totalTime = 0; GeneralPracticeInfo generalpractice = new ShareCacheStruct <GeneralPracticeInfo>().FindKey(ContextUser.UserLv); if (VipHelper.GetVipOpenFun(ContextUser.VipLv, ExpandType.XiuLianYanChangErShiSiXiaoShi)) { totalTime = ConfigEnvSet.GetInt("User.XiuLianDate"); } else { if (generalpractice != null) { totalTime = (generalpractice.MaxHour * 60 * 60); } } if (inerDate > 300 && ContextUser.UserStatus != UserStatus.XiuLian && ContextUser.UserStatus != UserStatus.FightCombat) { ContextUser.UserStatus = UserStatus.XiuLian; //ContextUser.Update(); List <UserQueue> userQueueArray = new PersonalCacheStruct <UserQueue>().FindAll(ContextUser.UserID, m => m.QueueType == QueueType.XiuLian); if (userQueueArray.Count > 0) { UserQueue userQueue = userQueueArray[0]; userQueue.TotalColdTime = totalTime; userQueue.ColdTime = totalTime; userQueue.Timing = DateTime.Now; userQueue.IsSuspend = false; userQueue.StrengNum = 0; //userQueue.Update(); } _statusList.Add(MessageState.XiuLian); } } } UserDailyRestrain dailyRestrain = new PersonalCacheStruct <UserDailyRestrain>().FindKey(ContextUser.UserID); if (new TjxChatService(ContextUser).HasMessage(ContextUser.ChatVesion)) { _statusList.Add(MessageState.Chat); } if (NoviceHelper.CheckOnlinePrize(Uid)) { _statusList.Add(MessageState.TakeOnline); } if (NoviceHelper.CheckLoginPrize(Uid)) { _statusList.Add(MessageState.TakeLogin); } if (new TjxBroadcastService(ContextUser).HasMessage()) { _statusList.Add(MessageState.Broadcast); } if (NoviceHelper.CheckDailyExpPrize(Uid)) { _statusList.Add(MessageState.TakeDailyExp); } if (RankingHelper.IsGainSportsReward(ContextUser.UserID)) { _statusList.Add(MessageState.JingJiChangReward); } UserFunction countryFunction = new PersonalCacheStruct <UserFunction>().FindKey(ContextUser.UserID, FunctionEnum.Country); if (countryFunction != null && dailyRestrain != null && dailyRestrain.Funtion8 < VipHelper.GetVipUseNum(ContextUser.VipLv, RestrainType.LingQuFengLu)) { _statusList.Add(MessageState.LingQuFengLv); } if (NoviceHelper.DailyEnergy(ContextUser.UserID)) { _statusList.Add(MessageState.SurplusEnergy); } if (new GameActiveCenter(Uid).HasActive()) { _statusList.Add(MessageState.Huodong); } if (NoviceHelper.IsAugustSecondWeekEnergy(ContextUser)) { _statusList.Add(MessageState.FestivalEnergy); } if (NoviceHelper.IsWingFestivalInfo(ContextUser.UserID)) { _statusList.Add(MessageState.Wing); } if (GuildFightBroadcast(ContextUser.UserID, stakecount, ContextUser.MercenariesID)) { _statusList.Add(MessageState.GuildFight); } else { stakecount = 0; } var userPrizeList = new ShareCacheStruct <UserTakePrize>().FindAll(m => !m.IsTasked && m.UserID == Uid.ToInt()); if (userPrizeList.Count > 0) { _statusList.Add(MessageState.TaskPrize); } return(true); }
public ShipsRankingControllerTests() { mockRankingService = new Mock <IRankingService>(); rankingHelper = new RankingHelper(); }
protected override bool DoSuccess(int userId, out IUser user) { user = null; //原因:重登录时,数据会回档问题 var cacheSet = new PersonalCacheStruct <GameUser>(); GameUser userInfo = cacheSet.FindKey(userId.ToString()); if (userInfo != null) { //原因:还在加载中时,返回 if (userInfo.IsRefreshing) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().ServerLoading; return(false); } } if (userInfo == null || string.IsNullOrEmpty(userInfo.SessionID) || !userInfo.IsOnline) { UserCacheGlobal.Load(userId.ToString()); //重新刷缓存 userInfo = cacheSet.FindKey(userId.ToString()); } if (userInfo != null) { if (userInfo.UserStatus == UserStatus.FengJin) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1004_IDDisable; return(false); } user = new SessionUser(userInfo); //todo //NoticeHelper.RankNotice(userInfo); //公告 CombatHelper.LoadProperty(userInfo); //todo //NoviceHelper.OldFriendPack(Uid, userInfo.LoginTime); //好友礼包 UserLoginLog userLoginLog = new UserLoginLog(); userLoginLog.UserId = userInfo.UserID; userLoginLog.SessionID = Sid; userLoginLog.MobileType = MobileType; userLoginLog.ScreenX = ScreenX; userLoginLog.ScreenY = ScreenY; userLoginLog.RetailId = RetailID; userLoginLog.AddTime = DateTime.Now; userLoginLog.State = LoginStatus.Logined; userLoginLog.DeviceID = DeviceID; userLoginLog.Ip = this.GetRealIP(); userLoginLog.Pid = userInfo.Pid; userLoginLog.UserLv = userInfo.UserLv; //原因:报表统计 userLoginLog.PlotID = userInfo.PlotProgress; PlotInfo plotInfo = new ShareCacheStruct <PlotInfo>().FindKey(userInfo.PlotProgress); if (plotInfo != null) { userLoginLog.PlotName = plotInfo.PlotName; } var sender = DataSyncManager.GetDataSender(); sender.Send(userLoginLog); //int vipLv; //var vipLvArray = new ShareCacheStruct<VipLvInfo>().FindAll(u => u.PayGold <= userInfo.PayGold); //vipLv = vipLvArray.Count > 0 ? vipLvArray[vipLvArray.Count - 1].VipLv : (short)0; userInfo.LoginTime = DateTime.Now; userInfo.SessionID = Sid; userInfo.IsOnline = true; //userInfo.VipLv = vipLv; userInfo.GameId = GameType; userInfo.ServerId = ServerID; userInfo.ChatVesion = 0; userInfo.ChatDate = DateTime.MinValue; userInfo.BroadcastVesion = 0; if (userInfo.DailyLoginTime == MathUtils.SqlMinDate || userInfo.DailyLoginTime.Date != DateTime.Now.Date) { userInfo.DailyLoginTime = DateTime.Now; } //todo RankingHelper.DailySportsRankPrize(userInfo); } else { user = new SessionUser() { UserId = userId, PassportId = PassportId }; ErrorCode = 1005; ErrorInfo = LanguageManager.GetLang().St1005_RoleCheck; } return(true); }
public override bool TakeAction() { UserStatus status = ContextUser.UserStatus; if (status == UserStatus.FengJin) { return(false); } UserGeneral general = UserGeneral.GetMainGeneral(ContextUser.UserID); Ranking <UserRank> ranking = RankingFactory.Get <UserRank>(CombatRanking.RankingKey); UserRank rankInfo; if (ranking.TryGetRankNo(m => m.UserID == ContextUser.UserID, out rankID)) { rankInfo = ranking.Find(s => s.UserID == ContextUser.UserID); //ContextUser.RankID = rankID; } else { rankInfo = new UserRank() { UserID = ContextUser.UserID, HeadID = general.HeadID, GameCoin = ContextUser.GameCoin, NickName = ContextUser.NickName, ObtainNum = ContextUser.ObtainNum, UserLv = ContextUser.UserLv, RankId = int.MaxValue, RankDate = DateTime.Now, SportsIntegral = 0 }; ranking.TryAppend(rankInfo); } sportsName = UserHelper.SportTitleName(ContextUser.ObtainNum); sportNum = GetChallGeNum(ContextUser.UserID); sportsIntegral = ContextUser.SportsIntegral.ToInt(); sportsReward = new ShareCacheStruct <SportsRewardInfo>().FindKey(rankInfo.RankId); receiveDate = (int)(RankingHelper.GetNextReceiveDate() - DateTime.Now).TotalSeconds; CombatRanking combatrank = (CombatRanking)ranking; _userRankArray = combatrank.GetRanking(ContextUser); _userRankArray.Add(rankInfo); _userRankArray.QuickSort((x, y) => { if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } return(x.RankId.CompareTo(y.RankId)); }); _userCombatArray = ContextUser.GetSportsCombat(); _userCombatArray.QuickSort((x, y) => { if (x == null && y == null) { return(0); } if (x != null && y == null) { return(1); } if (x == null) { return(-1); } return(y.CombatDate.CompareTo(x.CombatDate)); }); if (rankInfo != null && rankID > 0) { victoryNum = rankInfo.VictoryNum; } //NoviceHelper.SportVictoryNum(ContextUser, 2001, victoryNum); //竞技场奖励 if (victoryNum >= 7) { ActivitiesAward.HolidayFestival(ContextUser.UserID); } rankID = ContextUser.RankID; int count = 10; int pagecount = 0; userRankArray = ranking.GetRange(1, count, out pagecount); return(true); }
public KalamburyRankingControllerTests() { mockRankingService = new Mock <IRankingService>(); rankingHelper = new RankingHelper(); }
public override bool TakeAction() { int sportsIndex; if (int.TryParse(userSportsID, out sportsIndex)) { var tempList = ContextUser.GetSportsCombat(); if (tempList.Count > 0 && sportsIndex < tempList.Count) { sportsIndex = MathUtils.Addition(sportsIndex, 1); _uSportsCombat = tempList[tempList.Count - sportsIndex] ?? new SportsCombat(); _combatProcessList = _uSportsCombat.CombatProcess ?? new CombatProcessContainer(); _userTalPriority = CombatHelper.TotalPriorityNum(ContextUser.UserID, 0); if (_combatProcessList.DefenseList.Count > 0) { _npcTalPriority = CombatHelper.TotalPriorityNum(_combatProcessList.DefenseList[0].UserID, 0); } } } else if (!string.IsNullOrEmpty(toUserID)) { UserHelper.ChechDailyRestrain(ContextUser.UserID); if (ContextUser.UserID == toUserID) { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } if (GetChallGeNum(ContextUser.UserID) <= 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St5107_ChallGeNumFull; return(false); } toGameUser = UserCacheGlobal.LoadOffline(toUserID); if (ContextUser.UseMagicID == 0 || toGameUser == null || toGameUser.UseMagicID == 0) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St4004_NoUseMagic; return(false); } RankingHelper.SportSRewardGain(toUserID, toGameUser.RankID); //被挑战者的竞技排名 //todo 竞技场冷却时间清除 //var userQueueCache = new GameDataCacheSet<UserQueue>(); //var queueArray = userQueueCache.FindAll(Uid, m => m.QueueType == QueueType.JingJiTiaoZhan); //if (queueArray.Count > 0 && queueArray[0].DoRefresh() > 0) //{ // ErrorCode = LanguageManager.GetLang().ErrorCode; // ErrorInfo = LanguageManager.GetLang().St5107_Colding; // return false; //} //if (queueArray.Count > 0) //{ // var userQueue = queueArray[0]; // userQueue.ColdTime = codeTime; // userQueue.TotalColdTime = codeTime; // userQueue.Timing = DateTime.Now; //} //else //{ // UserQueue queue = new UserQueue() // { // QueueID = Guid.NewGuid().ToString(), // QueueType = QueueType.JingJiTiaoZhan, // QueueName = QueueType.JingJiTiaoZhan.ToString(), // UserID = ContextUser.UserID, // ColdTime = codeTime, // IsSuspend = false, // TotalColdTime = codeTime, // Timing = DateTime.Now // }; // userQueueCache.Add(queue); // //queue.Append(); //} //次数限制修改 int sportNum = 0; UserDailyRestrain dailyRestrain = new GameDataCacheSet <UserDailyRestrain>().FindKey(ContextUser.UserID); if (dailyRestrain != null) { sportNum = MathUtils.Addition(dailyRestrain.Funtion9, 1, int.MaxValue); dailyRestrain.Funtion9 = sportNum; //dailyRestrain.Update(); } else { sportNum = 1; } TriggerSportCombat(ContextUser, toGameUser, sportNum, ref sportsPrizeStr, userMail); var tempList = ContextUser.GetSportsCombat(); if (tempList.Count > 0) { _uSportsCombat = tempList[tempList.Count - 1] ?? new SportsCombat(); _combatProcessList = _uSportsCombat.CombatProcess ?? new CombatProcessContainer(); } //日常任务-竞技 TaskHelper.TriggerDailyTask(Uid, 4006); _userTalPriority = CombatHelper.TotalPriorityNum(ContextUser.UserID, 0); _npcTalPriority = CombatHelper.TotalPriorityNum(toUserID, 0); } else { ErrorCode = LanguageManager.GetLang().ErrorCode; return(false); } userMail.GameCoin = _uSportsCombat.RewardGoin; userMail.Obtion = _uSportsCombat.RewardObtian; var tjxMailService = new TjxMailService(toGameUser); tjxMailService.Send(userMail); _selfAbilityEffectList = UserAbilityHelper.GetSelfAbilityEffectList(ContextUser.UserID, 0); _defSelfAbilityEffectList = UserAbilityHelper.GetSelfAbilityEffectList(toUserID, 1); _selfAbilityEffectList.AddRange(_defSelfAbilityEffectList); return(true); }