private bool LoadBHMatchBHData_Join(BangHuiMatchType type, int seasonID, List <BHMatchBHData> BHMatchBHDataList_Join, bool lastSeason = false)
        {
            bool result;

            if (null == BHMatchBHDataList_Join)
            {
                result = false;
            }
            else
            {
                BHMatchBHDataList_Join.Clear();
                try
                {
                    KuaFuData <BHMatchBHData> bhData = null;
                    string strSql = string.Format("SELECT * FROM t_banghui_match_bh_season WHERE `type`={0} AND `season`={1}", (int)type, seasonID);
                    if (type == BangHuiMatchType.BHMT_Begin)
                    {
                        strSql += string.Format(" ORDER BY `group` ASC", new object[0]);
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        int bhid = Convert.ToInt32(sdr["bhid"]);
                        if (type == BangHuiMatchType.BHMT_Begin && this.BHMatchBHDataDict_Gold.TryGetValue(bhid, out bhData))
                        {
                            TimeUtil.AgeByNow(ref bhData.Age);
                            if (!lastSeason)
                            {
                                bhData.V.cur_win   = Convert.ToInt32(sdr["win"]);
                                bhData.V.group     = Convert.ToInt32(sdr["group"]);
                                bhData.V.cur_score = 0;
                            }
                            BHMatchBHDataList_Join.Add(bhData.V);
                        }
                        if (type == BangHuiMatchType.Rookie && this.BHMatchBHDataDict_Rookie.TryGetValue(bhid, out bhData))
                        {
                            TimeUtil.AgeByNow(ref bhData.Age);
                            if (!lastSeason)
                            {
                                bhData.V.cur_win   = Convert.ToInt32(sdr["win"]);
                                bhData.V.group     = 0;
                                bhData.V.cur_score = Convert.ToInt32(sdr["score"]);
                            }
                            BHMatchBHDataList_Join.Add(bhData.V);
                        }
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #2
0
        public int RoleReborn(int ptId, int roleId, string roleName, int level)
        {
            int ret = 0;

            try
            {
                KeyValuePair <int, int>      key = new KeyValuePair <int, int>(ptId, roleId);
                KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                if (!this.RebornRoleDataDict.TryGetValue(key, out kfRebornRoleData))
                {
                    kfRebornRoleData             = new KuaFuData <KFRebornRoleData>();
                    kfRebornRoleData.V.PtID      = ptId;
                    kfRebornRoleData.V.RoleID    = roleId;
                    kfRebornRoleData.V.RoleName  = roleName;
                    kfRebornRoleData.V.Lev       = level;
                    this.RebornRoleDataDict[key] = kfRebornRoleData;
                    TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                    this.Persistence.InsertRebornRoleData(kfRebornRoleData.V);
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteException(ex.ToString());
            }
            return(ret);
        }
Example #3
0
		private void LoadDBConfig()
		{
			lock (this.Mutex)
			{
				int stepProcessEnd;
				for (;;)
				{
					stepProcessEnd = this._persistence.DBWeekAndStepGet(32);
					if (stepProcessEnd >= 0)
					{
						break;
					}
					Thread.Sleep(2000);
				}
				this.StepProcessEnd = stepProcessEnd;
				DateTime weekStartTime = TimeUtil.GetWeekStartTimeNow();
				DateTime now = TimeUtil.NowDateTime();
				TimeSpan ts = now - weekStartTime;
				if (ts >= this._config.FirstStartTime)
				{
					this.RankTime = weekStartTime;
				}
				else
				{
					this.RankTime = weekStartTime.AddDays(-7.0);
				}
				int week = TimeUtil.GetOffsetDay(this.RankTime);
				this.ReloadRankDatas(week);
				this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
			}
		}
Example #4
0
 public void HandleChangeEraID(DateTime now, bool broadCast = false)
 {
     lock (this.Mutex)
     {
         int dayID = TimeUtil.GetOffsetDay(now);
         if (dayID != this.RuntimeData.EraUpdateDayID)
         {
             this.RuntimeData.EraUpdateDayID = dayID;
             int CurrentEraID = this.CalCurrentEraID(now);
             if (CurrentEraID != this.RuntimeData.CurrentEraID)
             {
                 this.EraDataDict.Clear();
                 this.EraRankList.V.Clear();
                 TimeUtil.AgeByNow(ref this.EraRankList.Age);
                 this.RuntimeData.CurrentEraID           = CurrentEraID;
                 this.RuntimeData.CurFastEraStage        = 1;
                 this.RuntimeData.CurFastEraStateProcess = 0;
                 if (broadCast)
                 {
                     AsyncDataItem evItem = new AsyncDataItem(KuaFuEventTypes.JunTuanEraChg, new object[]
                     {
                         CurrentEraID
                     });
                     ClientAgentManager.Instance().BroadCastAsyncEvent(GameTypes.JunTuan, evItem, 0);
                 }
             }
         }
     }
 }
 private bool LoadBHMatchBHData_LastSeason(BangHuiMatchType type, int seasonID)
 {
     try
     {
         KuaFuData <BHMatchBHData> bhData = null;
         string          strSql           = string.Format("SELECT * FROM t_banghui_match_bh_season where `type`={0} and `season`={1}", (int)type, seasonID);
         MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
         while (sdr != null && sdr.Read())
         {
             int bhid = Convert.ToInt32(sdr["bhid"]);
             if (type == BangHuiMatchType.BHMT_Begin && this.BHMatchBHDataDict_Gold.TryGetValue(bhid, out bhData))
             {
                 TimeUtil.AgeByNow(ref bhData.Age);
                 bhData.V.last_win   = Convert.ToInt32(sdr["win"]);
                 bhData.V.last_score = 0;
             }
             if (type == BangHuiMatchType.Rookie && this.BHMatchBHDataDict_Rookie.TryGetValue(bhid, out bhData))
             {
                 TimeUtil.AgeByNow(ref bhData.Age);
                 bhData.V.last_win   = Convert.ToInt32(sdr["win"]);
                 bhData.V.last_score = Convert.ToInt32(sdr["score"]);
             }
         }
         if (sdr != null)
         {
             sdr.Close();
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteExceptionUseCache(ex.ToString());
         return(false);
     }
     return(true);
 }
Example #6
0
        public bool ReloadRankInfo(int rankType, KuaFuData <Dictionary <int, List <KFZorkRankInfo> > > ZorkBattleRankInfoDict)
        {
            bool ret = true;
            List <KFZorkRankInfo> rankList = new List <KFZorkRankInfo>();

            if (!ZorkBattleRankInfoDict.V.TryGetValue(rankType, out rankList))
            {
                rankList = (ZorkBattleRankInfoDict.V[rankType] = new List <KFZorkRankInfo>());
            }
            else
            {
                rankList.Clear();
            }
            try
            {
                if (rankType == 0)
                {
                    TianTi5v5Service.CalZorkBattleRankTeamJiFen(rankList);
                }
                else
                {
                    ret = this.Persistence.LoadZorkBattleRankInfo(rankType, rankList);
                }
                TimeUtil.AgeByNow(ref ZorkBattleRankInfoDict.Age);
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
                return(false);
            }
            return(ret);
        }
Example #7
0
        public KuaFuCmdData GetEraData(int juntuanid, long dataAge)
        {
            KuaFuCmdData result;

            lock (this.Mutex)
            {
                if (0 == this.RuntimeData.CurrentEraID)
                {
                    result = null;
                }
                else
                {
                    KuaFuData <KFEraData> data = null;
                    if (juntuanid == 0 && 0L == dataAge)
                    {
                        data         = new KuaFuData <KFEraData>();
                        data.V.EraID = this.RuntimeData.CurrentEraID;
                        TimeUtil.AgeByNow(ref data.Age);
                    }
                    else
                    {
                        if (!this.EraDataDict.TryGetValue(juntuanid, out data))
                        {
                            data             = new KuaFuData <KFEraData>();
                            data.V.EraID     = this.RuntimeData.CurrentEraID;
                            data.V.JunTuanID = juntuanid;
                            data.V.EraStage  = 1;
                            TimeUtil.AgeByNow(ref data.Age);
                            this.EraDataDict[juntuanid] = data;
                        }
                        if (data.V.FastEraStage != this.RuntimeData.CurFastEraStage || data.V.FastEraStateProcess != this.RuntimeData.CurFastEraStateProcess)
                        {
                            TimeUtil.AgeByNow(ref data.Age);
                        }
                    }
                    data.V.FastEraStage        = this.RuntimeData.CurFastEraStage;
                    data.V.FastEraStateProcess = this.RuntimeData.CurFastEraStateProcess;
                    if (dataAge != data.Age)
                    {
                        result = new KuaFuCmdData
                        {
                            Age    = data.Age,
                            Bytes0 = DataHelper2.ObjectToBytes <KFEraData>(data.V)
                        };
                    }
                    else
                    {
                        result = new KuaFuCmdData
                        {
                            Age = data.Age
                        };
                    }
                }
            }
            return(result);
        }
 private bool LoadKuaFuLueDuoBHData(Dictionary <int, KuaFuData <KuaFuLueDuoBHData> > KuaFuLueDuoBHDataDict, int minSeason)
 {
     try
     {
         long   sAge   = TimeUtil.AgeByNow();
         string strSql = string.Format("SELECT * FROM t_kfld_banghui where `season`>={0}", minSeason);
         using (MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false))
         {
             while (sdr != null && sdr.Read())
             {
                 KuaFuData <KuaFuLueDuoBHData> bhData = new KuaFuData <KuaFuLueDuoBHData>();
                 bhData.V.season      = Convert.ToInt32(sdr["season"]);
                 bhData.V.bhid        = Convert.ToInt32(sdr["bhid"]);
                 bhData.V.bhname      = (sdr["bhname"] as string);
                 bhData.V.zoneid      = Convert.ToInt32(sdr["zoneid"]);
                 bhData.V.sum_ziyuan  = Convert.ToInt32(sdr["sum_ziyuan"]);
                 bhData.V.last_ziyuan = Convert.ToInt32(sdr["last"]);
                 bhData.Age           = sAge;
                 KuaFuLueDuoBHDataDict[bhData.V.bhid] = bhData;
                 int zoneid = bhData.V.zoneid;
                 if (bhData.V.sum_ziyuan > 0 && zoneid > 0 && zoneid < this.ZoneID2ServerIDs.Length)
                 {
                     KuaFuLueDuoServerInfo data;
                     if (this.ServerInfoDict.TryGetValue(this.ZoneID2ServerIDs[zoneid], out data))
                     {
                         string name = KuaFuServerManager.FormatName(bhData.V.bhname, bhData.V.zoneid);
                         data.MingXingList.Add(new KuaFuLueDuoRankInfo
                         {
                             Key    = bhData.V.bhid,
                             Param1 = name,
                             Value  = bhData.V.sum_ziyuan
                         });
                     }
                 }
             }
         }
         foreach (KuaFuLueDuoServerInfo data in this.ServerInfoDict.Values)
         {
             string mingxing = KuaFuLueDuoUtils.RankList2MingXingStr(data.MingXingList, 2);
             if (mingxing != data.MingXingZhanMengList)
             {
                 data.MingXingZhanMengList = mingxing;
                 string sql = string.Format("update t_kfld_server set `mingxing`='{1}' where `serverid`={0}", data.ServerId, mingxing);
                 this.ExecuteSqlNoQuery(sql);
             }
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteExceptionUseCache(ex.ToString());
         return(false);
     }
     return(true);
 }
Example #9
0
        private bool LoadCompData(KuaFuData <Dictionary <int, KFCompData> > CompDataDict)
        {
            bool result;

            if (null == CompDataDict)
            {
                result = false;
            }
            else
            {
                try
                {
                    string          strSql = string.Format("SELECT * FROM `t_comp`", new object[0]);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KFCompData myCompData = new KFCompData();
                        myCompData.InitPlunderResList();
                        myCompData.CompType         = Convert.ToInt32(sdr["type"]);
                        myCompData.BoomValue        = Convert.ToInt32(sdr["boomval"]);
                        myCompData.YestdBoomValue   = Convert.ToInt32(sdr["boomval_yestd"]);
                        myCompData.EnemyCompType    = Convert.ToInt32(sdr["enemytype"]);
                        myCompData.EnemyCompTypeSet = Convert.ToInt32(sdr["enemyset"]);
                        myCompData.Bulletin         = sdr["bulletin"].ToString();
                        myCompData.Crystal          = Convert.ToInt32(sdr["crystal"]);
                        myCompData.BossDamageTop    = Convert.ToInt32(sdr["bossdamage"]);
                        myCompData.Boss             = Convert.ToInt32(sdr["boss"]);
                        myCompData.YestdCrystal     = Convert.ToInt32(sdr["crystal_yestd"]);
                        myCompData.YestdBoss        = Convert.ToInt32(sdr["boss_yestd"]);
                        myCompData.ParsePlunderResListString(sdr["plunderres"].ToString(), myCompData.PlunderResList);
                        myCompData.ParsePlunderResListString(sdr["plunderres_yestd"].ToString(), myCompData.YestdPlunderResList);
                        myCompData.ParseStrongholdDictString(sdr["stronghold"].ToString(), myCompData.StrongholdDict);
                        myCompData.BossKillCompType      = Convert.ToInt32(sdr["bosskilltype"]);
                        myCompData.YestdBossKillCompType = Convert.ToInt32(sdr["bosskilltype_yestd"]);
                        myCompData.MineRes  = Convert.ToInt32(sdr["mine"]);
                        myCompData.MineRank = Convert.ToInt32(sdr["mine_rank"]);
                        CompDataDict.V[myCompData.CompType] = myCompData;
                    }
                    TimeUtil.AgeByNow(ref CompDataDict.Age);
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
        private bool LoadBHMatchPKInfoList(BangHuiMatchType type, KuaFuData <List <BangHuiMatchPKInfo> > BHMatchPKInfoList_Gold)
        {
            bool result;

            if (null == BHMatchPKInfoList_Gold)
            {
                result = false;
            }
            else
            {
                BHMatchPKInfoList_Gold.V.Clear();
                try
                {
                    KuaFuData <BHMatchBHData> bhData = null;
                    string          strSql           = string.Format("SELECT * FROM t_banghui_match_pk_log WHERE `type`={0} ORDER BY `season` DESC, `round` DESC LIMIT {1}", (int)type, 80);
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        BangHuiMatchPKInfo pkInfo = new BangHuiMatchPKInfo();
                        pkInfo.type    = Convert.ToByte(sdr["type"]);
                        pkInfo.season  = Convert.ToInt32(sdr["season"]);
                        pkInfo.round   = Convert.ToByte(sdr["round"]);
                        pkInfo.bhid1   = Convert.ToInt32(sdr["bhid1"]);
                        pkInfo.bhid2   = Convert.ToInt32(sdr["bhid2"]);
                        pkInfo.result  = Convert.ToByte(sdr["result"]);
                        pkInfo.zoneid1 = Convert.ToInt32(sdr["zoneid1"]);
                        pkInfo.zoneid2 = Convert.ToInt32(sdr["zoneid2"]);
                        if (this.BHMatchBHDataDict_Gold.TryGetValue(pkInfo.bhid1, out bhData))
                        {
                            pkInfo.bhname1 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                        }
                        if (this.BHMatchBHDataDict_Gold.TryGetValue(pkInfo.bhid2, out bhData))
                        {
                            pkInfo.bhname2 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                        }
                        BHMatchPKInfoList_Gold.V.Add(pkInfo);
                    }
                    TimeUtil.AgeByNow(ref BHMatchPKInfoList_Gold.Age);
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #11
0
        private bool LoadCompRoleData(Dictionary <int, KuaFuData <KFCompRoleData> > CompRoleDataDict)
        {
            bool result;

            if (null == CompRoleDataDict)
            {
                result = false;
            }
            else
            {
                try
                {
                    string          strSql = string.Format("SELECT * FROM `t_comp_roles`", new object[0]);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KuaFuData <KFCompRoleData> myData = new KuaFuData <KFCompRoleData>();
                        myData.V.RoleID         = Convert.ToInt32(sdr["rid"]);
                        myData.V.ZoneID         = Convert.ToInt32(sdr["zoneid"]);
                        myData.V.CompType       = Convert.ToInt32(sdr["type"]);
                        myData.V.CompTypeLast   = Convert.ToInt32(sdr["type_last"]);
                        myData.V.JunXian        = Convert.ToInt32(sdr["junxian"]);
                        myData.V.JunXianLast    = Convert.ToInt32(sdr["junxian_last"]);
                        myData.V.RoleName       = Convert.ToString(sdr["rname"]);
                        myData.V.BattleJiFen    = Convert.ToInt32(sdr["battlejifen"]);
                        myData.V.CompTypeBattle = Convert.ToInt32(sdr["type_battle"]);
                        myData.V.CompTypeMine   = Convert.ToInt32(sdr["type_mine"]);
                        myData.V.MineJiFen      = Convert.ToInt32(sdr["minejifen"]);
                        string strRankTm = sdr["ranktm_bjf"].ToString();
                        if (!string.IsNullOrEmpty(strRankTm))
                        {
                            DateTime.TryParse(strRankTm, out myData.V.RankTmBJF);
                        }
                        strRankTm = sdr["ranktm_mjf"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmMJF);
                        CompRoleDataDict[myData.V.RoleID] = myData;
                        TimeUtil.AgeByNow(ref myData.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #12
0
 public void SetRoleData4Selector(int ptId, int roleId, byte[] bytes)
 {
     lock (this.Mutex)
     {
         KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
         if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptId, roleId), out kfRebornRoleData))
         {
             kfRebornRoleData.V.RoleData4Selector = bytes;
             TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
             this.Persistence.UpdateRebornRoleData4Selector(kfRebornRoleData.V);
         }
     }
 }
        private bool LoadBHMatchBHData(BangHuiMatchType type, Dictionary <int, KuaFuData <BHMatchBHData> > BHMatchBHDataDict)
        {
            bool result;

            if (null == BHMatchBHDataDict)
            {
                result = false;
            }
            else
            {
                BHMatchBHDataDict.Clear();
                try
                {
                    string          strSql = string.Format("SELECT * FROM t_banghui_match_bh where `type`={0}", (int)type);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KuaFuData <BHMatchBHData> bhData = new KuaFuData <BHMatchBHData>();
                        bhData.V.type          = (int)type;
                        bhData.V.bhid          = Convert.ToInt32(sdr["bhid"]);
                        bhData.V.bhname        = (sdr["bhname"] as string);
                        bhData.V.zoneid_bh     = Convert.ToInt32(sdr["zoneid_bh"]);
                        bhData.V.rid           = Convert.ToInt32(sdr["rid"]);
                        bhData.V.rname         = (sdr["rname"] as string);
                        bhData.V.zoneid_r      = Convert.ToInt32(sdr["zoneid_r"]);
                        bhData.V.hist_play     = Convert.ToInt32(sdr["play"]);
                        bhData.V.hist_champion = Convert.ToInt32(sdr["champion"]);
                        bhData.V.hist_bullshit = Convert.ToInt32(sdr["bullshit"]);
                        bhData.V.best_record   = Convert.ToInt32(sdr["bestrecord"]);
                        string strGetWin = string.Format("select sum(win) totalwin from t_banghui_match_bh_season where `type`={0} and bhid={1}", (int)type, bhData.V.bhid);
                        bhData.V.hist_win = Convert.ToInt32(DbHelperMySQL.GetSingle(strGetWin));
                        string strGetScore = string.Format("select sum(score) totalscore from t_banghui_match_bh_season where `type`={0} and bhid={1}", (int)type, bhData.V.bhid);
                        bhData.V.hist_score = Convert.ToInt32(DbHelperMySQL.GetSingle(strGetScore));
                        bhData.V.hist_kill  = Convert.ToInt32(sdr["kill"]);
                        TimeUtil.AgeByNow(ref bhData.Age);
                        BHMatchBHDataDict[bhData.V.bhid] = bhData;
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #14
0
        public void ChangeName(int ptId, int roleId, string roleName)
        {
            try
            {
                lock (this.Mutex)
                {
                    KeyValuePair <int, int>      key = new KeyValuePair <int, int>(ptId, roleId);
                    KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                    if (this.RebornRoleDataDict.TryGetValue(key, out kfRebornRoleData))
                    {
                        kfRebornRoleData.V.RoleName = roleName;
                        TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                        this.Persistence.UpdateRebornRoleDataRoleName(kfRebornRoleData.V);
                        bool refreshRank = false;
                        foreach (KeyValuePair <int, List <KFRebornRankInfo> > kvp in this.RebornRankDict.V)
                        {
                            KFRebornRankInfo item = kvp.Value.Find((KFRebornRankInfo x) => x.PtID == ptId && x.Key == roleId);
                            if (null != item)
                            {
                                string             worldRoleID   = ConstData.FormatWorldRoleID(roleId, ptId);
                                KuaFuWorldRoleData worldRoleData = TSingleton <KuaFuWorldManager> .getInstance().LoadKuaFuWorldRoleData(roleId, ptId, worldRoleID);

                                if (null != worldRoleData)
                                {
                                    item.Param1 = KuaFuServerManager.FormatName(item.tagInfo.V.RoleName, worldRoleData.ZoneID);
                                    refreshRank = true;
                                }
                            }
                        }
                        if (refreshRank)
                        {
                            TimeUtil.AgeByNow(ref this.RebornRankDict.Age);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteException(ex.ToString());
            }
        }
Example #15
0
        private void LoadEraRankData()
        {
            MySqlDataReader sdr = null;

            try
            {
                this.EraRankList.V.Clear();
                string strSql = string.Format("SELECT `juntuanid`, `stage`, `process`, `ranktm` FROM t_juntuan_era WHERE `eraid`={0} AND (`stage`>1 OR (`stage`=1 AND `process`>0))\r\n                                ORDER BY `stage` DESC, `process` DESC, `ranktm` ASC LIMIT {1};", this.RuntimeData.CurrentEraID, 5);
                sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                int index = 1;
                while (sdr != null && sdr.Read())
                {
                    KFEraRankData data = new KFEraRankData();
                    data.RankValue       = index;
                    data.JunTuanID       = Convert.ToInt32(sdr["juntuanid"].ToString());
                    data.EraStage        = Convert.ToByte(sdr["stage"].ToString());
                    data.EraStageProcess = Convert.ToInt32(sdr["process"].ToString());
                    string strRankTm = sdr["ranktm"].ToString();
                    if (!string.IsNullOrEmpty(strRankTm))
                    {
                        DateTime.TryParse(strRankTm, out data.RankTime);
                    }
                    this.EraRankList.V.Add(data);
                    index++;
                }
                TimeUtil.AgeByNow(ref this.EraRankList.Age);
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }
            finally
            {
                if (null != sdr)
                {
                    sdr.Close();
                }
            }
        }
Example #16
0
		public int GmCommand(string[] args, byte[] data)
		{
			if (args.Length > 0)
			{
				if (args[0] == "-zhengduo")
				{
					int step;
					int state;
					if (args.Length >= 3 && int.TryParse(args[1], out step) && int.TryParse(args[2], out state))
					{
						if (step == 10)
						{
							lock (this.Mutex)
							{
								this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
							}
						}
						else
						{
							lock (this.Mutex)
							{
								this.SyncData.ZhengDuoStep = step;
								this.SyncData.State = state;
								if (state > 0)
								{
									this.ProcessZhengDuoRank(this.SyncData.ZhengDuoStep - 1, true);
								}
								else
								{
									this.ProcessZhengDuoRank(this.SyncData.ZhengDuoStep, true);
								}
								this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
							}
						}
					}
				}
			}
			return 0;
		}
Example #17
0
        private void LoadEraData()
        {
            MySqlDataReader sdr = null;

            try
            {
                string strSql = string.Format("SELECT * FROM t_juntuan_era WHERE `eraid`={0};", this.RuntimeData.CurrentEraID);
                sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                this.EraDataDict.Clear();
                int index = 1;
                while (sdr != null && sdr.Read())
                {
                    KuaFuData <KFEraData> data = new KuaFuData <KFEraData>();
                    data.V.EraID           = Convert.ToInt32(sdr["eraid"].ToString());
                    data.V.JunTuanID       = Convert.ToInt32(sdr["juntuanid"].ToString());
                    data.V.EraStage        = Convert.ToByte(sdr["stage"].ToString());
                    data.V.EraStageProcess = Convert.ToInt32(sdr["process"].ToString());
                    data.V.EraTaskList     = this.LoadEraTaskList(data.V.JunTuanID);
                    data.V.ParseEraTimePointsData(sdr["tmpoints"].ToString());
                    TimeUtil.AgeByNow(ref data.Age);
                    this.EraDataDict[data.V.JunTuanID] = data;
                    this.HandleFastEraStage(data.V);
                    index++;
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }
            finally
            {
                if (null != sdr)
                {
                    sdr.Close();
                }
            }
        }
        private bool LoadKuaFuLueDuoRankInfo(int rankType, int minSeasonID, int seasonLast, Dictionary <int, KuaFuLueDuoRankListData> KuaFuLueDuoRankInfoDict)
        {
            try
            {
                long sAge   = TimeUtil.AgeByNow();
                int  length = this.ZoneID2GroupIDs.Length;
                KuaFuLueDuoRankListData[]    rankArr = new KuaFuLueDuoRankListData[length];
                List <KuaFuLueDuoRankInfo>[] listArr = new List <KuaFuLueDuoRankInfo> [length];
                for (int i = 0; i < this.ZoneID2GroupIDs.Length; i++)
                {
                    int groupID = this.ZoneID2GroupIDs[i];
                    KuaFuLueDuoRankListData rankData;
                    if (!KuaFuLueDuoRankInfoDict.TryGetValue(groupID, out rankData))
                    {
                        rankData = new KuaFuLueDuoRankListData
                        {
                            Age = sAge
                        };
                        rankData.LastInfoDict            = new Dictionary <int, KuaFuLueDuoRankInfo>();
                        rankData.SelfInfoDict            = new Dictionary <int, KuaFuLueDuoRankInfo>();
                        KuaFuLueDuoRankInfoDict[groupID] = rankData;
                    }
                    List <KuaFuLueDuoRankInfo> rankList;
                    if (!rankData.ListDict.TryGetValue(rankType, out rankList))
                    {
                        rankList = new List <KuaFuLueDuoRankInfo>();
                        rankData.ListDict[rankType] = rankList;
                    }
                    rankArr[i] = rankData;
                    listArr[i] = rankList;
                }
                string strSql = this.FormatLoadKuaFuLueDuoRankSql(rankType, minSeasonID, seasonLast);
                if (!string.IsNullOrEmpty(strSql))
                {
                    int rank = 0;
                    using (MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false))
                    {
                        while (sdr != null && sdr.Read())
                        {
                            int zoneID = Convert.ToInt32(sdr[3]);
                            if (zoneID < length)
                            {
                                rank++;
                                KuaFuLueDuoRankListData rankData = rankArr[zoneID];
                                KuaFuLueDuoRankInfo     rankInfo = new KuaFuLueDuoRankInfo();
                                int zoneId = Convert.ToInt32(sdr[3]);
                                rankInfo.Key    = Convert.ToInt32(sdr[0]);
                                rankInfo.Value  = Convert.ToInt32(sdr[1]);
                                rankInfo.Param1 = sdr[2].ToString();
                                switch (rankType)
                                {
                                case 0:
                                    listArr[zoneID].Add(rankInfo);
                                    if (rank == 1)
                                    {
                                        rankData.LastInfoDict[0] = rankInfo;
                                    }
                                    break;

                                case 2:
                                case 4:
                                    rankInfo.Param1 = KuaFuServerManager.FormatName(rankInfo.Param1, zoneId);
                                    listArr[zoneID].Add(rankInfo);
                                    break;

                                case 3:
                                case 5:
                                    rankInfo.Param1 = KuaFuServerManager.FormatName(rankInfo.Param1, zoneId);
                                    rankData.LastInfoDict[rankType - 1] = rankInfo;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
                return(false);
            }
            return(true);
        }
Example #19
0
		public int ZhengDuoSign(int serverID, int bhid, int usedTime, int zoneId, string bhName, int bhLevel, long bhZhanLi)
		{
			int week = TimeUtil.GetWeekStartDayIdNow();
			lock (this.Mutex)
			{
				if (this.SyncData.WeekDay == week && this.SyncData.ZhengDuoStep == 1)
				{
					List<ZhengDuoRankData> rankDataList = new List<ZhengDuoRankData>();
					int index = 0;
					for (int i = 0; i < this.SyncData.RankDatas.Length; i++)
					{
						ZhengDuoRankData rankData = this.SyncData.RankDatas[i];
						if (rankData != null && rankData.Bhid != bhid)
						{
							rankDataList.Add(rankData);
							if (rankData.UsedMillisecond < usedTime)
							{
								index = rankDataList.Count;
							}
						}
					}
					if (index < 16)
					{
						ZhengDuoRankData data = new ZhengDuoRankData
						{
							Bhid = bhid,
							UsedMillisecond = usedTime,
							ServerID = serverID,
							ZoneId = zoneId,
							BhName = bhName,
							BhLevel = bhLevel,
							ZhanLi = bhZhanLi,
							Week = week,
							State = 1
						};
						data.Rank1 = index;
						data.Rank2 = 16;
						rankDataList.Insert(index, data);
						LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地提交海选结果#bhid={0},usedTime={1},week={2}", bhid, usedTime, week), null, true);
						for (int i = 0; i < this.SyncData.RankDatas.Length; i++)
						{
							if (i < rankDataList.Count)
							{
								if (this.SyncData.RankDatas[i] != rankDataList[i])
								{
									rankDataList[i].Rank1 = i;
									this._persistence.DBRankUpdata(rankDataList[i]);
								}
								this.SyncData.RankDatas[i] = rankDataList[i];
							}
							else
							{
								this.SyncData.RankDatas[i] = null;
							}
						}
						this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
					}
				}
				else
				{
					LogManager.WriteLog(LogTypes.Error, string.Format("争夺之地提交海选结果失败,非海选时间拒绝提交", new object[0]), null, true);
				}
			}
			return 0;
		}
Example #20
0
		public int ZhengDuoResult(int bhidSuccess, int[] bhids)
		{
			int result;
			if (bhids == null || bhids.Length < 2)
			{
				result = -18;
			}
			else
			{
				int week = TimeUtil.GetWeekStartDayIdNow();
				lock (this.Mutex)
				{
					if (this.SyncData.WeekDay == week && this.SyncData.ZhengDuoStep > 1)
					{
						int successRank = int.MaxValue;
						int rank = this.GetSuccessRank((EZhengDuoStep)this.SyncData.ZhengDuoStep);
						List<ZhengDuoRankData> rankDataList = new List<ZhengDuoRankData>();
						for (int i = 0; i < this.SyncData.RankDatas.Length; i++)
						{
							ZhengDuoRankData rankData = this.SyncData.RankDatas[i];
							if (rankData != null && bhids.Contains(rankData.Bhid))
							{
								rankDataList.Add(rankData);
								if (bhidSuccess > 0)
								{
									if (bhidSuccess == rankData.Bhid)
									{
										successRank = rankData.Rank1;
									}
								}
								else if (successRank > rankData.Rank1)
								{
									successRank = rankData.Rank1;
								}
							}
						}
						if (rankDataList.Any((ZhengDuoRankData x) => x.Rank2 == rank))
						{
							LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地提交淘汰赛结果失败,已过期#successbhid={0},bhid0={1},bhid1={2},week={3}", new object[]
							{
								bhidSuccess,
								bhids[0],
								bhids[1],
								week
							}), null, true);
							return 0;
						}
						if (successRank >= 16)
						{
							return -18;
						}
						ZhengDuoFuBenData fuBenData;
						if (rankDataList.Count > 0 && this.Bhid2FuBenDict.TryGetValue(rankDataList[0].Bhid, out fuBenData))
						{
							fuBenData.State = GameFuBenState.End;
						}
						LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地提交淘汰赛结果#successbhid={0},bhid0={1},bhid1={2},week={3}", new object[]
						{
							bhidSuccess,
							bhids[0],
							bhids[1],
							week
						}), null, true);
						foreach (ZhengDuoRankData data in rankDataList)
						{
							data.State = 0;
							if (data.Rank1 == successRank)
							{
								data.Rank2 = this.GetSuccessRank((EZhengDuoStep)this.SyncData.ZhengDuoStep);
								data.Enemy = 0;
							}
							else
							{
								data.Lose = 1;
							}
							this._persistence.DBRankUpdata(data);
						}
						this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
					}
					else
					{
						LogManager.WriteLog(LogTypes.Error, string.Format("争夺之地提交海选结果失败,非海选时间拒绝提交", new object[0]), null, true);
					}
				}
				result = 0;
			}
			return result;
		}
Example #21
0
        private bool HandleAddEraProcess(KuaFuData <KFEraData> data, EraTaskConfig taskConfig)
        {
            bool result;

            if (taskConfig.EraStage != (int)data.V.EraStage)
            {
                result = false;
            }
            else
            {
                int oldEraStageProcess = data.V.EraStageProcess;
                int oldEraStage        = (int)data.V.EraStage;
                data.V.EraStageProcess = Math.Min(data.V.EraStageProcess + taskConfig.Reward, 100);
                if (data.V.EraStageProcess == 100 && data.V.EraStage < 4)
                {
                    data.V.EraStage        = (byte)Math.Min((int)(data.V.EraStage + 1), 4);
                    data.V.EraStageProcess = 0;
                    AsyncDataItem evItem = new AsyncDataItem(KuaFuEventTypes.JunTuanEraStage, new object[]
                    {
                        data.V.JunTuanID
                    });
                    ClientAgentManager.Instance().BroadCastAsyncEvent(GameTypes.JunTuan, evItem, 0);
                    data.V.EraTimePointList.Add(TimeUtil.NowDateTime());
                }
                if (data.V.EraStageProcess == oldEraStageProcess && (int)data.V.EraStage == oldEraStage)
                {
                    result = false;
                }
                else
                {
                    if (data.V.EraStageProcess == 100 && data.V.EraStage == 4)
                    {
                        data.V.EraTimePointList.Add(TimeUtil.NowDateTime());
                    }
                    this.HandleFastEraStage(data.V);
                    bool          needSort = false;
                    KFEraRankData rankData = this.EraRankList.V.Find((KFEraRankData x) => x.JunTuanID == data.V.JunTuanID);
                    if (null != rankData)
                    {
                        needSort                 = true;
                        rankData.JunTuanID       = data.V.JunTuanID;
                        rankData.EraStage        = data.V.EraStage;
                        rankData.EraStageProcess = data.V.EraStageProcess;
                        rankData.RankTime        = TimeUtil.NowDateTime();
                    }
                    else if (this.EraRankList.V.Count < 5)
                    {
                        needSort                 = true;
                        rankData                 = new KFEraRankData();
                        rankData.JunTuanID       = data.V.JunTuanID;
                        rankData.EraStage        = data.V.EraStage;
                        rankData.EraStageProcess = data.V.EraStageProcess;
                        rankData.RankTime        = TimeUtil.NowDateTime();
                        this.EraRankList.V.Add(rankData);
                    }
                    else
                    {
                        KFEraRankData minRankData = this.EraRankList.V[this.EraRankList.V.Count - 1];
                        if (data.V.EraStage > minRankData.EraStage || (data.V.EraStage == minRankData.EraStage && data.V.EraStageProcess > minRankData.EraStageProcess))
                        {
                            needSort = true;
                            minRankData.JunTuanID       = data.V.JunTuanID;
                            minRankData.EraStage        = data.V.EraStage;
                            minRankData.EraStageProcess = data.V.EraStageProcess;
                            minRankData.RankTime        = TimeUtil.NowDateTime();
                        }
                    }
                    if (needSort)
                    {
                        this.EraRankList.V.Sort(delegate(KFEraRankData left, KFEraRankData right)
                        {
                            int result2;
                            if (left.EraStage > right.EraStage)
                            {
                                result2 = -1;
                            }
                            else if (left.EraStage < right.EraStage)
                            {
                                result2 = 1;
                            }
                            else if (left.EraStageProcess > right.EraStageProcess)
                            {
                                result2 = -1;
                            }
                            else if (left.EraStageProcess < right.EraStageProcess)
                            {
                                result2 = 1;
                            }
                            else if (left.RankTime < right.RankTime)
                            {
                                result2 = -1;
                            }
                            else if (left.RankTime > right.RankTime)
                            {
                                result2 = 1;
                            }
                            else
                            {
                                result2 = 0;
                            }
                            return(result2);
                        });
                        for (int loop = 0; loop < this.EraRankList.V.Count; loop++)
                        {
                            this.EraRankList.V[loop].RankValue = loop + 1;
                        }
                        TimeUtil.AgeByNow(ref this.EraRankList.Age);
                    }
                    result = true;
                }
            }
            return(result);
        }
Example #22
0
		private void ProcessZhengDuoRank(int step, bool notify = true)
		{
			if (step >= 1)
			{
				int rank = this.GetSuccessRank((EZhengDuoStep)step);
				int oldRank = this.GetSuccessRank((EZhengDuoStep)(step - 1));
				int nextRank = this.GetSuccessRank(step + EZhengDuoStep.Preliminarises);
				lock (this.Mutex)
				{
					bool update = false;
					int i;
					if (step >= 2)
					{
						for (i = 0; i < rank; i++)
						{
							bool complete = false;
							int successRank = int.MaxValue;
							List<ZhengDuoRankData> rankDataList = this.GetListByGroup(i, step);
							foreach (ZhengDuoRankData data in rankDataList)
							{
								if (data.Rank2 == rank)
								{
									complete = true;
								}
								else if (data.Rank2 == oldRank && data.Rank1 < successRank)
								{
									successRank = data.Rank1;
								}
							}
							if (!complete && successRank < 16)
							{
								int[] bhids = new int[2];
								foreach (ZhengDuoRankData data in rankDataList)
								{
									data.State = 0;
									if (data.Rank1 == successRank)
									{
										bhids[0] = data.Bhid;
										data.Rank2 = rank;
										data.Enemy = 0;
									}
									else
									{
										bhids[1] = data.Bhid;
										data.Lose = 1;
									}
									this._persistence.DBRankUpdata(data);
								}
								update = true;
								LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地提交淘汰赛结果,无战斗结果,自动判定#successbhid={0},otherBhid={1},week={2}", bhids[0], bhids[1], this.SyncData.WeekDay), null, true);
							}
						}
					}
					i = 0;
					while (i < nextRank)
					{
						bool complete = false;
						List<int> list = new List<int>();
						List<ZhengDuoRankData> rankDataList = this.GetListByGroup(i, step + 1);
						foreach (ZhengDuoRankData data in rankDataList)
						{
							if (data.Rank2 == rank)
							{
								list.Add(data.Rank1);
							}
							else
							{
								data.Lose = 1;
								this._persistence.DBRankUpdata(data);
							}
						}
						if (list.Count == 2)
						{
							this.SyncData.RankDatas[list[0]].Enemy = this.SyncData.RankDatas[list[1]].Bhid;
							this.SyncData.RankDatas[list[1]].Enemy = this.SyncData.RankDatas[list[0]].Bhid;
							LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地分配对手#{0}<==>{1}", this.SyncData.RankDatas[list[0]].Bhid, this.SyncData.RankDatas[list[1]].Bhid), null, true);
							goto IL_3B9;
						}
						if (list.Count == 1)
						{
							this.SyncData.RankDatas[list[0]].Enemy = 0;
							LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地分配对手#{0}无对手,直接晋级", this.SyncData.RankDatas[list[0]].Bhid), null, true);
							goto IL_3B9;
						}
						IL_410:
						i++;
						continue;
						IL_3B9:
						foreach (int r in list)
						{
							ZhengDuoRankData rankData = this.SyncData.RankDatas[r];
							update = true;
							this._persistence.DBRankUpdata(rankData);
						}
						goto IL_410;
					}
					if (notify && update)
					{
						this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
					}
				}
			}
		}
Example #23
0
        private bool LoadRebornRoleData(Dictionary <KeyValuePair <int, int>, KuaFuData <KFRebornRoleData> > RebornRoleDataDict)
        {
            bool result;

            if (null == RebornRoleDataDict)
            {
                result = false;
            }
            else
            {
                try
                {
                    string          strSql = string.Format("SELECT * FROM `t_reborn_roles`", new object[0]);
                    MySqlDataReader sdr    = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KuaFuData <KFRebornRoleData> myData = new KuaFuData <KFRebornRoleData>();
                        myData.V.PtID        = Convert.ToInt32(sdr["ptid"]);
                        myData.V.RoleID      = Convert.ToInt32(sdr["rid"]);
                        myData.V.Lev         = Convert.ToInt32(sdr["lev"]);
                        myData.V.Rarity      = Convert.ToInt32(sdr["rarity"]);
                        myData.V.RarityLast  = Convert.ToInt32(sdr["rarity_last"]);
                        myData.V.Boss        = Convert.ToInt32(sdr["boss"]);
                        myData.V.BossLast    = Convert.ToInt32(sdr["boss_last"]);
                        myData.V.LianSha     = Convert.ToInt32(sdr["liansha"]);
                        myData.V.LianShaLast = Convert.ToInt32(sdr["liansha_last"]);
                        myData.V.ParseBossAwardListString(Convert.ToString(sdr["boss_award"]), myData.V.BossAwardList);
                        myData.V.RoleName = Convert.ToString(sdr["rname"]);
                        string strRankTm = sdr["ranktm_lev"].ToString();
                        if (!string.IsNullOrEmpty(strRankTm))
                        {
                            DateTime.TryParse(strRankTm, out myData.V.RankTmLev);
                        }
                        strRankTm = sdr["ranktm_r"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmR);
                        strRankTm = sdr["ranktm_rl"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmRL);
                        strRankTm = sdr["ranktm_b"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmB);
                        strRankTm = sdr["ranktm_bl"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmBL);
                        strRankTm = sdr["ranktm_ls"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmLS);
                        strRankTm = sdr["ranktm_lsl"].ToString();
                        DateTime.TryParse(strRankTm, out myData.V.RankTmLSL);
                        RebornRoleDataDict[new KeyValuePair <int, int>(myData.V.PtID, myData.V.RoleID)] = myData;
                        myData.V.RoleData4Selector = (sdr["data1"] as byte[]);
                        TimeUtil.AgeByNow(ref myData.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #24
0
        public bool EraDonate(int juntuanid, int taskid, int var1, int var2, int var3)
        {
            bool result;

            lock (this.Mutex)
            {
                if (0 == this.RuntimeData.CurrentEraID)
                {
                    result = false;
                }
                else
                {
                    KuaFuData <KFEraData> data = null;
                    if (!this.EraDataDict.TryGetValue(juntuanid, out data))
                    {
                        result = false;
                    }
                    else
                    {
                        EraTaskConfig taskConfig = null;
                        lock (this.RuntimeData.Mutex)
                        {
                            if (!this.RuntimeData.EraTaskConfigDict.TryGetValue(taskid, out taskConfig))
                            {
                                return(false);
                            }
                        }
                        if (taskConfig.EraID != this.RuntimeData.CurrentEraID)
                        {
                            result = false;
                        }
                        else
                        {
                            EraTaskData taskData = data.V.EraTaskList.Find((EraTaskData x) => x.TaskID == taskid);
                            if (null == taskData)
                            {
                                taskData        = new EraTaskData();
                                taskData.TaskID = taskid;
                                data.V.EraTaskList.Add(taskData);
                            }
                            if (this.CheckTaskComplete(taskData, taskConfig))
                            {
                                result = true;
                            }
                            else
                            {
                                for (int dataidx = 0; dataidx < taskConfig.CompletionCondition.Count; dataidx++)
                                {
                                    int conditionNum = taskConfig.CompletionCondition[dataidx].Value;
                                    switch (dataidx)
                                    {
                                    case 0:
                                        taskData.TaskVal1 = Math.Min(taskData.TaskVal1 + var1, conditionNum);
                                        break;

                                    case 1:
                                        taskData.TaskVal2 = Math.Min(taskData.TaskVal2 + var2, conditionNum);
                                        break;

                                    case 2:
                                        taskData.TaskVal3 = Math.Min(taskData.TaskVal3 + var3, conditionNum);
                                        break;
                                    }
                                }
                                if (this.CheckTaskComplete(taskData, taskConfig))
                                {
                                    if (this.HandleAddEraProcess(data, taskConfig))
                                    {
                                        this.SaveEraData(data.V, true);
                                    }
                                }
                                else
                                {
                                    this.SaveEraData(data.V, false);
                                }
                                this.SaveEraTaskData(juntuanid, taskData);
                                TimeUtil.AgeByNow(ref data.Age);
                                result = true;
                            }
                        }
                    }
                }
            }
            return(result);
        }
Example #25
0
        public bool LoadRebornRankInfo(int rankType, KuaFuData <Dictionary <int, List <KFRebornRankInfo> > > RebornRankDict)
        {
            bool result;

            if (null == RebornRankDict)
            {
                result = false;
            }
            else
            {
                List <KFRebornRankInfo> rankList = null;
                if (!RebornRankDict.V.TryGetValue(rankType, out rankList))
                {
                    rankList = (RebornRankDict.V[rankType] = new List <KFRebornRankInfo>());
                }
                else
                {
                    rankList.Clear();
                }
                try
                {
                    string strSql = this.FormatLoadRebornRankSql(rankType);
                    if (string.IsNullOrEmpty(strSql))
                    {
                        return(false);
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        KFRebornRankInfo rankInfo = new KFRebornRankInfo();
                        rankInfo.Key   = Convert.ToInt32(sdr["a"]);
                        rankInfo.Value = Convert.ToInt32(sdr["b"]);
                        rankInfo.PtID  = Convert.ToInt32(sdr["c"]);
                        KuaFuData <KFRebornRoleData> kfRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(rankInfo.PtID, rankInfo.Key), out kfRoleData))
                        {
                            string             worldRoleID   = ConstData.FormatWorldRoleID(rankInfo.Key, rankInfo.PtID);
                            KuaFuWorldRoleData worldRoleData = TSingleton <KuaFuWorldManager> .getInstance().LoadKuaFuWorldRoleData(rankInfo.Key, rankInfo.PtID, worldRoleID);

                            if (null != worldRoleData)
                            {
                                int KFZoneID = ConstData.ConvertToKuaFuServerID(worldRoleData.ZoneID, worldRoleData.PTID);
                                rankInfo.Param1  = KuaFuServerManager.FormatName(kfRoleData.V.RoleName, KFZoneID);
                                rankInfo.Param2  = worldRoleData.Channel;
                                rankInfo.UserID  = worldRoleData.UserID;
                                rankInfo.tagInfo = kfRoleData;
                            }
                        }
                        rankList.Add(rankInfo);
                    }
                    if (null != RebornRankDict)
                    {
                        TimeUtil.AgeByNow(ref RebornRankDict.Age);
                    }
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #26
0
		public void Update(DateTime now)
		{
			if (!GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System2Dot2))
			{
				bool updateData = false;
				int weekDay = TimeUtil.GetWeekStartDayIdNow();
				TimeSpan timeOfWeek = TimeUtil.GetTimeOfWeekNow();
				lock (this.Mutex)
				{
					if (this.SyncData.WeekDay != weekDay)
					{
						this.SyncData.WeekDay = weekDay;
						updateData = true;
					}
					if (timeOfWeek < this._config.FirstStartTime)
					{
						this.CurrentSceneInfo = null;
						if (this.SyncData.ZhengDuoStep != 0 || this.SyncData.State > 0)
						{
							this.SyncData.ZhengDuoStep = 0;
							this.SyncData.State = 0;
							updateData = true;
						}
					}
					else if (this.CurrentSceneInfo == null)
					{
						ZhengDuoSceneInfo sceneInfo = this.GetCurrentZhengDuoSceneInfo(timeOfWeek);
						if (null == sceneInfo)
						{
							return;
						}
						int stepOld = this._persistence.DBWeekAndStepGet(31);
						if (sceneInfo.Id == 1)
						{
							this.SyncData.ZhengDuoStep = 1;
							this.StepProcessEnd = 0;
							this.ReloadRankDatas(weekDay);
							LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地,进入海选阶段", new object[0]), null, true);
						}
						else if (stepOld == sceneInfo.Id - 1 || stepOld == sceneInfo.Id)
						{
							LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地,进入{0}阶段", (EZhengDuoStep)sceneInfo.Id), null, true);
							this.SyncData.ZhengDuoStep = sceneInfo.Id;
						}
						else
						{
							this.SyncData.ZhengDuoStep = 0;
							this.SyncData.State = 0;
							LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地,因为前阶段的海选或淘汰赛未开启,本期活动不开启#current={0},last={1}", (EZhengDuoStep)sceneInfo.Id, (EZhengDuoStep)stepOld), null, true);
						}
						if (this.SyncData.ZhengDuoStep > 0)
						{
							while (this.StepProcessEnd < this.SyncData.ZhengDuoStep - 1)
							{
								this.StepProcessEnd++;
								this.ProcessZhengDuoRank(this.StepProcessEnd, false);
								this._persistence.DBWeekAndStepSet(32, this.StepProcessEnd);
							}
							this._persistence.DBWeekAndStepSet(31, this.SyncData.ZhengDuoStep);
							if (timeOfWeek >= sceneInfo.TimeBegin && timeOfWeek < sceneInfo.TimeEnd)
							{
								this.SyncData.State = 1;
								int rank = this.GetSuccessRank((EZhengDuoStep)(this.SyncData.ZhengDuoStep - 1));
								foreach (ZhengDuoRankData data in this.SyncData.RankDatas)
								{
									if (data != null && data.Rank2 == rank && data.Lose == 0)
									{
										data.State = 1;
									}
								}
							}
							else
							{
								this.SyncData.State = 0;
							}
						}
						updateData = true;
						this.CurrentSceneInfo = sceneInfo;
					}
					else
					{
						if (this.SyncData.ZhengDuoStep != this.CurrentSceneInfo.Id)
						{
							return;
						}
						if (timeOfWeek < this.CurrentSceneInfo.TimeEnd)
						{
							if (this.SyncData.State == 0)
							{
								this.SyncData.State = 1;
								updateData = true;
							}
						}
						else if (timeOfWeek < this.CurrentSceneInfo.TimeProcessEnd)
						{
							if (this.SyncData.State == 1)
							{
								LogManager.WriteLog(LogTypes.Info, string.Format("争夺之地,结束战斗状态#step={0}", (EZhengDuoStep)this.CurrentSceneInfo.Id), null, true);
								this.SyncData.State = 0;
								updateData = true;
							}
							if (this.StepProcessEnd < this.CurrentSceneInfo.Id)
							{
								bool end = true;
								foreach (ZhengDuoRankData item in this.SyncData.RankDatas)
								{
									if (item != null && item.State > 0)
									{
										end = false;
										break;
									}
								}
								if (end)
								{
									this.ClearZhengDuoFuBenData();
									this.StepProcessEnd++;
									this.ProcessZhengDuoRank(this.StepProcessEnd, false);
									this._persistence.DBWeekAndStepSet(32, this.StepProcessEnd);
									updateData = true;
								}
							}
						}
						else if (timeOfWeek < this.CurrentSceneInfo.NextTime)
						{
							if (this.SyncData.State == 1)
							{
								this.SyncData.State = 0;
								updateData = true;
							}
							if (this.StepProcessEnd < this.CurrentSceneInfo.Id)
							{
								this.ClearZhengDuoFuBenData();
								this.StepProcessEnd++;
								this.ProcessZhengDuoRank(this.StepProcessEnd, false);
								this._persistence.DBWeekAndStepSet(32, this.StepProcessEnd);
								updateData = true;
							}
							long age = TimeUtil.NOW();
							if (age - this.SyncData.Age > 75000L && timeOfWeek < this.CurrentSceneInfo.TimeProcessEnd)
							{
								updateData = true;
							}
						}
						else
						{
							this.CurrentSceneInfo = null;
						}
					}
					if (updateData)
					{
						this.SyncData.Age = TimeUtil.AgeByNow(this.SyncData.Age);
						ClientAgentManager.Instance().BroadCastAsyncEvent(this.EvItemGameType, new AsyncDataItem(KuaFuEventTypes.UpdateZhengDuoSyncData, new object[]
						{
							this.SyncData
						}), 0);
					}
				}
			}
		}
Example #27
0
        public void RebornOpt(int ptid, int rid, int optType, int param1, int param2, string param3)
        {
            try
            {
                lock (this.Mutex)
                {
                    switch (optType)
                    {
                    case 0:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.Lev = param1;
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 1, true);
                        }
                        break;
                    }

                    case 1:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.Rarity += param1;
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 2, true);
                        }
                        break;
                    }

                    case 2:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.Boss += param1;
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 8, true);
                        }
                        break;
                    }

                    case 3:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            if (param1 > kfRebornRoleData.V.LianSha)
                            {
                                kfRebornRoleData.V.LianSha = param1;
                                TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                                this.Persistence.UpdateRebornRoleData(kfRebornRoleData.V, 32, true);
                            }
                        }
                        break;
                    }

                    case 4:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            KFRebornBossAwardData myData = new KFRebornBossAwardData();
                            myData.MapCodeID = param1;
                            myData.LineID    = param2;
                            string[] fields = param3.Split(new char[]
                                {
                                    ','
                                });
                            if (fields.Length == 2)
                            {
                                myData.ExtensionID = Global.SafeConvertToInt32(fields[0]);
                                myData.RankNum     = Global.SafeConvertToInt32(fields[1]);
                            }
                            KFRebornBossAwardData awardData = kfRebornRoleData.V.BossAwardList.Find((KFRebornBossAwardData x) => x.MapCodeID == myData.MapCodeID && x.LineID == myData.LineID);
                            if (null != awardData)
                            {
                                awardData.MapCodeID   = myData.MapCodeID;
                                awardData.LineID      = myData.LineID;
                                awardData.ExtensionID = myData.ExtensionID;
                                awardData.RankNum     = myData.RankNum;
                            }
                            else
                            {
                                kfRebornRoleData.V.BossAwardList.Add(myData);
                            }
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleDataBossAward(kfRebornRoleData.V);
                        }
                        break;
                    }

                    case 5:
                    {
                        KuaFuData <KFRebornRoleData> kfRebornRoleData = null;
                        if (this.RebornRoleDataDict.TryGetValue(new KeyValuePair <int, int>(ptid, rid), out kfRebornRoleData))
                        {
                            kfRebornRoleData.V.BossAwardList.RemoveAll((KFRebornBossAwardData x) => x.MapCodeID == param1 && x.LineID == param2 && x.ExtensionID == Global.SafeConvertToInt32(param3));
                            TimeUtil.AgeByNow(ref kfRebornRoleData.Age);
                            this.Persistence.UpdateRebornRoleDataBossAward(kfRebornRoleData.V);
                        }
                        break;
                    }

                    case 6:
                    {
                        KeyValuePair <int, int> key = new KeyValuePair <int, int>(param1, param2);
                        KFRebornBossRefreshData myData2;
                        if (!this.BossRefreshDict.V.TryGetValue(key, out myData2))
                        {
                            myData2 = new KFRebornBossRefreshData();
                            this.BossRefreshDict.V[key] = myData2;
                        }
                        myData2.MapCodeID = param1;
                        myData2.LineID    = param2;
                        string[] fields = param3.Split(new char[]
                            {
                                ','
                            });
                        if (fields.Length == 2)
                        {
                            myData2.ExtensionID = Global.SafeConvertToInt32(fields[0]);
                            myData2.NextTime    = fields[1];
                        }
                        TimeUtil.AgeByNow(ref this.BossRefreshDict.Age);
                        break;
                    }
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteException(ex.ToString());
            }
        }
        private bool LoadBHMatchRankInfo(int rankType, int seasonCur, int seasonLast, KuaFuData <Dictionary <int, List <BangHuiMatchRankInfo> > > BHMatchRankInfoDict)
        {
            bool result;

            if (null == BHMatchRankInfoDict)
            {
                result = false;
            }
            else
            {
                List <BangHuiMatchRankInfo> rankList = null;
                if (!BHMatchRankInfoDict.V.TryGetValue(rankType, out rankList))
                {
                    rankList = (BHMatchRankInfoDict.V[rankType] = new List <BangHuiMatchRankInfo>());
                }
                else
                {
                    rankList.Clear();
                }
                try
                {
                    string strSql = this.FormatLoadBHMatchRankSql(rankType, seasonCur, seasonLast);
                    if (string.IsNullOrEmpty(strSql))
                    {
                        return(false);
                    }
                    MySqlDataReader sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                    while (sdr != null && sdr.Read())
                    {
                        BangHuiMatchRankInfo rankInfo = new BangHuiMatchRankInfo();
                        rankInfo.Key   = Convert.ToInt32(sdr["a"]);
                        rankInfo.Value = Convert.ToInt32(sdr["b"]);
                        switch (rankType)
                        {
                        case 4:
                        case 6:
                        case 10:
                        case 12:
                        {
                            string   strParam = string.Format("SELECT zoneid,rname FROM t_banghui_match_roles WHERE `type`={0} AND rid={1};", 1, rankInfo.Key);
                            object[] arr;
                            if (DbHelperMySQL.GetSingleValues(strParam, out arr) >= 0)
                            {
                                rankInfo.Param1 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            string strParam2 = string.Format("SELECT zoneid_bh,bhname FROM t_banghui_match_bh, \r\n                                                (SELECT bhid FROM t_banghui_match_roles WHERE `type`={0} AND rid={1}) a1 WHERE t_banghui_match_bh.bhid = a1.bhid;", 1, rankInfo.Key);
                            if (DbHelperMySQL.GetSingleValues(strParam2, out arr) >= 0)
                            {
                                rankInfo.Param2 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            rankList.Add(rankInfo);
                            break;
                        }

                        case 5:
                        case 7:
                        case 11:
                        case 13:
                        {
                            string strParam = string.Format("SELECT zoneid,rname FROM t_banghui_match_roles WHERE `type`={0} AND rid={1};", 2, rankInfo.Key);
                            rankInfo.Param1 = Convert.ToString(DbHelperMySQL.GetSingle(strParam));
                            object[] arr;
                            if (DbHelperMySQL.GetSingleValues(strParam, out arr) >= 0)
                            {
                                rankInfo.Param1 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            string strParam2 = string.Format("SELECT zoneid_bh,bhname FROM t_banghui_match_bh, \r\n                                                (SELECT bhid FROM t_banghui_match_roles WHERE `type`={0} AND rid={1}) a1 WHERE t_banghui_match_bh.bhid = a1.bhid;", 2, rankInfo.Key);
                            if (DbHelperMySQL.GetSingleValues(strParam2, out arr) >= 0)
                            {
                                rankInfo.Param2 = KuaFuServerManager.FormatName(Convert.ToInt32(arr[0]), arr[1].ToString());
                            }
                            rankList.Add(rankInfo);
                            break;
                        }

                        case 8:
                        case 9:
                            goto IL_24B;

                        default:
                            goto IL_24B;
                        }
                        continue;
IL_24B:
                        KuaFuData <BHMatchBHData> bhData = null;
                        if (this.BHMatchBHDataDict_Gold.TryGetValue(rankInfo.Key, out bhData))
                        {
                            rankInfo.Param1 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                            rankInfo.Param2 = KuaFuServerManager.FormatName(bhData.V.zoneid_r, bhData.V.rname);
                            rankList.Add(rankInfo);
                        }
                        else if (this.BHMatchBHDataDict_Rookie.TryGetValue(rankInfo.Key, out bhData))
                        {
                            rankInfo.Param1 = KuaFuServerManager.FormatName(bhData.V.zoneid_bh, bhData.V.bhname);
                            rankInfo.Param2 = KuaFuServerManager.FormatName(bhData.V.zoneid_r, bhData.V.rname);
                            rankList.Add(rankInfo);
                        }
                    }
                    TimeUtil.AgeByNow(ref BHMatchRankInfoDict.Age);
                    if (sdr != null)
                    {
                        sdr.Close();
                    }
                }
                catch (Exception ex)
                {
                    LogManager.WriteExceptionUseCache(ex.ToString());
                    return(false);
                }
                result = true;
            }
            return(result);
        }
Example #29
0
        private void MS_RankAnalyse_Update(DateTime now, int param)
        {
            ZorkBattleSceneInfo matchConfig = this.SceneDataDict.Values.FirstOrDefault <ZorkBattleSceneInfo>();

            Zork5v5StateMachine.StateType GameState = Zork5v5StateMachine.StateType.None;
            for (int i = 0; i < matchConfig.TimePoints.Count - 1; i += 2)
            {
                if (now.DayOfWeek == (DayOfWeek)matchConfig.TimePoints[i].Days)
                {
                    int RoundSeconds  = matchConfig.BattleSignSecs + matchConfig.PrepareSecs + matchConfig.FightingSecs + matchConfig.ClearRolesSecs;
                    int MatchPerRound = (int)(matchConfig.SecondsOfDay[i + 1] - matchConfig.SecondsOfDay[i]) / RoundSeconds;
                    for (int matchloop = 0; matchloop < MatchPerRound; matchloop++)
                    {
                        int signSeconds    = (int)matchConfig.SecondsOfDay[i] + RoundSeconds * matchloop;
                        int startSeconds   = signSeconds + matchConfig.BattleSignSecs;
                        int endSeconds     = startSeconds + RoundSeconds - matchConfig.BattleSignSecs;
                        int analyseSeconds = endSeconds + matchConfig.BattleSignSecs / 2;
                        if (this.LastUpdateTime.TimeOfDay.TotalSeconds < (double)analyseSeconds && (double)analyseSeconds <= now.TimeOfDay.TotalSeconds)
                        {
                            if (now.TimeOfDay.TotalSeconds > matchConfig.SecondsOfDay[i + 1])
                            {
                                GameState = Zork5v5StateMachine.StateType.Init;
                            }
                            else
                            {
                                GameState = Zork5v5StateMachine.StateType.SignUp;
                            }
                        }
                    }
                }
            }
            int CalSeasonID = this.ComputeCurrentSeasonID(now, this.CurrentSeasonID);

            if (this.CurrentSeasonID != CalSeasonID)
            {
                GameState = Zork5v5StateMachine.StateType.Init;
            }
            if (Zork5v5StateMachine.StateType.None != GameState)
            {
                this.HandleUnCompleteFuBenData();
                if (this.CurrentSeasonID != CalSeasonID)
                {
                    this.Persistence.SaveZorkSeasonID(this.CurrentSeasonID);
                    this.CurrentSeasonID = CalSeasonID;
                    TianTi5v5Service.ClearAllZhanDuiZorkData();
                    this.ZorkBattleRankInfoDict.V.Clear();
                    TimeUtil.AgeByNow(ref this.ZorkBattleRankInfoDict.Age);
                }
                else
                {
                    this.ReloadRankInfo(0, this.ZorkBattleRankInfoDict);
                    this.ReloadRankInfo(1, this.ZorkBattleRankInfoDict);
                }
                this.CurrentRound = this.GetCurrentRoundByTime(now, this.CurrentSeasonID);
                ZorkBattleSceneInfo sceneConfig = this.SceneDataDict.Values.FirstOrDefault <ZorkBattleSceneInfo>();
                if (this.CurrentRound > sceneConfig.SeasonFightRound)
                {
                    List <KFZorkRankInfo> rankList;
                    if (this.ZorkBattleRankInfoDict.V.TryGetValue(0, out rankList) && rankList.Count != 0)
                    {
                        this.TopZhanDui = rankList[0].Key;
                    }
                    else
                    {
                        this.TopZhanDui = 0;
                    }
                    this.Persistence.SaveZorkTopZhanDui(this.TopZhanDui);
                    this.UpdateTopZhanDuiInfo();
                    if (this.ZorkBattleRankInfoDict.V.TryGetValue(1, out rankList) && rankList.Count != 0)
                    {
                        this.TopKiller = rankList[0].Key;
                    }
                    else
                    {
                        this.TopKiller = 0;
                    }
                    this.Persistence.SaveZorkTopKiller(this.TopKiller);
                }
                this.StateMachine.SetCurrState(GameState, now, param);
                LogManager.WriteLog(LogTypes.Analysis, string.Format("Zork::MS_RankAnalyse_Update To:{0} SeasonID:{1} Round:{2}", GameState, this.CurrentSeasonID, this.CurrentRound), null, true);
            }
        }
Example #30
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            DBManager dbMgr  = DBManager.getInstance();
            int       result = 0;

            if (nID <= 3688)
            {
                if (nID != 969)
                {
                    if (nID != 3670)
                    {
                        if (nID == 3688)
                        {
                            AgeDataT <int> requestData = DataHelper.BytesToObject <AgeDataT <int> >(cmdParams, 0, count);
                            AgeDataT <List <TianTi5v5ZhanDuiMiniData> > resultData = new AgeDataT <List <TianTi5v5ZhanDuiMiniData> >(requestData.Age, null);
                            int maxCount = requestData.V;
                            lock (this.Mutex)
                            {
                                if (this.ZhanDuiDataListNeedUpdate)
                                {
                                    List <TianTi5v5ZhanDuiData> list = new List <TianTi5v5ZhanDuiData>();
                                    foreach (AgeDataT <TianTi5v5ZhanDuiData> item in this.ZhanDuiDataDict.Values)
                                    {
                                        if (null != item.V)
                                        {
                                            list.Add(item.V);
                                        }
                                    }
                                    DateTime now = DateTime.Now;
                                    this.MonthStartDateTime = new DateTime(now.Year, now.Month, 1).AddMonths(-1);
                                    list.Sort(new Comparison <TianTi5v5ZhanDuiData>(this.ZhanDuiDataCompare));
                                    this.ZhanDuiDataList.V         = list;
                                    this.ZhanDuiDataListNeedUpdate = false;
                                    TimeUtil.AgeByNow(ref this.ZhanDuiDataList.Age);
                                }
                                if (requestData.Age < this.ZhanDuiDataList.Age)
                                {
                                    resultData.Age = this.ZhanDuiDataList.Age;
                                    resultData.V   = new List <TianTi5v5ZhanDuiMiniData>();
                                    int i = 0;
                                    while (i < this.ZhanDuiDataList.V.Count && i < maxCount)
                                    {
                                        TianTi5v5ZhanDuiData     pData    = this.ZhanDuiDataList.V[i];
                                        TianTi5v5ZhanDuiMiniData miniData = new TianTi5v5ZhanDuiMiniData();
                                        miniData.ZhanDuiID    = pData.ZhanDuiID;
                                        miniData.DuanWeiID    = pData.DuanWeiId;
                                        miniData.DuiZhangName = pData.ZhanDuiName;
                                        miniData.XuanYan      = pData.XuanYan;
                                        miniData.ZhanDouLi    = pData.ZhanDouLi;
                                        miniData.Name         = pData.LeaderRoleName;
                                        miniData.MemberList   = new List <RoleNameLevelData>();
                                        foreach (TianTi5v5ZhanDuiRoleData role2 in pData.teamerList)
                                        {
                                            miniData.MemberList.Add(new RoleNameLevelData(role2.ZhuanSheng, role2.Level, role2.RoleName, role2.RoleID == pData.LeaderRoleID, role2.RoleOcc));
                                        }
                                        resultData.V.Add(miniData);
                                        i++;
                                    }
                                }
                            }
                            client.sendCmd <AgeDataT <List <TianTi5v5ZhanDuiMiniData> > >(nID, resultData);
                        }
                    }
                    else
                    {
                        TianTiLogItemData kf5V5LogItemData = DataHelper.BytesToObject <TianTiLogItemData>(cmdParams, 0, count);
                        if (kf5V5LogItemData != null && kf5V5LogItemData.RoleId > 0)
                        {
                            lock (this.Mutex)
                            {
                                KF5V5RoleLogData pKF5VRoleLogData;
                                if (this.KF5V5RoleLogDataDict.TryGetValue(kf5V5LogItemData.RoleId, out pKF5VRoleLogData))
                                {
                                    pKF5VRoleLogData.LogItemList.Insert(0, kf5V5LogItemData);
                                }
                            }
                            DBWriter.InsertKF5v5ItemLog(DBManager.getInstance(), kf5V5LogItemData);
                        }
                        client.sendCmd <int>(nID, result);
                    }
                }
                else
                {
                    int  roleId   = DataHelper.BytesToObject <int>(cmdParams, 0, count);
                    bool needLoad = false;
                    TianTiRoleLogData tianTiRoleLogData;
                    lock (this.Mutex)
                    {
                        if (!this.TianTiRoleLogDataDict.TryGetValue(roleId, out tianTiRoleLogData))
                        {
                            tianTiRoleLogData = new TianTiRoleLogData();
                            this.TianTiRoleLogDataDict.Add(roleId, tianTiRoleLogData);
                            needLoad = true;
                        }
                    }
                    if (needLoad)
                    {
                        tianTiRoleLogData.LogItemList = DBQuery.GetTianTiLogItemDataList(dbMgr, roleId, 100);
                    }
                    lock (this.Mutex)
                    {
                        if (null != tianTiRoleLogData.LogItemList)
                        {
                            if (tianTiRoleLogData.LogItemList.Count > 0)
                            {
                                if (tianTiRoleLogData.LogItemList.Count > 100)
                                {
                                    int c = tianTiRoleLogData.LogItemList.Count - 100;
                                    if (c > 0)
                                    {
                                        tianTiRoleLogData.LogItemList.RemoveRange(100, c);
                                    }
                                }
                            }
                        }
                    }
                    client.sendCmd <List <TianTiLogItemData> >(nID, tianTiRoleLogData.LogItemList);
                }
            }
            else if (nID <= 3709)
            {
                if (nID != 3699)
                {
                    if (nID == 3709)
                    {
                        int              roleId   = DataHelper.BytesToObject <int>(cmdParams, 0, count);
                        bool             needLoad = false;
                        KF5V5RoleLogData kf5v5RoleLogData;
                        lock (this.Mutex)
                        {
                            if (!this.KF5V5RoleLogDataDict.TryGetValue(roleId, out kf5v5RoleLogData))
                            {
                                kf5v5RoleLogData = new KF5V5RoleLogData();
                                this.KF5V5RoleLogDataDict.Add(roleId, kf5v5RoleLogData);
                                needLoad = true;
                            }
                        }
                        if (needLoad)
                        {
                            kf5v5RoleLogData.LogItemList = DBQuery.GetT5v5ItemDataList(dbMgr, roleId, 100);
                        }
                        lock (this.Mutex)
                        {
                            if (null != kf5v5RoleLogData.LogItemList)
                            {
                                if (kf5v5RoleLogData.LogItemList.Count > 0)
                                {
                                    if (kf5v5RoleLogData.LogItemList.Count > 100)
                                    {
                                        int c = kf5v5RoleLogData.LogItemList.Count - 100;
                                        if (c > 0)
                                        {
                                            kf5v5RoleLogData.LogItemList.RemoveRange(100, c);
                                        }
                                    }
                                }
                            }
                        }
                        client.sendCmd <List <TianTiLogItemData> >(nID, kf5v5RoleLogData.LogItemList);
                    }
                }
                else
                {
                    int zhanDuiID = DataHelper.BytesToObject <int>(cmdParams, 0, count);
                    lock (this.Mutex)
                    {
                        AgeDataT <TianTi5v5ZhanDuiData> zhanDuiData;
                        if (this.ZhanDuiDataDict.TryGetValue(zhanDuiID, out zhanDuiData))
                        {
                            TimeUtil.AgeByNow(ref zhanDuiData.Age);
                            zhanDuiData.V = null;
                            this.ZhanDuiDataListNeedUpdate = true;
                            using (MyDbConnection3 conn = new MyDbConnection3(false))
                            {
                                string cmdText = string.Format("delete from t_kf_5v5_zhandui where zhanduiid={0}", zhanDuiID);
                                result = conn.ExecuteSql(cmdText, new MySQLParameter[0]);
                            }
                        }
                    }
                    client.sendCmd <int>(nID, result);
                }
            }
            else
            {
                switch (nID)
                {
                case 3715:
                {
                    AgeDataT <int> requestData = DataHelper.BytesToObject <AgeDataT <int> >(cmdParams, 0, count);
                    int            zhanDuiID   = requestData.V;
                    AgeDataT <TianTi5v5ZhanDuiData> zhanDuiData;
                    lock (this.Mutex)
                    {
                        if (this.ZhanDuiDataDict.TryGetValue(requestData.V, out zhanDuiData))
                        {
                            if (this.QueryZhanDuiRoleInfo(zhanDuiData.V))
                            {
                                TimeUtil.AgeByNow(ref zhanDuiData.Age);
                            }
                            if (requestData.Age == zhanDuiData.Age || zhanDuiData.V == null)
                            {
                                zhanDuiData = new AgeDataT <TianTi5v5ZhanDuiData>(zhanDuiData.Age, null);
                            }
                            goto IL_91C;
                        }
                    }
                    TianTi5v5ZhanDuiData data = new TianTi5v5ZhanDuiData();
                    using (MyDbConnection3 conn = new MyDbConnection3(false))
                    {
                        string sql = string.Format("select zhanduiname,xuanyan,`leaderid`,duanweiid,duanweijifen,duanweirank,liansheng,fightcount,successcount,lastfighttime,monthduanweirank,zhanli,data1,leaderrolename,zoneid,zorkjifen,zorkwin,zorkwinstreak,zorkbossinjure,zorklastfighttime,escapejifen,escapelastfighttime from t_kf_5v5_zhandui where zhanduiid={0}", zhanDuiID);
                        using (MySQLDataReader reader = conn.ExecuteReader(sql, new MySQLParameter[0]))
                        {
                            if (reader.Read())
                            {
                                data.ZhanDuiID    = zhanDuiID;
                                data.LeaderRoleID = Convert.ToInt32(reader["leaderid"].ToString());
                                data.XuanYan      = reader["xuanyan"].ToString();
                                data.ZhanDuiName  = reader["zhanduiname"].ToString();
                                data.DuanWeiId    = Convert.ToInt32(reader["duanweiid"].ToString());
                                data.ZhanDouLi    = Convert.ToInt64(reader["zhanli"].ToString());
                                byte[] bytes = (reader["data1"] as byte[]) ?? new byte[0];
                                data.teamerList          = DataHelper.BytesToObject <List <TianTi5v5ZhanDuiRoleData> >(bytes, 0, bytes.Length);
                                data.DuanWeiJiFen        = Convert.ToInt32(reader["duanweijifen"].ToString());
                                data.DuanWeiRank         = Convert.ToInt32(reader["duanweirank"].ToString());
                                data.LianSheng           = Convert.ToInt32(reader["liansheng"].ToString());
                                data.FightCount          = Convert.ToInt32(reader["fightcount"].ToString());
                                data.SuccessCount        = Convert.ToInt32(reader["successcount"].ToString());
                                data.LastFightTime       = Convert.ToDateTime(reader["lastfighttime"].ToString());
                                data.MonthDuanWeiRank    = Convert.ToInt32(reader["monthduanweirank"].ToString());
                                data.LeaderRoleName      = reader["leaderrolename"].ToString();
                                data.ZoneID              = Convert.ToInt32(reader["zoneid"].ToString());
                                data.ZorkJiFen           = Convert.ToInt32(reader["zorkjifen"].ToString());
                                data.ZorkWin             = Convert.ToInt32(reader["zorkwin"].ToString());
                                data.ZorkWinStreak       = Convert.ToInt32(reader["zorkwinstreak"].ToString());
                                data.ZorkBossInjure      = Convert.ToInt32(reader["zorkbossinjure"].ToString());
                                data.ZorkLastFightTime   = Convert.ToDateTime(reader["zorklastfighttime"].ToString());
                                data.EscapeJiFen         = Convert.ToInt32(reader["escapejifen"].ToString());
                                data.EscapeLastFightTime = Convert.ToDateTime(reader["escapelastfighttime"].ToString());
                            }
                        }
                    }
                    lock (this.Mutex)
                    {
                        if (data.ZhanDuiID > 0)
                        {
                            if (!this.ZhanDuiDataDict.TryGetValue(requestData.V, out zhanDuiData) || zhanDuiData.V == null)
                            {
                                zhanDuiData = new AgeDataT <TianTi5v5ZhanDuiData>(1L, data);
                                this.ZhanDuiDataDict[requestData.V] = zhanDuiData;
                            }
                        }
                        else
                        {
                            zhanDuiData = new AgeDataT <TianTi5v5ZhanDuiData>(requestData.Age + 1L, null);
                            this.ZhanDuiDataDict[requestData.V] = zhanDuiData;
                        }
                        if (this.QueryZhanDuiRoleInfo(zhanDuiData.V))
                        {
                            TimeUtil.AgeByNow(ref zhanDuiData.Age);
                        }
                    }
IL_91C:
                    client.sendCmd <AgeDataT <TianTi5v5ZhanDuiData> >(nID, zhanDuiData);
                    break;
                }

                case 3716:
                {
                    AgeDataT <TianTi5v5ZhanDuiData> zhanDuiData  = null;
                    AgeDataT <TianTi5v5ZhanDuiData> requestData2 = DataHelper.BytesToObject <AgeDataT <TianTi5v5ZhanDuiData> >(cmdParams, 0, count);
                    if (requestData2 != null && requestData2.V != null)
                    {
                        lock (this.Mutex)
                        {
                            TianTi5v5ZhanDuiData data = requestData2.V;
                            if (!this.ZhanDuiDataDict.TryGetValue(data.ZhanDuiID, out zhanDuiData))
                            {
                                zhanDuiData = new AgeDataT <TianTi5v5ZhanDuiData>(0L, data);
                                this.ZhanDuiDataDict[data.ZhanDuiID] = zhanDuiData;
                                this.ZhanDuiDataListNeedUpdate       = true;
                            }
                            else
                            {
                                if (zhanDuiData.V == null || zhanDuiData.V.LeaderRoleID != requestData2.V.LeaderRoleID || zhanDuiData.V.LeaderRoleName != requestData2.V.LeaderRoleName || zhanDuiData.V.DuanWeiId != requestData2.V.DuanWeiId)
                                {
                                    this.ZhanDuiDataListNeedUpdate = true;
                                }
                                if (requestData2.V.ZhanDuiDataModeType == 1)
                                {
                                    zhanDuiData.V.ZhanDuiID      = data.ZhanDuiID;
                                    zhanDuiData.V.XuanYan        = data.XuanYan;
                                    zhanDuiData.V.ZhanDuiName    = data.ZhanDuiName;
                                    zhanDuiData.V.LeaderRoleID   = data.LeaderRoleID;
                                    zhanDuiData.V.ZhanDouLi      = data.ZhanDouLi;
                                    zhanDuiData.V.teamerList     = data.teamerList;
                                    zhanDuiData.V.TeamerRidList  = data.TeamerRidList;
                                    zhanDuiData.V.LeaderRoleName = data.LeaderRoleName;
                                    zhanDuiData.V.ZoneID         = data.ZoneID;
                                }
                                else if (requestData2.V.ZhanDuiDataModeType == 0)
                                {
                                    zhanDuiData.V.DuanWeiId        = data.DuanWeiId;
                                    zhanDuiData.V.DuanWeiJiFen     = data.DuanWeiJiFen;
                                    zhanDuiData.V.DuanWeiRank      = data.DuanWeiRank;
                                    zhanDuiData.V.ZhanDouLi        = data.ZhanDouLi;
                                    zhanDuiData.V.LianSheng        = data.LianSheng;
                                    zhanDuiData.V.SuccessCount     = data.SuccessCount;
                                    zhanDuiData.V.FightCount       = data.FightCount;
                                    zhanDuiData.V.MonthDuanWeiRank = data.MonthDuanWeiRank;
                                    zhanDuiData.V.LastFightTime    = data.LastFightTime;
                                    using (List <TianTi5v5ZhanDuiRoleData> .Enumerator enumerator2 = zhanDuiData.V.teamerList.GetEnumerator())
                                    {
                                        while (enumerator2.MoveNext())
                                        {
                                            TianTi5v5ZhanDuiRoleData role        = enumerator2.Current;
                                            TianTi5v5ZhanDuiRoleData newRoleInfo = data.teamerList.Find((TianTi5v5ZhanDuiRoleData x) => x.RoleID == role.RoleID);
                                            if (null != newRoleInfo)
                                            {
                                                role.MonthFightCounts = newRoleInfo.MonthFightCounts;
                                                role.TodayFightCount  = newRoleInfo.TodayFightCount;
                                                role.MonthFigntCount  = newRoleInfo.MonthFigntCount;
                                                role.ZhanLi           = newRoleInfo.ZhanLi;
                                                role.RoleOcc          = newRoleInfo.RoleOcc;
                                                role.ZhuanSheng       = newRoleInfo.ZhuanSheng;
                                                role.Level            = newRoleInfo.Level;
                                                role.RebornLevel      = newRoleInfo.RebornLevel;
                                                role.ModelData        = newRoleInfo.ModelData;
                                            }
                                        }
                                    }
                                }
                            }
                            requestData2.Age = TimeUtil.AgeByNow(ref zhanDuiData.Age);
                            using (MyDbConnection3 conn = new MyDbConnection3(false))
                            {
                                data = zhanDuiData.V;
                                if (null != data)
                                {
                                    MySQLParameter p          = new MySQLParameter("@p1", data.ZhanDuiName);
                                    MySQLParameter p2         = new MySQLParameter("@p2", data.XuanYan);
                                    string         teamerList = DataHelper.ObjectToHexString <List <TianTi5v5ZhanDuiRoleData> >(data.teamerList);
                                    string         cmdText    = string.Format("INSERT INTO t_kf_5v5_zhandui (zhanduiid,zhanduiname,xuanyan,`leaderid`,duanweiid,duanweijifen,duanweirank,liansheng,fightcount,successcount,lastfighttime,monthduanweirank,zhanli,data1,leaderrolename,zoneid) VALUES({0},@p1,@p2,{3},{4},{5},{6},{7},{8},{9},'{10}',{11},{12},{14},'{13}',{15}) ON DUPLICATE KEY UPDATE zhanduiname=@p1,xuanyan=@p2,leaderid={3},duanweiid={4},duanweijifen={5},duanweirank={6},liansheng={7},fightcount={8},successcount={9},lastfighttime='{10}',monthduanweirank={11},zhanli={12},data1={14},leaderrolename='{13}',zoneid={15}", new object[]
                                        {
                                            data.ZhanDuiID,
                                            data.ZhanDuiName,
                                            data.XuanYan,
                                            data.LeaderRoleID,
                                            data.DuanWeiId,
                                            data.DuanWeiJiFen,
                                            data.DuanWeiRank,
                                            data.LianSheng,
                                            data.FightCount,
                                            data.SuccessCount,
                                            data.LastFightTime,
                                            data.MonthDuanWeiRank,
                                            data.ZhanDouLi,
                                            data.LeaderRoleName,
                                            teamerList,
                                            data.ZoneID
                                        });
                                    int ret = conn.ExecuteSql(cmdText, new MySQLParameter[]
                                        {
                                            p,
                                            p2
                                        });
                                }
                            }
                        }
                    }
                    client.sendCmd <AgeDataT <TianTi5v5ZhanDuiData> >(nID, zhanDuiData);
                    break;
                }

                case 3717:
                {
                    int[]      args     = DataHelper.BytesToObject <int[]>(cmdParams, 0, count);
                    DBRoleInfo roleInfo = dbMgr.GetDBRoleInfo(ref args[0]);
                    if (null != roleInfo)
                    {
                        roleInfo.ZhanDuiID    = args[1];
                        roleInfo.ZhanDuiZhiWu = args[2];
                        using (MyDbConnection3 conn = new MyDbConnection3(false))
                        {
                            string cmdText = string.Format("update t_roles set zhanduiid={1},zhanduizhiwu={2} where rid={0}", roleInfo.RoleID, roleInfo.ZhanDuiID, roleInfo.ZhanDuiZhiWu);
                            result = conn.ExecuteSql(cmdText, new MySQLParameter[0]);
                        }
                    }
                    client.sendCmd <int>(nID, result);
                    break;
                }

                case 3718:
                case 3719:
                case 3720:
                case 3721:
                    break;

                case 3722:
                {
                    AgeDataT <TianTi5v5ZhanDuiData> zhanDuiData  = null;
                    AgeDataT <TianTi5v5ZhanDuiData> requestData2 = DataHelper.BytesToObject <AgeDataT <TianTi5v5ZhanDuiData> >(cmdParams, 0, count);
                    if (requestData2 != null && requestData2.V != null)
                    {
                        lock (this.Mutex)
                        {
                            TianTi5v5ZhanDuiData data = requestData2.V;
                            if (!this.ZhanDuiDataDict.TryGetValue(data.ZhanDuiID, out zhanDuiData))
                            {
                                client.sendCmd(30767, "0");
                                break;
                            }
                            zhanDuiData.V.ZorkJiFen         = data.ZorkJiFen;
                            zhanDuiData.V.ZorkWin           = data.ZorkWin;
                            zhanDuiData.V.ZorkWinStreak     = data.ZorkWinStreak;
                            zhanDuiData.V.ZorkBossInjure    = data.ZorkBossInjure;
                            zhanDuiData.V.ZorkLastFightTime = data.ZorkLastFightTime;
                            requestData2.Age = TimeUtil.AgeByNow(ref zhanDuiData.Age);
                            using (MyDbConnection3 conn = new MyDbConnection3(false))
                            {
                                string cmdText = string.Format("UPDATE t_kf_5v5_zhandui SET zorkjifen={1}, zorkwin={2}, zorkwinstreak={3}, zorkbossinjure={4}, zorklastfighttime='{5}' WHERE zhanduiid={0}; ", new object[]
                                    {
                                        data.ZhanDuiID,
                                        data.ZorkJiFen,
                                        data.ZorkWin,
                                        data.ZorkWinStreak,
                                        data.ZorkBossInjure,
                                        data.ZorkLastFightTime
                                    });
                                int ret = conn.ExecuteSql(cmdText, new MySQLParameter[0]);
                            }
                        }
                    }
                    client.sendCmd <AgeDataT <TianTi5v5ZhanDuiData> >(nID, zhanDuiData);
                    break;
                }

                case 3723:
                {
                    AgeDataT <TianTi5v5ZhanDuiData> zhanDuiData  = null;
                    AgeDataT <TianTi5v5ZhanDuiData> requestData2 = DataHelper.BytesToObject <AgeDataT <TianTi5v5ZhanDuiData> >(cmdParams, 0, count);
                    if (requestData2 != null && requestData2.V != null)
                    {
                        lock (this.Mutex)
                        {
                            TianTi5v5ZhanDuiData data = requestData2.V;
                            if (!this.ZhanDuiDataDict.TryGetValue(data.ZhanDuiID, out zhanDuiData))
                            {
                                client.sendCmd(30767, "0");
                                break;
                            }
                            zhanDuiData.V.EscapeJiFen         = data.EscapeJiFen;
                            zhanDuiData.V.EscapeLastFightTime = data.EscapeLastFightTime;
                            requestData2.Age = TimeUtil.AgeByNow(ref zhanDuiData.Age);
                            using (MyDbConnection3 conn = new MyDbConnection3(false))
                            {
                                string cmdText = string.Format("UPDATE t_kf_5v5_zhandui SET escapejifen={1}, escapelastfighttime='{2}' WHERE zhanduiid={0}; ", data.ZhanDuiID, data.EscapeJiFen, data.EscapeLastFightTime);
                                int    ret     = conn.ExecuteSql(cmdText, new MySQLParameter[0]);
                            }
                        }
                    }
                    client.sendCmd <AgeDataT <TianTi5v5ZhanDuiData> >(nID, zhanDuiData);
                    break;
                }

                default:
                    switch (nID)
                    {
                    case 10200:
                    {
                        TianTiLogItemData tianTiLogItemData = DataHelper.BytesToObject <TianTiLogItemData>(cmdParams, 0, count);
                        if (tianTiLogItemData != null && tianTiLogItemData.RoleId > 0)
                        {
                            lock (this.Mutex)
                            {
                                TianTiRoleLogData tianTiRoleLogData;
                                if (this.TianTiRoleLogDataDict.TryGetValue(tianTiLogItemData.RoleId, out tianTiRoleLogData))
                                {
                                    tianTiRoleLogData.LogItemList.Insert(0, tianTiLogItemData);
                                }
                            }
                            DBWriter.InsertTianTiItemLog(DBManager.getInstance(), tianTiLogItemData);
                        }
                        client.sendCmd <int>(nID, result);
                        break;
                    }

                    case 10201:
                    {
                        RoleTianTiData roleTianTiData = DataHelper.BytesToObject <RoleTianTiData>(cmdParams, 0, count);
                        if (null != roleTianTiData)
                        {
                            DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleTianTiData.RoleId);
                            if (null != dbRoleInfo)
                            {
                                lock (dbRoleInfo)
                                {
                                    dbRoleInfo.TianTiData = roleTianTiData;
                                    DBWriter.UpdateTianTiRoleData(dbMgr, roleTianTiData);
                                }
                            }
                        }
                        client.sendCmd <int>(nID, result);
                        break;
                    }

                    case 10202:
                    {
                        int[] dataArray = DataHelper.BytesToObject <int[]>(cmdParams, 0, count);
                        if (dataArray != null && dataArray.Length == 2)
                        {
                            DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref dataArray[0]);
                            if (null != dbRoleInfo)
                            {
                                lock (dbRoleInfo)
                                {
                                    dbRoleInfo.TianTiData.RongYao = dataArray[1];
                                    if (dbRoleInfo.TianTiData.LastFightDayId > 0)
                                    {
                                        result = DBWriter.UpdateTianTiRoleRongYao(dbMgr, dataArray[0], dataArray[1]);
                                    }
                                    else
                                    {
                                        result = DBWriter.UpdateTianTiRoleData(dbMgr, dbRoleInfo.TianTiData);
                                    }
                                }
                            }
                        }
                        client.sendCmd <int>(nID, result);
                        break;
                    }
                    }
                    break;
                }
            }
        }