/// <summary> /// Builds the bot. /// </summary> private void BuildBot(CrossladderInfoEntity ladderInfo) { var managerFightList = ladderInfo.FightList; var competitorCount = managerFightList.Count; try { var botCount = 4 - competitorCount % 4; if (botCount > 0 && botCount < 4) { managerFightList.Sort(new CompareArenaManager()); var minScore = managerFightList[0].Score; var maxScore = managerFightList[competitorCount - 1].Score; var botList = CrossladderManagerMgr.GetBot(botCount, minScore, maxScore); if (botList != null) { foreach (var list in botList) { list.Name = _botName; list.ShowName = _botName; list.IsBot = true; managerFightList.Add(list); } } } } catch (Exception ex) { SystemlogMgr.Error("CrossLadderThread-BuildBot", ex.Message, ex.StackTrace); } }
MessageCode SaveExchange(CrossladderManagerEntity ladderManager, ItemPackageFrame package, CrossladderExchangerecordEntity ladderExchangerecord) { if (ladderManager == null || package == null || ladderExchangerecord == null) { return(MessageCode.NbUpdateFail); } try { if (!CrossladderManagerMgr.Update(ladderManager)) { return(MessageCode.NbUpdateFail); } if (!package.Save()) { return(MessageCode.NbUpdateFail); } if (!CrossladderExchangerecordMgr.Insert(ladderExchangerecord)) { return(MessageCode.NbUpdateFail); } return(MessageCode.Success); } catch (Exception ex) { SystemlogMgr.Error("CrossLadder-SaveExchange", ex); return(MessageCode.Exception); } }
public CrossladderManagerResponse GetLadderManager(string siteId, Guid managerId) { try { var ladderManager = CrossladderManagerMgr.GetById(managerId); if (ladderManager == null) { if (!ManagerUtil.CheckFunction(siteId, managerId, EnumOpenFunction.CrossLadder)) { return(ResponseHelper.Create <CrossladderManagerResponse>(MessageCode.NbFunctionNotOpen)); } var nbManager = NbManagerMgr.GetById(managerId, siteId); if (nbManager == null) { return(ResponseHelper.Create <CrossladderManagerResponse>(MessageCode.MissManager)); } int domainId = 0; int honor = 0; CrossladderManagerMgr.GetOldHonor(managerId, ref honor); CrossSiteCache.Instance().TryGetDomainId(siteId, out domainId); ladderManager = new CrossladderManagerEntity(); ladderManager.DomainId = domainId; ladderManager.SiteId = siteId; ladderManager.SiteName = CacheFactory.FunctionAppCache.GetCrossZoneName(siteId); ladderManager.ManagerId = managerId; ladderManager.Name = nbManager.Name; ladderManager.SiteId = siteId; ladderManager.Logo = nbManager.Logo; ladderManager.Score = _ladderRegisterScore; ladderManager.LastExchageTime = ShareUtil.BaseTime; ladderManager.RowTime = DateTime.Now; ladderManager.UpdateTime = DateTime.Now; ladderManager.Honor = honor; ladderManager.MaxScore = _ladderRegisterScore; ladderManager.DailyMaxScore = _ladderRegisterScore; ladderManager.Stamina = 50; CrossladderManagerMgr.Insert(ladderManager); } if (ladderManager.Stamina < 0) { ladderManager.Stamina = 0; } if (ladderManager.StaminaBuy < 0) { ladderManager.StaminaBuy = 0; } var response = ResponseHelper.CreateSuccess <CrossladderManagerResponse>(); response.Data = ladderManager; return(response); } catch (Exception ex) { SystemlogMgr.Error("GetCrossLadderManager", ex); return(ResponseHelper.Create <CrossladderManagerResponse>(MessageCode.Exception)); } }
/// <summary> /// 报名天梯赛. /// </summary> /// <returns></returns> public MessageCodeResponse Attend(string siteId, Guid managerId) { if (!IsManagerBusy(managerId)) { if (!CompetitorDic.ContainsKey(managerId)) { var response = CrossLadderCore.Instance.GetManagerInfo(siteId, managerId); if (response.Code != ShareUtil.SuccessCode) { return(ResponseHelper.Create <MessageCodeResponse>(response.Code)); } if (response.Data == null) { return(ResponseHelper.InvalidParameter <MessageCodeResponse>()); } var ladderManager = response.Data; //if (ladderManager.Stamina <= 0) //{ // return ResponseHelper.Create<MessageCodeResponse>(MessageCode.LadderStaminaShortage); //} var kpi = ManagerUtil.GetKpi(managerId, siteId); bool needUpdate = false; if (kpi != ladderManager.Kpi) { ladderManager.Kpi = kpi; needUpdate = true; } if (ladderManager.DomainId != _domainId) { ladderManager.DomainId = _domainId; needUpdate = true; } if (needUpdate) { CrossladderManagerMgr.Update(ladderManager); } response.Data.ShowName = ShareUtil.GetCrossManagerNameByZoneId(siteId, response.Data.Name); //锁住 lock (_competitorLock) { if (_playerNum == 0) { _startTime = DateTime.Now; } CompetitorDic.Add(managerId, response.Data); _playerNum++; } } return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.Success)); } else { return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.LadderBusy)); } }
public void GetLadderInfoTest() { try { var list = CrossladderManagerMgr.GetDailyHonor(); if (list != null) { foreach (var entity in list) { LadderManagerMgr.AddDailyHonor(entity.ManagerId, entity.NewlyHonor, entity.NewlyLadderCoin, null, entity.SiteId); } } } catch (Exception ex) { SystemlogMgr.Error("SendDailyHonor", ex); } }
protected void btnCrossLadderCoin_Click(object sender, EventArgs e) { try { ShowMessage("开始补发天梯币..."); var list = CrossladderManagerMgr.GetDailyHonor(); if (list != null) { foreach (var entity in list) { LadderManagerMgr.AddDailyHonor(entity.ManagerId, entity.NewlyHonor, entity.NewlyLadderCoin, null, entity.SiteId); } } ShowMessage("补发成功..."); } catch (Exception ex) { SystemlogMgr.Error("SendDailyHonor", ex); } }
public MessageCodeResponse BuyStamina(string siteId, Guid managerId) { var response1 = GetLadderManager(siteId, managerId); if (response1 == null) { return(ResponseHelper.InvalidParameter <MessageCodeResponse>()); } if (response1.Code != ShareUtil.SuccessCode) { return(ResponseHelper.Create <MessageCodeResponse>(response1.Code)); } var mallDirect = new CrossMallDirectFrame(siteId, managerId, EnumConsumeSourceType.CrossLadderStamina); var checkCode = mallDirect.Check(); if (checkCode != MessageCode.Success) { return(ResponseHelper.Create <MessageCodeResponse>(checkCode)); } var ladderManager = response1.Data; ladderManager.StaminaBuy = ladderManager.StaminaBuy + 1; ladderManager.Stamina = ladderManager.Stamina + 1; if (!CrossladderManagerMgr.Update(ladderManager)) { return(ResponseHelper.Create <MessageCodeResponse>(MessageCode.NbUpdateFail)); } checkCode = mallDirect.Save(Guid.NewGuid().ToString()); if (checkCode != MessageCode.Success) { SystemlogMgr.Error("CrossLadder-BuyStamina fail", string.Format("ManagerId:{0}", managerId)); } return(ResponseHelper.CreateSuccess <MessageCodeResponse>()); }