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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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()); } }
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(); } } }
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; }
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); }
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; }
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; }
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); }
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); } } } }
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); }
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); }
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); }
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); } } } }
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); }
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); } }
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; } } }