public CrosscrowdMatchResponse GetMatch(Guid managerId, Guid matchId) { var match = MemcachedFactory.CrowdMatchClient.Get <CrosscrowdMatchEntity>(matchId); if (match == null) { match = CrosscrowdMatchMgr.GetById(matchId); if (match == null) { return(ResponseHelper.InvalidParameter <CrosscrowdMatchResponse>()); } } var pop = MemcachedFactory.CrowdMessageClient.Get <string>(managerId); if (pop == null) { pop = ""; } //LogHelper.Insert(pop,LogType.Info); match.Pop = pop; var response = ResponseHelper.CreateSuccess <CrosscrowdMatchResponse>(); response.Data = match; return(response); }
void SavePrize(CrosscrowdMatchEntity crowdMatch) { try { crowdMatch.HomePrizeScore = CacheFactory.CrowdCache.GetCrowdScore(crowdMatch.HomeScore); var costMorale = CacheFactory.CrowdCache.GetCostMorela(crowdMatch.AwayScore); var winType = ShareUtil.CalWinType(crowdMatch.HomeScore, crowdMatch.AwayScore); var matchPrize = CacheFactory.CrowdCache.GetMatchPrize(winType); var homeManager = _managerDic[crowdMatch.HomeId]; homeManager.Morale -= costMorale; if (homeManager.Morale < 0) { homeManager.Morale = 0; } int homecoin = matchPrize.Coin; int homehonor = matchPrize.Honor; OnlineCore.Instance.CalIndulgePrize(crowdMatch.HomeId, ref homecoin, ref homehonor, crowdMatch.HomeSiteId); crowdMatch.HomeMorale = homeManager.Morale; crowdMatch.HomePrizeCoin = homecoin; crowdMatch.HomePrizeHonor = homehonor; crowdMatch.HomeCostMorale = costMorale; crowdMatch.AwayPrizeScore = CacheFactory.CrowdCache.GetCrowdScore(crowdMatch.AwayScore); costMorale = CacheFactory.CrowdCache.GetCostMorela(crowdMatch.HomeScore); winType = ShareUtil.CalWinType(crowdMatch.AwayScore, crowdMatch.HomeScore); matchPrize = CacheFactory.CrowdCache.GetMatchPrize(winType); var awayManager = _managerDic[crowdMatch.AwayId]; awayManager.Morale -= costMorale; if (awayManager.Morale < 0) { awayManager.Morale = 0; } int awaycoin = matchPrize.Coin; int awayhonor = matchPrize.Honor; OnlineCore.Instance.CalIndulgePrize(crowdMatch.AwayId, ref awaycoin, ref awayhonor, crowdMatch.AwaySiteId); crowdMatch.AwayMorale = awayManager.Morale; crowdMatch.AwayPrizeCoin = awaycoin; crowdMatch.AwayPrizeHonor = awayhonor; crowdMatch.AwayCostMorale = costMorale; DateTime resurrectionTime = DateTime.Now.AddSeconds(_crowdResurrectionCd); DateTime nextMatchTime = DateTime.Now.AddSeconds(_crowdCd); CrosscrowdMatchMgr.Save(crowdMatch, resurrectionTime, nextMatchTime); SavePrizeAfter(crowdMatch, homeManager, awayManager); } catch (Exception ex) { SystemlogMgr.Error("CrossCrowdProcess-SavePrize", ex); } }
static void doSendKillPrize(CrosscrowdInfoEntity crowd, CrosscrowdSendKillPrizeEntity entity, int maxPoint, int maxLegendCount) { try { if (entity.Status != 0) { return; } if (entity.HomeMorale <= 0) { doSendKillPrize(crowd, entity.Idx, entity.AwayId, entity.HomeName, entity.AwaySiteId, maxPoint, maxLegendCount); } if (entity.AwayMorale <= 0) { doSendKillPrize(crowd, entity.Idx, entity.HomeId, entity.AwayName, entity.HomeSiteId, maxPoint, maxLegendCount); } entity.Status = 1; CrosscrowdMatchMgr.SaveKillPrizeStatus(entity.Idx, entity.Status); } catch (Exception ex) { SystemlogMgr.Error("CrossCrowd-doSendKillPrize", ex); } }