public static void ProcessPaiHang(DBManager dbMgr, bool force = false) { if (force) { PaiHangManager.LoadPaiHangLists(dbMgr); } else { DateTime dateTime = DateTime.Now; long nowTicks = dateTime.Ticks / 10000L; if (nowTicks - PaiHangManager.LastUpdatePaiHangTickTimer >= 1800000L) { PaiHangManager.LastUpdatePaiHangTickTimer = nowTicks; PaiHangManager.LoadPaiHangLists(dbMgr); } else { int dayID = dateTime.DayOfYear; if (dayID != PaiHangManager.LastCheckPaiHangDayID) { PaiHangManager.LastCheckPaiHangDayID = dayID; string gmCmdData = string.Format("-updatepaihangbang", new object[0]); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } } } }
public static void DoDestroyBangHui(DBManager dbMgr, int bhid) { lock (Global.BangHuiMutex) { DBWriter.DeleteBangHui(dbMgr, bhid); GameDBManager.BangHuiJunQiMgr.RemoveBangHuiJunQi(bhid); DBWriter.ClearAllRoleBangHuiInfo(dbMgr, bhid); List <DBRoleInfo> dbRoleInfoList = dbMgr.DBRoleMgr.GetCachingDBRoleInfoListByFaction(bhid); if (null != dbRoleInfoList) { for (int i = 0; i < dbRoleInfoList.Count; i++) { dbRoleInfoList[i].Faction = 0; dbRoleInfoList[i].BHName = ""; dbRoleInfoList[i].BHZhiWu = 0; } } } DBWriter.ClearBHLingDiByID(dbMgr, bhid); GameDBManager.BangHuiLingDiMgr.ClearBangHuiLingDi(bhid); ZhanMengShiJianManager.getInstance().onZhanMengJieSan(bhid); string gmCmdData = string.Format("-synclingdi", new object[0]); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); }
private static void _ProcessBuyYueKa(DBManager dbMgr, DBUserInfo dbUserInfo) { int rid = DBQuery.LastLoginRole(dbMgr, dbUserInfo.UserID); string gmCmdData = string.Format("-buyyueka {0} {1}", dbUserInfo.UserID, rid); LogManager.WriteLog(LogTypes.Error, string.Format("处理玩家购买月卡,userid={0}, roleid={1}", dbUserInfo.UserID, rid), null, true); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); }
public static void ClearBangHuiLingDi(DBManager dbMgr, int bhid) { lock (Global.BangHuiMutex) { GameDBManager.BangHuiJunQiMgr.RemoveBangHuiJunQi(bhid); } DBWriter.ClearBHLingDiByID(dbMgr, bhid); GameDBManager.BangHuiLingDiMgr.ClearBangHuiLingDi(bhid); string gmCmdData = string.Format("-synclingdi", new object[0]); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); }
public static void ScanLastMails(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000L; if (nowTicks - UserMailManager.LastScanMailTicks >= 30000L) { UserMailManager.LastScanMailTicks = nowTicks; Dictionary <int, int> lastMailDict = DBQuery.ScanLastMailIDListFromTable(dbMgr); if (lastMailDict != null && lastMailDict.Count > 0) { string gmCmd = ""; string mailIDsToDel = ""; foreach (KeyValuePair <int, int> item in lastMailDict) { int roleID = item.Key; DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null != dbRoleInfo) { if (gmCmd.Length > 0) { gmCmd += "_"; } dbRoleInfo.LastMailID = item.Value; gmCmd += string.Format("{0}|{1}", dbRoleInfo.RoleID, item.Value); } else { DBWriter.UpdateRoleLastMail(dbMgr, item.Key, item.Value); } if (mailIDsToDel.Length > 0) { mailIDsToDel += ","; } mailIDsToDel += item.Value; } if (gmCmd.Length > 0) { string gmCmdData = string.Format("-notifymail {0}", gmCmd); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } if (mailIDsToDel.Length >= 0) { DBWriter.DeleteLastScanMailIDs(dbMgr, lastMailDict); } } } }
/// <summary> /// 发送给gameserver 增加角色绑钻 /// </summary> /// <param name="dbMgr"></param> /// <param name="uid"></param> /// <param name="rid"></param> /// <param name="addMoney"></param> public static void SendToRolebindgold(DBManager dbMgr, string uid, int rid, int addMoney) { string data = GetFirstChargeInfo(dbMgr, uid); if (_FirstChargeConfig == null) { LogManager.WriteException("送绑钻失败,配置表信息为空 uid=" + uid + " money=" + addMoney); return; } if (!_FirstChargeConfig.ContainsKey(addMoney)) { return; } if (!string.IsNullOrEmpty(data)) { string[] datalist = data.Split(','); foreach (string item in datalist) { //已经充过了 if (item == addMoney.ToString()) { return; } } data += "," + addMoney; } else { data = "" + addMoney; } int bindMoney = _FirstChargeConfig[addMoney]; //更新数据库首次记录 bool svResoult = UpdateFirstCharge(dbMgr, uid, data); if (!svResoult) { LogManager.WriteException("送绑钻失败,保存数据库失败 uid=" + uid + " money=" + addMoney); return; } //添加GM命令消息 string gmCmdData = string.Format("-updateBindgold {0} {1} {2} {3}", uid, rid, bindMoney, data); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); }
/// <summary> /// 扫描GM命令流水发送到客户端 /// </summary> public static void ScanGMMsgToGameServer(DBManager dbMgr) { try { long nowTicks = DateTime.Now.Ticks / 10000; if (nowTicks - LastScanInputGMMsgTicks < (10 * 1000)) { return; } LastScanInputGMMsgTicks = nowTicks; List <string> msgList = new List <string>(); /// 查询GM命令的,并且写入日志中 DBQuery.ScanGMMsgFromTable(dbMgr, msgList); // 如果是-config -- 更新缓存 [9/22/2013 LiaoWei] bool reloadConfig = false; for (int i = 0; i < msgList.Count; i++) { string msg = msgList[i].Replace(":", ":"); ChatMsgManager.AddGMCmdChatMsg(-1, msg); if (msg.IndexOf("-config ") >= 0) { reloadConfig = true; } } if (reloadConfig) { // 注意!! [9/22/2013 LiaoWei] GameDBManager.GameConfigMgr.LoadGameConfigFromDB(dbMgr); } } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("扫描GM命令表时发生了错误")); } }
public void UpdatePreDeleteRole() { lock (this._PreDeleteRoleDict) { DBManager dbMgr = DBManager.getInstance(); List <PreDeleteRoleInfo> DeleteRoleInfoList = new List <PreDeleteRoleInfo>(); foreach (KeyValuePair <int, DateTime> kvp in this._PreDeleteRoleDict) { if ((TimeUtil.NowDateTime() - kvp.Value).TotalSeconds >= (double)GameDBManager.PreDeleteRoleDelaySeconds) { int roleID = kvp.Key; PreDeleteRoleInfo DelInfo = new PreDeleteRoleInfo(); DelInfo.RoleID = roleID; DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null != dbRoleInfo) { DelInfo.UserID = dbRoleInfo.UserID; DelInfo.ZoneID = dbRoleInfo.ZoneID; bool ret = false; bool hasrole = DBQuery.GetUserRole(dbMgr, dbRoleInfo.UserID, roleID); if (hasrole) { ret = DBWriter.RemoveRole(dbMgr, roleID); } DBUserInfo dbUserInfo = dbMgr.GetDBUserInfo(dbRoleInfo.UserID); if (ret && null != dbUserInfo) { DeleteRoleInfoList.Add(DelInfo); this.HandleDeleteRole(dbUserInfo, dbRoleInfo); } } } } foreach (PreDeleteRoleInfo data in DeleteRoleInfoList) { string gmCmdData = string.Format("-deleterole {0} {1} {2}", data.UserID, data.RoleID, data.ZoneID); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); this._PreDeleteRoleDict.Remove(data.RoleID); } } }
public static void ScanLastGroupMails(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000L; if (nowTicks - GroupMailManager.LastScanGroupMailTicks >= 30000L) { GroupMailManager.LastScanGroupMailTicks = nowTicks; List <GroupMailData> GroupMailList = DBQuery.ScanNewGroupMailFromTable(dbMgr, GroupMailManager.LastMaxGroupMailID); if (GroupMailList != null && GroupMailList.Count > 0) { foreach (GroupMailData item in GroupMailList) { GroupMailManager.AddGroupMailData(item); if (item.GMailID > GroupMailManager.LastMaxGroupMailID) { GroupMailManager.LastMaxGroupMailID = item.GMailID; } } string gmCmdData = string.Format("-notifygmail ", new object[0]); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } } }
private static void HandleDestroyBangHuis(DBManager dbMgr) { int moneyPerLevel = GameDBManager.GameConfigMgr.GetGameConfigItemInt("money-per-qilevel", 10000); if (moneyPerLevel > 0) { DBWriter.SubBangHuiTongQianByQiLevel(dbMgr, moneyPerLevel); int maxLevel = GameDBManager.GameConfigMgr.GetGameConfigItemInt("juntuanbanghuimax", 8); string goldjoin = GameDBManager.GameConfigMgr.GetGameConfigItemStr("bhmatch_goldjoin", ""); List <int> goldjoinList = ConfigHelper.String2IntList(goldjoin, '|'); List <int> noMoneyBangHuiList = DBQuery.GetNoMoneyBangHuiList(dbMgr, maxLevel); for (int i = 0; i < noMoneyBangHuiList.Count; i++) { int bhid = noMoneyBangHuiList[i]; if (!goldjoinList.Exists((int x) => x == bhid)) { BangHuiDestroyMgr.DoDestroyBangHui(dbMgr, bhid); string gmCmdData = string.Format("-autodestroybh {0}", bhid); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } } } }
/// <summary> /// 处理解散帮会 /// </summary> /// <param name="dbMgr"></param> private static void HandleDestroyBangHuis(DBManager dbMgr) { // 临时注释掉战盟解散代码 [5/11/2014 LiaoWei] int moneyPerLevel = GameDBManager.GameConfigMgr.GetGameConfigItemInt("money-per-qilevel", 10000); //执行扣除战盟维护资金 DBWriter.SubBangHuiTongQianByQiLevel(dbMgr, moneyPerLevel); //获取帮会列表数据 List <int> noMoneyBangHuiList = DBQuery.GetNoMoneyBangHuiList(dbMgr); for (int i = 0; i < noMoneyBangHuiList.Count; i++) { int bhid = noMoneyBangHuiList[i]; //执行删除帮会的操作 BangHuiDestroyMgr.DoDestroyBangHui(dbMgr, bhid); //添加GM命令消息 string gmCmdData = string.Format("-autodestroybh {0}", bhid); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } }
private static void _ProcessCharge(DBManager dbMgr, DBUserInfo dbUserInfo, int chargeRoleID, int addUserMoney, int zhigouID, string chargeTm, SingleChargeData chargeData, bool bZhiGouFail = false) { int currentGiftID = GameDBManager.GameConfigMgr.GetGameConfigItemInt("big_award_id", 0); int moneyToYuanBao = GameDBManager.GameConfigMgr.GetGameConfigItemInt("money-to-yuanbao", 10); int moneyToJiFen = GameDBManager.GameConfigMgr.GetGameConfigItemInt("money-to-jifen", 1); int ChargeID = 0; chargeData.MoneyVsChargeIDDict.TryGetValue(addUserMoney, out ChargeID); bool bWillGiveZuanShi = zhigouID == 0 && (chargeData.ChargePlatType == 1 || addUserMoney != chargeData.YueKaMoney); bool bSystemProcessCharge = chargeRoleID == -1; bool bProcessBuyItem = zhigouID != 0 && chargeRoleID > 0; lock (dbUserInfo) { if (bWillGiveZuanShi) { dbUserInfo.Money += addUserMoney * moneyToYuanBao; if (dbUserInfo.Money < 0) { LogManager.WriteLog(LogTypes.Error, string.Format("充值后玩家元宝变负数修正为0, UserID={0}, Money={1}, AddMoney={2}", dbUserInfo.UserID, dbUserInfo.Money, addUserMoney), null, true); dbUserInfo.Money = 0; } } if (!bSystemProcessCharge && !bZhiGouFail) { dbUserInfo.RealMoney += addUserMoney; if (dbUserInfo.RealMoney < 0) { LogManager.WriteLog(LogTypes.Error, string.Format("充值后玩家realmoney变负数修正为0, UserID={0}, Money={1}, AddMoney={2}", dbUserInfo.UserID, dbUserInfo.RealMoney, addUserMoney), null, true); dbUserInfo.RealMoney = 0; } if (currentGiftID != dbUserInfo.GiftID) { dbUserInfo.GiftJiFen = 0; dbUserInfo.GiftID = currentGiftID; } if (dbUserInfo.GiftID > 0) { dbUserInfo.GiftJiFen += addUserMoney * moneyToJiFen; } } int userMoney = dbUserInfo.Money; int realMoney = dbUserInfo.RealMoney; int giftID = dbUserInfo.GiftID; int giftJiFen = dbUserInfo.GiftJiFen; DBWriter.UpdateUserInfo(dbMgr, dbUserInfo); } DBRoleInfo dbRoleInfo = Global.FindOnlineRoleInfoByUserInfo(dbMgr, dbUserInfo); if (dbRoleInfo != null && !bZhiGouFail) { DBWriter.UpdateCityInfoItem(dbMgr, dbRoleInfo.LastIP, dbRoleInfo.UserID, "inputmoney", addUserMoney * moneyToYuanBao); } int rid = chargeRoleID; if (!bSystemProcessCharge && !bProcessBuyItem) { rid = DBQuery.LastLoginRole(dbMgr, dbUserInfo.UserID); } int addUserYuanBao = Global.TransMoneyToYuanBao(addUserMoney); if (bProcessBuyItem) { UserMoneyMgr._ProcessBuyItem(dbMgr, dbUserInfo, chargeRoleID, addUserMoney, zhigouID, chargeTm); } int superInputFanLi = 0; if (!bProcessBuyItem && addUserMoney != chargeData.YueKaMoney && !bZhiGouFail) { superInputFanLi = UserMoneyMgr._ProcessSuperInputFanLi(dbMgr, dbUserInfo, chargeData, addUserMoney, ChargeID, chargeTm); } if (!bSystemProcessCharge && bWillGiveZuanShi) { CFirstChargeMgr.SendToRolebindgold(dbMgr, dbUserInfo.UserID, rid, addUserMoney, chargeData); } if (!bSystemProcessCharge && !bZhiGouFail) { SingletonTemplate <FundManager> .Instance().FundAddMoney(dbUserInfo.UserID, addUserYuanBao, rid, 0); GameDBManager.RankCacheMgr.OnUserDoSomething(rid, RankType.Charge, addUserYuanBao); } string gmCmdData = string.Format("-updateyb {0} {1} {2} {3} {4}", new object[] { dbUserInfo.UserID, rid, addUserMoney, superInputFanLi, zhigouID }); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); LogManager.WriteLog(LogTypes.Error, string.Format("处理充值成功 UID={0},money={1},itemid={2}", dbUserInfo.UserID, addUserMoney, zhigouID), null, true); }
/// <summary> /// 更新用户充值的元宝数据 /// </summary> public static void UpdateUsersMoney(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000; if (nowTicks - LastUpdateUserMoneyTicks < (3 * 1000)) { return; } LastUpdateUserMoneyTicks = nowTicks; List <string> userIDList = new List <string>(); List <int> addUserMoneyList = new List <int>(); DBQuery.QueryTempMoney(dbMgr, userIDList, addUserMoneyList); if (userIDList.Count <= 0) { return; } int currentGiftID = GameDBManager.GameConfigMgr.GetGameConfigItemInt("big_award_id", 0); int moneyToYuanBao = GameDBManager.GameConfigMgr.GetGameConfigItemInt("money-to-yuanbao", 10); int moneyToJiFen = GameDBManager.GameConfigMgr.GetGameConfigItemInt("money-to-jifen", 1); for (int i = 0; i < userIDList.Count; i++) { string userID = userIDList[i]; int addUserMoney = addUserMoneyList[i]; DBUserInfo dbUserInfo = dbMgr.GetDBUserInfo(userID); if (null != dbUserInfo) { int userMoney = 0; int realMoney = 0; int giftID = 0; int giftJiFen = 0; lock (dbUserInfo) { dbUserInfo.Money += (addUserMoney * moneyToYuanBao); //一分钱??元宝 userMoney = dbUserInfo.Money; dbUserInfo.RealMoney += addUserMoney; realMoney = dbUserInfo.RealMoney; if (currentGiftID != dbUserInfo.GiftID) { dbUserInfo.GiftJiFen = 0; dbUserInfo.GiftID = currentGiftID; } giftID = dbUserInfo.GiftID; if (dbUserInfo.GiftID > 0) { dbUserInfo.GiftJiFen += (addUserMoney * moneyToJiFen); //一分钱??积分 } giftJiFen = dbUserInfo.GiftJiFen; } //更新用户元宝表 DBWriter.UpdateUserMoney2(dbMgr, dbUserInfo.UserID, userMoney, realMoney, giftID, giftJiFen); string resoult = "1"; int rid = DBQuery.LastLoginRole(dbMgr, dbUserInfo.UserID); //送绑钻 CFirstChargeMgr.SendToRolebindgold(dbMgr, dbUserInfo.UserID, rid, addUserMoney); //添加GM命令消息 string gmCmdData = string.Format("-updateyb {0} {1} {2} {3}", dbUserInfo.UserID, rid, addUserMoney, resoult); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } } }
public static void SendToRolebindgold(DBManager dbMgr, string uid, int rid, int addMoney, SingleChargeData chargeData) { if (chargeData == null) { LogManager.WriteException(string.Concat(new object[] { "送绑钻失败,配置表信息为空 uid=", uid, " money=", addMoney })); } else { string data = CFirstChargeMgr.GetFirstChargeInfo(dbMgr, uid); string strPlat = (uid.Length >= 4) ? uid.Substring(0, 4) : ""; int nPlatformID = 1; if (strPlat == "APPS") { nPlatformID = 2; } CFirstChargeMgr.ChargeType type = CFirstChargeMgr.ChargeType.Normal; string strYYB = (uid.Length >= 3) ? uid.Substring(0, 3) : ""; if (strYYB == "YYB") { type = CFirstChargeMgr.ChargeType.YingYongBao; } else if (strYYB == "GAT" || strYYB == "430") { type = CFirstChargeMgr.ChargeType.GangAoTai; } string[] datalist = null; if (!string.IsNullOrEmpty(data)) { datalist = data.Split(new char[] { ',' }); } List <int> listAddMoney = CFirstChargeMgr.MuiltchargeGetBindmoney(addMoney, nPlatformID, datalist, type, chargeData); if (listAddMoney != null) { for (int i = 0; i < listAddMoney.Count; i++) { if (!string.IsNullOrEmpty(data)) { data = data + "," + listAddMoney[i]; } else { data = string.Concat(listAddMoney[i]); } } if (!CFirstChargeMgr.UpdateFirstCharge(dbMgr, uid, data, 0)) { LogManager.WriteException(string.Concat(new object[] { "送绑钻失败,保存数据库失败 uid=", uid, " money=", addMoney })); } else { for (int i = 0; i < listAddMoney.Count; i++) { int bindMoney = chargeData.singleData[listAddMoney[i]]; string gmCmdData = string.Format("-updateBindgold {0} {1} {2} {3}", new object[] { uid, rid, bindMoney, data }); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } } } } }
/// <summary> /// 扫描新邮件 /// </summary> public static void ScanLastMails(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000; if (nowTicks - LastScanMailTicks < (30 * 1000)) { return; } LastScanMailTicks = nowTicks; //扫描新邮件 Dictionary <int, int> lastMailDict = DBQuery.ScanLastMailIDListFromTable(dbMgr); if (null != lastMailDict && lastMailDict.Count > 0) { String gmCmd = "", mailIDsToDel = ""; foreach (var item in lastMailDict) { DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(item.Key); if (null != dbRoleInfo) { //理论上新扫描到的肯定是最新的,如果同一个客户端同时有多封新邮件,lastMailDict中只有mailID值最大的那一封 if (gmCmd.Length > 0) { gmCmd += "_"; } //如果本次提示用户没有打开邮件列表,下次还能继续提示 dbRoleInfo.LastMailID = item.Value; gmCmd += String.Format("{0}|{1}", dbRoleInfo.RoleID, item.Value); } else { //缓存中没有的用户更新其数据库字段 DBWriter.UpdateRoleLastMail(dbMgr, item.Key, item.Value); } if (mailIDsToDel.Length > 0) { mailIDsToDel += ","; } mailIDsToDel += item.Value; } //通知客户端 if (gmCmd.Length > 0) { //添加GM命令消息 string gmCmdData = string.Format("-notifymail {0}", gmCmd); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } //清空邮件临时表中本次扫描到的信息,不能全部删除,因为处理过程中可能又有新邮件信息 if (mailIDsToDel.Length >= 0) { DBWriter.DeleteLastScanMailIDs(dbMgr, lastMailDict); } } }
public static int SendAward(DBManager dbMgr, int roleID, int awardID) { FacebookAwardData awardData = FacebookManager.getFacebookAward(awardID); int result; if (awardData == null) { result = -6; } else { if (awardData.OnlyNum > 0) { int totalNum = DBQuery.FacebookOnlyNum(dbMgr, roleID, awardID); if (totalNum > 0) { return(-5); } } if (awardData.DayMaxNum > 0) { int totalNum = DBQuery.FacebookDayNum(dbMgr, roleID, awardID); if (totalNum >= awardData.DayMaxNum) { return(-5); } } string mailGoodsString = ""; if (null != awardData.AwardGoods) { foreach (GoodsData goods in awardData.AwardGoods) { int useCount = goods.GCount; mailGoodsString += string.Format("{0}_{1}_{2}_{3}_{4}_{5}_{6}_{7}_{8}_{9}_{10}_{11}_{12}_{13}_{14}_{15}", new object[] { goods.GoodsID, goods.Forge_level, goods.Quality, goods.Props, useCount, 0, 0, goods.Jewellist, goods.AddPropIndex, goods.Binding, goods.BornIndex, goods.Lucky, goods.Strong, goods.ExcellenceInfo, goods.AppendPropLev, goods.ChangeLifeLevForEquip }); if (mailGoodsString.Length > 0) { mailGoodsString += "|"; } } } string[] fields = new string[] { "-1", awardData.MailUser, roleID.ToString(), "", awardData.MailTitle.ToString(), awardData.MailContent.ToString(), "0", "0", "0", mailGoodsString }; int addGoodsCount = 0; int mailID = Global.AddMail(dbMgr, fields, out addGoodsCount); if (mailID > 0) { string gmCmd = string.Format("{0}|{1}", roleID.ToString(), mailID); string gmCmdData = string.Format("-notifymail {0}", gmCmd); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); result = mailID; } else { result = -8; } } return(result); }
public static void ScanGMMsgToGameServer(DBManager dbMgr) { try { long nowTicks = DateTime.Now.Ticks / 10000L; if (nowTicks - ChatMsgManager.LastScanInputGMMsgTicks >= 10000L) { ChatMsgManager.LastScanInputGMMsgTicks = nowTicks; List <string> msgList = new List <string>(); DBQuery.ScanGMMsgFromTable(dbMgr, msgList); bool reloadConfig = false; bool reloadGameserverLineList = false; bool reloadGMail = false; for (int i = 0; i < msgList.Count; i++) { string msg = msgList[i].Replace(":", ":"); if (msg.IndexOf("-config ") >= 0) { reloadConfig = true; string[] fields = msg.Trim().Split(new char[] { ' ' }); if (fields.Count <string>() == 3) { string paramName = fields[1]; string paramValue = fields[2]; DBWriter.UpdateGameConfig(dbMgr, paramName, paramValue); } } else if (msg == "-reload kuafu") { reloadGameserverLineList = true; } else if (msg == "-reloadall") { try { AssemblyPatchManager.getInstance().InitConfig(); } catch (Exception ex) { LogManager.WriteException(ex.ToString()); } } if (msg.IndexOf("-resetgmail") >= 0) { reloadGMail = true; } if (msg.IndexOf("-outrank") >= 0) { GameDBManager.RankCacheMgr.PrintfRankData(); } ChatMsgManager.AddGMCmdChatMsg(-1, msg); } if (reloadConfig) { GameDBManager.GameConfigMgr.LoadGameConfigFromDB(dbMgr); } if (reloadGameserverLineList) { LineManager.LoadConfig(); } if (reloadGMail) { GroupMailManager.ResetData(); } } } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("扫描GM命令表时发生了错误", new object[0]), null, true); } }