private void btntime1_Click(object sender, RoutedEventArgs e) { long time1 = ConvertHelper.ConvertToLong(txttime1.Text, 0); if (time1 <= 0) { ShowMessage("请输入要对比的时间."); return; } txttime3.Text = ShareUtil.GetTime(time1).ToString("yyyy-MM-dd HH:mm:ss:fffff"); }
public PlayerKillOpponentResponse GetOpponents(Guid managerId, string opponentName) { var info = InnerGetInfo(managerId); if (info == null) { return(ResponseHelper.InvalidParameter <PlayerKillOpponentResponse>("managerId")); } var manager = ManagerCore.Instance.GetManager(managerId, true); if (manager == null) { return(ResponseHelper.InvalidParameter <PlayerKillOpponentResponse>("managerId")); } if (manager.Coin < 200) { return(ResponseHelper.Create <PlayerKillOpponentResponse>(MessageCode.LackofCoin)); } var response = ResponseHelper.CreateSuccess <PlayerKillOpponentResponse>(); if (!string.IsNullOrEmpty(opponentName)) { var opponent = PlayerkillInfoMgr.GetOpponentByName(opponentName, 1); if (opponent == null) { return(ResponseHelper.Create <PlayerKillOpponentResponse>(MessageCode.MissManager)); } else if (opponent.Level < _pkMinLevel) { return(ResponseHelper.Create <PlayerKillOpponentResponse>(MessageCode.PlayerKillMinLevel)); } PlayerKillOpponentListEntity opponentList = new PlayerKillOpponentListEntity(); opponentList.Opponents = new List <PlayerKillOpponentEntity>(1); opponent.FormationId = TeammemberCore.Instance.GetSolution(opponent.ManagerId).FormationId; opponentList.Opponents.Add(opponent); response.Data = opponentList; } else { RefreshOpponent(info, manager.Kpi); response.Data = new PlayerKillOpponentListEntity(); response.Data.Opponents = info.Opponents; } if (response.Data != null && response.Data.Opponents.Count > 0) { //扣除金币 ManagerCore.Instance.CostCoin(manager, 200, EnumCoinConsumeSourceType.PkMatchRefresh, ShareUtil.GenerateComb().ToString()); } response.Data.OpponentRefreshTimeTick = ShareUtil.GetTimeTick(info.OpponentRefreshTime); return(response); }
public void SaveProcess(Guid matchId, int matchType, byte[] process, DateTime rowTime) { string dateChar = ""; dateChar = ShareUtil.GetDateFromComb(matchId); //var todayChar = rowTime.ToString("yyyyMMdd"); //if (todayChar != dateChar) // dateChar = todayChar; MatchprocessMgr.Save(matchType, process, rowTime, dateChar, matchId); }
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); } }
public int WbUserInfo(string openId, string openKey, string pf, string platform, int appId, string appKey) { try { OpenApiV3 sdk = new OpenApiV3(openId, openKey, appId, pf, appKey, UAFactory.Instance.OpenUALog); sdk.SetUserIp(UAHelper.GetRealIP()); RstArray result = GetUserInfo(sdk); if (result.Ret != 0) { return(result.Ret); } var json = JsonConvert.DeserializeObject(result.Msg) as JObject; if (json == null) { return(1); } //var nickName = JsonUtil.GetJsonValue(json, "nickname"); //var logo = JsonUtil.GetJsonValue(json, "figureurl"); //var extraData = BuildExtraData(openkey, pf, pfkey); if (pf == "wanba_ts") { var result1 = GetWanBaUserInfo(sdk, "1"); if (result1.Ret != 0) { return(result1.Ret); } var json1 = JsonConvert.DeserializeObject(result1.Msg) as JObject; if (json1 == null) { return(1); } var data = json1["data"]; if (data == null) { return(1); } var is_vip = JsonUtil.GetJsonValue(data[0], "is_vip").ToLower(); //是否开通游戏达人 var vip_level = JsonUtil.GetJsonValue(data[0], "vip_level"); //达人等级 //var score = JsonUtil.GetJsonValue(data[0], "score"); //用户积分 //var expiredtime = JsonUtil.GetJsonValue(data[0], "vip_level"); // 达人过期时间 TxYellowvipMgr.Add(ShareUtil.GetWanBaVipAccount(openId), is_vip == "true", false, false, ConvertHelper.ConvertToInt(vip_level), ""); } return(0); } catch (Exception ex) { SystemlogMgr.Error("腾讯获取用户", ex); return(-1); } }
static Params() { Params.VersionStr = ShareUtil.ConvertVersionToString(80000); Params.TestVersionDesc = ""; Params.TestParamDefault = false; Params.AppSecret = "asfda"; Params.HelpRoot = "https://github.com/renchengxiaofeixia"; Params._isDevoloperClient = null; Params.BottomPannelAnswerCount = 5; Params.RulePatternMatchStrict = true; Params.AppStartTime = DateTime.Now; Params.IsAppClosing = false; }
/// <summary> /// 是否可以购买每周礼包 /// </summary> /// <param name="managerInfo"></param> /// <returns></returns> private bool IsHaveBuyWeekGiftBag(ManagerChargenumberEntity managerInfo) { DateTime buyTime = ShareUtil.GetThisWeekDayDate(DayOfWeek.Monday); if (managerInfo != null && managerInfo.Idx > 0) { if (managerInfo.UpdateTiem >= buyTime) //购买过了 { return(false); } } return(true); }
DicNpcEntity BuildBasicData(int playerLevel, int strengthenLevel, int eqLevel) { //阵型 int formationId = RandomHelper.GetInt32(1, 17); //获取阵型 var formationList = CacheFactory.FormationCache.GetFormationDetail(formationId); DicNpcEntity entity = new DicNpcEntity(); entity.Idx = ShareUtil.GenerateComb(); entity.Type = 2; entity.Name = GetName(); entity.Logo = 1; entity.FormationId = formationId; entity.FormationLevel = playerLevel; entity.TeammemberLevel = playerLevel; entity.PlayerCardStrength = strengthenLevel; entity.CoachId = 0; entity.DoTalent = GetDoTalent(); //主动天赋 entity.ManagerSkill = GetNodoManagerSkill(); //被动天赋和意志 int comb = 0; entity.DoWill = GetDoWill(ref comb);//主动意志 entity.CombLevel = playerLevel; entity.Buff = 100 + playerLevel; entity.TP1 = GetPlayer(1, formationList.Values.ToList()); entity.TP2 = GetPlayer(2, formationList.Values.ToList()); entity.TP3 = GetPlayer(3, formationList.Values.ToList()); entity.TP4 = GetPlayer(4, formationList.Values.ToList()); entity.TP5 = GetPlayer(5, formationList.Values.ToList()); entity.TP6 = GetPlayer(6, formationList.Values.ToList()); entity.TP7 = GetPlayer(7, formationList.Values.ToList()); entity.TE1 = GetEquipment(eqLevel); entity.TE2 = GetEquipment(eqLevel); entity.TE3 = GetEquipment(eqLevel); entity.TE4 = GetEquipment(eqLevel); entity.TE5 = GetEquipment(eqLevel); entity.TE6 = GetEquipment(eqLevel); entity.TE7 = GetEquipment(eqLevel); entity.TS1 = ""; entity.TS2 = ""; entity.TS3 = ""; entity.TS4 = ""; entity.TS5 = ""; entity.TS6 = ""; entity.TS7 = ""; return(entity); }
internal DTOBuffPoolView ReqRawPools(Guid managerId, string siteId = "", bool syncFlag = true) { int managerHash = ShareUtil.GetTableMod(managerId); byte[] verDb = null; var data = CreateBuffView(); var pools = NbManagerbuffpoolMgr.GetByMid(managerId, managerHash, siteId); var teamPools = CheckTeamBuffPools(managerId, siteId); if (null != teamPools) { pools.AddRange(teamPools); } NbManagerbuffpoolMgr.GetVersionByMid(managerId, managerHash, ref verDb, null, siteId); ulong verNo = 0; if (null != verDb) { verNo = BitConverter.ToUInt64(verDb, 0); } DateTime dtNow = DateTime.Now; DateTime dtSync = DATEInfi; List <string> liveSkills = null; foreach (var item in pools) { if (dtNow < item.ExpiryTime && item.ExpiryTime < dtSync) { dtSync = item.ExpiryTime; } if (item.LiveFlag != 2) { continue; } if (null == liveSkills) { liveSkills = new List <string>(); } liveSkills.Add(BuffCache.Instance().CastSkillKey(item.SkillCode, item.SkillLevel)); } data.BuffPools = pools; data.LiveSkills = liveSkills; data.SyncTime = dtSync; data.SyncVersion = verNo; if (syncFlag) { s_memBuffPool.Set(managerId.ToString(), data); } return(data); }
public PlayerkillInfoResponse GetInfo(Guid managerId) { var info = InnerGetInfo(managerId); var manager = ManagerCore.Instance.GetManager(managerId, true); if (manager == null) { return(ResponseHelper.Create <PlayerkillInfoResponse>((int)MessageCode.MissManager)); } if (info.LotteryMatchId != Guid.Empty) { info.HasLottery = true; } if (DateTime.Now > info.OpponentRefreshTime) { RefreshOpponent(info, manager.Kpi); } else if (ShareUtil.CheckBytes(info.OpponentInfo)) { info.Opponents = SerializationHelper.FromByte <List <PlayerKillOpponentEntity> >(info.OpponentInfo); if (info.Opponents == null) { RefreshOpponent(info, manager.Kpi); } else if (!info.Opponents.Exists(d => d.HasWin == false)) { RefreshOpponent(info, manager.Kpi); } } else { RefreshOpponent(info, manager.Kpi); } var response = ResponseHelper.CreateSuccess <PlayerkillInfoResponse>(); info.RemainTimes = 6;//CacheFactory.PlayerKillCache.GetChallengeTimes(manager.Level) - info.RemainTimes + info.BuyTimes; var managerExtra = ManagerCore.Instance.GetManagerExtra(managerId); if (managerExtra != null) { info.ResumeStaminaTimeTick = ShareUtil.GetTimeTick(managerExtra.ResumeStaminaTime.AddSeconds(ManagerCore.Instance.GetResumeStaminaTimeConfig(manager.VipLevel))); } info.OpponentRefreshTimeTick = ShareUtil.GetTimeTick(info.OpponentRefreshTime); info.TotalPoint = CacheFactory.PlayerKillCache.GetTotalPoint(manager.VipLevel); response.Data = info; return(response); }
public void Testw1() { //sign + "|" + billingId + "|" + price + "|" + playerId + "|" + serverId + "|" + goodsId + "|" + orderId + "|" + payTime + "|" + goodsNumber var sign = "f5adb9b5eb1fd40854ea694724186e4c"; var billingId = "42336448584246664645744563464E4D48513D3D"; var playerId = "c9cccd5811332272216ee6e6cdf2bd91"; var price = "1"; var payTime = "1468405081"; var serverId = "1"; var goodsId = "70101"; var goodsNumber = "1"; var orderId = "80302016071318141411292487"; var cryptKey = "3pN9Z25DPp1smngw6g84b"; orderId = "42336448584246664645744664464A4D48773D3D"; var id = "c9cccd5811332272216ee6e6cdf2bd91"; var money = 1; var time = 1468463343; serverId = "1"; goodsId = "70101"; goodsNumber = "1"; var ext = "80302016071414580708529147"; sign = "6377fa0b69a0ef2da66bc1351a4f2d38"; var r = ""; string signParam = ShareUtil.GetMD5("ext=80302016071318141411292487goodsId=70101goodsNumber=1id=c9cccd5811332272216ee6e6cdf2bd91money=1orderId=42336448584246664645744563464E4D48513D3DserverId=1time=14684633433pN9Z25DPp1smngw6g84b"); if (sign == signParam) { r = "09"; } long time1 = ConvertHelper.ConvertToLong(payTime, 0); DateTime sourceTime = ShareUtil.GetTime(time1 * 1000); DateTime nowTime = DateTime.Now; //检查时间是否过期 long _timeout30min = 1800000; if (sourceTime.AddSeconds(_timeout30min) < nowTime || sourceTime.AddSeconds(-_timeout30min) > nowTime) { //记录详细的错误日志 r = "{\"code\":-1,\"msg\":\"响应超时\"}"; } r = "" + MallCore.Instance.BuyPointShipments(playerId, ext, orderId, money, 70101).Code; var rr = r; var rrr = rr; }
/// <summary> /// 天梯赛清除CD /// </summary> /// <param name="managerId"></param> /// <returns></returns> public LadderClearCDResponse LadderClearCD(Guid managerId) { LadderClearCDResponse response = new LadderClearCDResponse(); response.Data = new LadderClearCD(); try { if (_ManagerMatchCD.ContainsKey(managerId)) { if (DateTime.Now >= _ManagerMatchCD[managerId]) { response.Code = (int)MessageCode.LadderCdEnd; } var manager = ManagerCore.Instance.GetManager(managerId); int point = 0; if (manager.VipLevel > 0) { point = LadderVipClearCDPrice; } else { point = LadderNotVipClearCDPrice; } var pointNumber = PayCore.Instance.GetPoint(managerId); if (pointNumber < point) { response.Code = (int)MessageCode.NbPointShortage; return(response); } var messCode = PayCore.Instance.GambleConsume(managerId, point, ShareUtil.GenerateComb(), EnumConsumeSourceType.LadderClearCD); if (messCode == MessageCode.Success) { _ManagerMatchCD[managerId] = DateTime.Now; response.Data.CDTick = ShareUtil.GetTimeTick(DateTime.Now); response.Data.Point = pointNumber - point; } } else { response.Code = (int)MessageCode.LadderCdEnd; } } catch (Exception ex) { SystemlogMgr.Error("天梯赛清除CD", ex); } return(response); }
public CrosscrowdInfoResponse GetCrowdInfo(string siteId) { var crowd = CrossCrowdManager.Instance.GetCurrent(siteId); if (crowd == null) { return(ResponseHelper.Create <CrosscrowdInfoResponse>(MessageCode.CrowdNoData)); } crowd.StartTick = ShareUtil.GetTimeTick(crowd.StartTime); crowd.EndTick = ShareUtil.GetTimeTick(crowd.EndTime); var response = ResponseHelper.CreateSuccess <CrosscrowdInfoResponse>(); response.Data = crowd; return(response); }
public TransactionShadow(Guid managerId, EnumTransactionType transactionType, string zoneId = "") { Transaction = new ShadowTransactionEntity(); Transaction.Idx = ShareUtil.GenerateComb(); Transaction.TransactionType = (int)transactionType; Transaction.ManagerId = managerId; Transaction.RowTime = DateTime.Now; Transaction.TerminalIP = ShareUtil.GetServerIp(); Transaction.AppId = ShareUtil.AppId; Shadows = new List <IShadow>(); ItemShadows = new List <ItemShadow>(); _zoneId = zoneId; }
TurntableInfo GetTurntableInfo(TurntableFrame turntable) { TurntableInfo data = new TurntableInfo(); var turntableManager = turntable.TurntableManagerEntity; data.DayProduceLuckyCoin = turntableManager.DayProduceLuckyCoin; data.FreeOfChargeNumber = turntableManager.GiveLuckyCoin; data.LuckyCoin = turntableManager.LuckyCoin; data.TurntableType = turntableManager.TurntableType; data.NextResetPoint = turntable.GetResetPoint(); data.ItemList = turntable.GetTurntableList(); data.StartTimeTick = ShareUtil.GetTimeTick(startTime); data.EndTimeTick = ShareUtil.GetTimeTick(endTime); return(data); }
private void btnCalHashcode_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(txtGuid.Text)) { lblResult.Content = "请输入要计算的guid"; return; } try { lblResult.Content = "结果:" + ShareUtil.GetTableMod(new Guid(txtGuid.Text)); } catch (Exception ex) { lblResult.Content = "计算出错:" + ex.Message; } }
/// <summary> /// 是否可以购买每周礼包 /// </summary> /// <param name="managerInfo"></param> /// <param name="date"></param> /// <returns></returns> private bool IsHaveBuyWeekGiftBag(ManagerChargenumberEntity managerInfo, DateTime date) { DateTime startBuyTime = ShareUtil.GetThisWeekDayDate(DayOfWeek.Friday); DateTime endBuyTime = ShareUtil.GetThisWeekDayDate(DayOfWeek.Sunday); if (managerInfo != null && managerInfo.Idx > 0) { if (managerInfo.UpdateTiem > startBuyTime) //购买过了 { return(false); } } if (date < startBuyTime) //时间未到 { return(false); } return(true); }
/// <summary> /// 按数量拆分物品 /// </summary> /// <param name="item"></param> /// <param name="count"></param> /// <returns></returns> public MessageCode Split(ConstellationInfoEntity item, int count) { if (item != null) { if (IsFull) { return(MessageCode.ItemPackageFull); } try { if (count <= 0) { return(MessageCode.NbParameterError); } if (item.ItemCount <= count) { return(MessageCode.ItemSplitCountOver); } else { item.ItemCount = item.ItemCount - count; var code = Update(item, count * -1); if (code != MessageCode.Success) { return(code); } var newItem = item.Clone(); newItem.GridIndex = GetBlankGrid(); _blanks.Remove(newItem.GridIndex); _itemCount++; newItem.ItemId = ShareUtil.GenerateComb(); newItem.ItemCount = count; LastAddItemId = newItem.ItemId; return(SaveItem(newItem)); } } catch (Exception ex) { SystemlogMgr.Error("ConstellationPackbager Split", ex); return(MessageCode.Exception); } } return(MessageCode.ItemNotExists); }
public string IsRegistByNameList() { var data = GetParamNOUrlDecode("data"); string serverid = GetParam("serverId"); string time = GetParam("time"); string sign = GetParam("sign"); if (string.IsNullOrEmpty(data) || string.IsNullOrEmpty(serverid) || string.IsNullOrEmpty(time) || string.IsNullOrEmpty(sign)) { return(UAErrorCode.ErrDataOP); } var key = CacheFactory.AppsettingCache.GetAppSetting(EnumAppsetting.H5_A8DataKey); var appSign = CryptHelper.GetMD5(data + serverid + time + key).ToLower(); if (sign != appSign) { return(UAErrorCode.ErrCheckSign); } data = GetParam("data"); //UAHelper.WriteLog("IsRegistByNameList", "|" + data + "|" + serverid + "|" + time + "|" + sign + "|"); var managerList = WebServerHandler.IsRegistByNameList(platFormKey, serverid, data); if (managerList == null || managerList.Length <= 0 || string.IsNullOrEmpty(managerList[0].Name)) { return(UAErrorCode.ErrNoUser); } string str = ""; foreach (var manager in managerList) { var rowTime = manager.RowTime; var registTime = ShareUtil.GetTimeTick(rowTime); str += "{\"name\":\"" + manager.Name + "\",\"serverId\":\"" + serverid + "\",\"gamelevel\":\"" + manager.Level + "\",\"registtime\":\"" + registTime + "\"},"; } string r = str.Substring(0, str.Length - 1); return("{\"code\":\"0\",\"data\":[" + r + "]}"); }
public static void UpdateForTip(UpdateDownloadEntity updtEt) { if (!updtEt.IsForceUpdate) { var ver = ShareUtil.ConvertVersionToString(updtEt.PatchVersion); var msg = string.Format("发现新版【{0}】,解决问题:\r\n\r\n{1}\r\n\r\n是否升级?", ver, updtEt.Tip); var showKey = "ClientUpdater"; MsgBox.ShowNotTipAgain(msg, "升级提示", showKey, (b1, isOkClicked) => { if (isOkClicked) { UpdateAsync(updtEt); } }, null, "升级"); } else { UpdateAsync(updtEt); } }
/// <summary> /// 获取奥运金牌数量 /// </summary> /// <param name="managerId"></param> /// <returns></returns> public OlympicGetInfoResponse GetManagerInfo(Guid managerId) { OlympicGetInfoResponse response = new OlympicGetInfoResponse(); response.Data = new OlympicGetInfo(); try { var info = GetInfo(managerId); response.Data.TheGoldMedalDic = info.TheGoldMedalDic; response.Data.StartTimeTick = ShareUtil.GetTimeTick(startTime); response.Data.EndTimeTick = ShareUtil.GetTimeTick(endTime); } catch (Exception ex) { SystemlogMgr.Error("获取奥运金牌", ex); response.Code = (int)MessageCode.NbParameterError; } return(response); }
/// <summary> /// Builds the match info. /// </summary> /// <param name="ladderId">The ladder id.</param> /// <param name="group">The group.</param> /// <param name="home">The home.</param> /// <param name="away">The away.</param> /// <param name="fightDic">The fight dic.</param> private void BuildMatchInfo(Guid ladderId, int group, CrossladderManagerEntity home, CrossladderManagerEntity away, Dictionary <Guid, CrossladderMatchEntity> fightDic) { try { //筛选条件,当两个玩家分差超过阀值,将他们扔到排队池里继续等待 //int tmpScore = home.Score - away.Score; //if (tmpScore <= _arenaLowScore || tmpScore >= _arenaHighScore) //{ // if (!home.IsBot) // CrossLadderCore.Instance.PushFightToCompetitor(home.Clone()); // if (!away.IsBot) // CrossLadderCore.Instance.PushFightToCompetitor(away.Clone()); // return; //} var matchId = ShareUtil.GenerateComb(); var ladderMatch = new CrossladderMatchEntity(home, away, matchId, ladderId, group + 1); ladderMatch.HomeName = ShareUtil.GetCrossManagerNameByZoneId(home.SiteId, home.Name); ladderMatch.AwayName = ShareUtil.GetCrossManagerNameByZoneId(away.SiteId, away.Name); ladderMatch.DomainId = _domainId; fightDic.Add(ladderMatch.Idx, ladderMatch); MemcachedFactory.LadderMatchClient.Set(ladderMatch.Idx, ladderMatch); //更新经理-比赛关联字典 if (!home.IsBot) { var homeHeart = new CrossLadderHeartEntity(matchId, away.ManagerId, away.SiteId, away.IsBot, away.Kpi); ManagerFightDic[home.ManagerId] = homeHeart; MemcachedFactory.LadderHeartClient.Set(home.ManagerId, homeHeart); } if (!away.IsBot) { var awayHeart = new CrossLadderHeartEntity(matchId, home.ManagerId, home.SiteId, home.IsBot, away.Kpi); ManagerFightDic[away.ManagerId] = awayHeart; MemcachedFactory.LadderHeartClient.Set(away.ManagerId, awayHeart); } } catch (Exception ex) { SystemlogMgr.Error("CrossLadderThread-BuildMatchInfo", ex.Message, ex.StackTrace); } }
public CrosscrowdManagerResponse GetManagerInfo(string siteId, Guid managerId, int crowdId, DateTime curTime, int curPoint = -1, bool checkStatus = true) { var crowdManager = InnerGetManager(siteId, managerId, crowdId, curTime); if (crowdManager == null) { return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.NbFunctionNotOpen)); } if (checkStatus) { if (crowdManager.Morale <= 0) { return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.CrowdNoMorale)); } var code = MatchCdHandler.CheckCd(managerId, EnumMatchType.CrossCrowd); if (code != MessageCode.Success) { return(ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.NbMatchCd)); } crowdManager.ShowName = ShareUtil.GetCrossManagerNameByZoneId(siteId, crowdManager.Name); } else { crowdManager.CdSeconds = MatchCdHandler.GetCdMilSecondsInt(managerId, EnumMatchType.CrossCrowd); crowdManager.CurPoint = curPoint; crowdManager.ClearCdPoint = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.CrowdClearCd, 0);//crowdManager.ClearCdCount+1); crowdManager.ResurrectionPoint = CacheFactory.MallCache.GetDirectPoint(EnumConsumeSourceType.CrowdResurrection); if (crowdManager.Morale < 1) { crowdManager.ResurrectionCdSeconds = ShareUtil.CalCountdown(crowdManager.ResurrectionTime, curTime); } else { crowdManager.ResurrectionCdSeconds = -1; } } var response = ResponseHelper.Create <CrosscrowdManagerResponse>(MessageCode.Success); response.Data = crowdManager; return(response); }
public MailDataResponse GetMailData(Guid managerId) { int totalCount = 0; var response = ResponseHelper.CreateSuccess <MailDataResponse>(); response.Data = new MailDataEntity(); var list = MailInfoMgr.GetByManager(managerId, ref totalCount); if (list != null && list.Count > 0) { foreach (var entity in list) { entity.MailTick = ShareUtil.GetTimeTick(entity.RowTime); entity.MailExpiredTick = ShareUtil.GetTimeTick(entity.ExpiredTime); entity.MailAttachment = SerializationHelper.FromByte <MailAttachmentEntity>(entity.Attachment); } } response.Data.Mails = list; response.Data.TotalCount = totalCount; return(response); }
public List <EquipmentProperty> AnalysisProperties(string equipmentProperties) { var propertyList = new List <EquipmentProperty>(); var equipmentPropertiesHexList = equipmentProperties.Split('|'); foreach (var equipmentProperty in equipmentPropertiesHexList) { if (string.IsNullOrEmpty(equipmentProperties)) { continue; } var propertyBytes = ShareUtil.HexStrToByteArray(equipmentProperty); var property = SerializationHelper.FromByte <EquipmentProperty>(propertyBytes); if (property != null) { propertyList.Add(property); } } return(propertyList); }
private void BuildMatchInfo(int crowdId, int pairIndex, CrosscrowdManagerEntity home, CrosscrowdManagerEntity away, Dictionary <Guid, CrosscrowdMatchEntity> matchDic) { try { var matchId = ShareUtil.GenerateComb(); var match = new CrosscrowdMatchEntity(home, away, matchId, crowdId, pairIndex); matchDic.Add(match.Idx, match); MemcachedFactory.CrowdMatchClient.Set(match.Idx, match); //更新经理-比赛关联字典 var homeHeart = new CrowdHeartEntity(matchId, away.ShowName, away.Logo, away.Morale, away.ManagerId, away.SiteId); var awayHeart = new CrowdHeartEntity(matchId, home.ShowName, home.Logo, home.Morale, home.ManagerId, home.SiteId); ManagerFightDic[home.ManagerId] = homeHeart; ManagerFightDic[away.ManagerId] = awayHeart; //try //{ // CrossChatHelper.SendCrowdPairPop(home.ManagerId, homeHeart, home.SiteId); // CrossChatHelper.SendCrowdPairPop(away.ManagerId, awayHeart, away.SiteId); //} //catch (Exception ex) //{ // SystemlogMgr.Error("CrossCrowdThread-SendCrowdPairPop", ex); //} MatchCdHandler.SetCd(home.ManagerId, EnumMatchType.CrossCrowd, _crowdCd); MatchCdHandler.SetCd(away.ManagerId, EnumMatchType.CrossCrowd, _crowdCd); try { MemcachedFactory.CrowdHeartClient.Set(home.ManagerId, homeHeart); MemcachedFactory.CrowdHeartClient.Set(away.ManagerId, awayHeart); } catch (Exception ex) { SystemlogMgr.Error("CrossCrowdThread-BuildMatchInfo-Send", ex); } } catch (Exception ex) { SystemlogMgr.Error("CrossCrowdThread-BuildMatchInfo", ex); } }
private static void Update(UpdateDownloadEntity updtEt) { if (!_isUpdating) { _isUpdating = true; try { Log.Info(string.Format("开始升级,补丁={0}", Util.SerializeWithTypeName(updtEt))); var newVerDir = PathEx.ParentOfExePath + ShareUtil.ConvertVersionToString(updtEt.PatchVersion); NetUtil.DownFile(updtEt.PatchUrl, _patchFn, updtEt.PatchSize); DirectoryEx.DeleteC(newVerDir, true); CopyBaseFile(newVerDir); Zip.UnZipFile(_patchFn, newVerDir, null); File.Delete(_patchFn); //DeleteOldVersion(ent.DeleteVersions, ent.DeleteVersionLessThan, ent.PatchVersion); InstalledVersionManager.SaveVersionToConfigFile(updtEt.PatchVersion); if (updtEt.IsForceUpdate) { var msg = string.Format("{0}已升级到版本{1},{0}将自动重启。\r\n\r\n升级信息:{2}", "软件", ShareUtil.ConvertVersionToString(updtEt.PatchVersion), updtEt.Tip); MsgBox.ShowTrayTip(msg, "软件升级", 30, null, () => Reboot()); } else { var msg = string.Format("{0}已升级到版本{1},是否立即重启软件,使用新版本?", "软件", ShareUtil.ConvertVersionToString(updtEt.PatchVersion)); if (MsgBox.ShowDialog(msg, "提示", null, null, null)) { Reboot(); } } } catch (Exception ex) { Log.Exception(ex); DispatcherEx.xInvoke(() => MsgBox.ShowErrDialog(string.Format("升级失败,原因={0}", ex.Message))); } Log.Info("结束升级补丁"); _isUpdating = false; } }
void CreateMatch(MatchInput transfer, int matchTimes, bool needStatistics, CreateDelegate createDelegate, FinishDelegate finishDelegate) { int i = 1; var hmid = transfer.HomeManager.Mid; var amid = transfer.AwayManager.Mid; while (i <= matchTimes) { if (transfer != null) { var watch = new System.Diagnostics.Stopwatch(); watch.Start(); transfer.MatchId = ShareUtil.GenerateComb(); try { IMatch match = new MatchEntity(transfer); if (needStatistics) { statisticsMatch = new StatisticsMatchEntity(match); } EmulatorHelper.CreateMatch(match, statisticsMatch); var result = match.Report; long cost = watch.ElapsedMilliseconds; _testStatisticsDic.Add(i, statisticsMatch); _testMatchEntityDic.Add(i, result); Dispatcher.Invoke((Action) delegate { createDelegate(transfer.MatchId, i, cost, result); }); } catch (Exception ex) { LogHelper.Insert(ex); } } i++; } Dispatcher.Invoke((Action) delegate { finishDelegate(); }); }
LadderHookInfoResponse BuildHookInfoResponse(LadderHookEntity entity, bool isHook) { var response = ResponseHelper.CreateSuccess <LadderHookInfoResponse>(); response.Data = new LadderHookInfoEntity(); response.Data.IsHook = isHook; response.Data.CurTimes = entity.CurTimes; response.Data.CurWiningTimes = entity.CurWiningTimes; response.Data.MaxScore = entity.MaxScore; response.Data.MaxTimes = entity.MaxTimes; response.Data.MinScore = entity.MinScore; response.Data.LadderHookList = new List <LadderHook>(); if (_hookListDic.ContainsKey(entity.ManagerId)) { response.Data.LadderHookList = _hookListDic[entity.ManagerId]; } var curTime = DateTime.Now; response.Data.NextMatchWaitSeconds = isHook ? ShareUtil.CalWaitTime(entity.NextMatchTime, curTime) : 0; response.Data.ExpiredTick = ShareUtil.GetTimeTick(entity.Expired); return(response); }
public LadderMatchEntityListResponse GetMatchList(Guid managerId) { var response = ResponseHelper.CreateSuccess <LadderMatchEntityListResponse>(); response.Data = new LadderMatchEntityList(); var list = LadderMatchMgr.GetFiveMatch(managerId); if (list != null) { response.Data.Matchs = new List <LadderMatchEntityView>(list.Count); foreach (var match in list) { string awayName = ""; EnumWinType winType; //0:负; 1:胜;2:平 int prizeScore; string score = ""; //比分 2:3 if (managerId == match.HomeId && match.HomeIsBot == false) { awayName = match.AwayName; prizeScore = match.PrizeHomeScore; score = string.Format("{0}:{1}", match.HomeScore, match.AwayScore); winType = ShareUtil.CalWinType(match.HomeScore, match.AwayScore); } else { if (match.AwayIsBot) { continue; } awayName = match.HomeName; prizeScore = match.PrizeAwayScore; score = string.Format("{0}:{1}", match.AwayScore, match.HomeScore); winType = ShareUtil.CalWinType(match.AwayScore, match.HomeScore); } response.Data.Matchs.Add(BuildMatchView(match.Idx, awayName, prizeScore, score, winType)); } } return(response); }