Beispiel #1
0
        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");
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
 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;
 }
Beispiel #7
0
        /// <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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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;
        }
Beispiel #12
0
        /// <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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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;
        }
Beispiel #15
0
        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;
     }
 }
Beispiel #17
0
        /// <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);
        }
Beispiel #18
0
 /// <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);
 }
Beispiel #19
0
        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 + "]}");
        }
Beispiel #20
0
 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);
     }
 }
Beispiel #21
0
        /// <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);
            }
        }
Beispiel #23
0
        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);
        }
Beispiel #24
0
        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);
        }
Beispiel #25
0
        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);
            }
        }
Beispiel #27
0
 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;
     }
 }
Beispiel #28
0
        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(); });
        }
Beispiel #29
0
        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);
        }
Beispiel #30
0
        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);
        }