public static void AddGMCmdChatMsgToOneClient(string gmCmd) { string chatMsg = string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}", new object[] { 0, "", 0, "", 0, gmCmd, 0, 0, -1 }); List <LineItem> itemList = LineManager.GetLineItemList(); if (null != itemList) { for (int i = 0; i < itemList.Count; i++) { if (itemList[i].LineID < 9000 || itemList[i].LineID == GameDBManager.ZoneID) { ChatMsgManager.AddChatMsg(itemList[i].LineID, chatMsg); break; } } } }
/// <summary> /// 添加GM命令消息 /// </summary> /// <param name="serverLineID"></param> /// <param name="gmCmd"></param> public static void AddGMCmdChatMsg(int serverLineID, string gmCmd) { string chatMsg = string.Format("{0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}", 0, "", 0, "", 0, gmCmd, 0, 0, serverLineID); List <LineItem> itemList = LineManager.GetLineItemList(); if (null != itemList) { for (int i = 0; i < itemList.Count; i++) { if (itemList[i].LineID == serverLineID) { continue; } ChatMsgManager.AddChatMsg(itemList[i].LineID, chatMsg); } } }
public static void ScanLastGroup(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000L; if (nowTicks - GiftCodeNewManager.LastScanTicks >= 10000L) { GiftCodeNewManager.LastScanTicks = nowTicks; List <LineItem> itemList = LineManager.GetLineItemList(); if (itemList != null && itemList.Count != 0) { bool bExistLocalServer = false; for (int i = 0; i < itemList.Count; i++) { if (itemList[i].LineID > 0 && (itemList[i].LineID < 9000 || itemList[i].LineID == GameDBManager.ZoneID)) { bExistLocalServer = true; break; } } if (bExistLocalServer) { List <GiftCodeAwardData> groupList = DBQuery.ScanNewGiftCodeFromTable(dbMgr); if (groupList != null && groupList.Count != 0) { string nowtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); List <string> GiftData = new List <string>(); foreach (GiftCodeAwardData item in groupList) { if (item.RoleID > 0 && !string.IsNullOrEmpty(item.UserId) && !string.IsNullOrEmpty(item.GiftId) && !string.IsNullOrEmpty(item.CodeNo)) { bool isSucc = DBWriter.UpdateGiftCodeState(dbMgr, item.Dbid, 1, nowtime); if (isSucc) { string szCmd = string.Format("{0},{1},{2},{3}", new object[] { item.UserId, item.RoleID, item.GiftId, item.CodeNo }); GiftData.Add(szCmd); } } else { LogManager.WriteLog(LogTypes.Error, string.Format("[GiftCodeNew]数据表t_giftcode相关配置DBID:{0},RoleId:{1},UserId:{2}错误!", item.Dbid, item.RoleID, item.UserId), null, true); } } if (GiftData.Count > 0) { string szCmds = string.Join("#", GiftData); string gmCmdData = string.Format("-giftcodecmd {0}", szCmds); ChatMsgManager.AddGMCmdChatMsgToOneClient(gmCmdData); } groupList.Clear(); GiftData.Clear(); } } } } }
public void HandleDeleteRole(DBUserInfo dbUserInfo, DBRoleInfo dbRoleInfo) { DBManager dbMgr = DBManager.getInstance(); string userID = dbUserInfo.UserID; int roleID = dbRoleInfo.RoleID; lock (dbUserInfo) { if (dbRoleInfo.Faction > 0 && dbRoleInfo.BHZhiWu == 1) { int nRoleID = -1; bool bGoOn = false; List <BangHuiMemberData> bangHuiMemberDataList = DBQuery.GetBangHuiMemberDataList(dbMgr, dbRoleInfo.Faction); List <BangHuiMgrItemData> bangHuiMgrItemDataList = DBQuery.GetBangHuiMgrItemItemDataList(dbMgr, dbRoleInfo.Faction); if (bangHuiMemberDataList != null && bangHuiMemberDataList.Count > 0) { if (bangHuiMgrItemDataList != null) { nRoleID = Global.GetDBRoleInfoByZhiWu(bangHuiMgrItemDataList, 2); if (nRoleID <= 0) { nRoleID = Global.GetDBRoleInfoByZhiWu(bangHuiMgrItemDataList, 3); if (nRoleID <= 0) { nRoleID = Global.GetDBRoleInfoByZhiWu(bangHuiMgrItemDataList, 4); if (nRoleID <= 0) { bGoOn = true; } } } } if (bGoOn) { for (int i = 0; i < bangHuiMemberDataList.Count; i++) { if (bangHuiMemberDataList[i].RoleID != roleID) { nRoleID = bangHuiMemberDataList[i].RoleID; break; } } } if (nRoleID > 0) { lock (Global.BangHuiMutex) { DBRoleInfo dbRole = dbMgr.GetDBRoleInfo(ref nRoleID); if (dbRole != null) { if (dbRole.Faction == dbRoleInfo.Faction) { dbRole.BHZhiWu = 1; DBWriter.UpdateBangHuiMemberZhiWu(dbMgr, dbRole.Faction, nRoleID, 1); DBWriter.UpdateBangHuiRoleID(dbMgr, nRoleID, dbRole.Faction); int serverLineID = dbRoleInfo.ServerLineID; string strCmdData = string.Format("0::0::0:-chbhzhiwu {0} {1} {2} {3}:0:0:-1", new object[] { dbRoleInfo.Faction, nRoleID, 1, dbRoleInfo.RoleID }); List <LineItem> itemList = LineManager.GetLineItemList(); if (null != itemList) { for (int i = 0; i < itemList.Count; i++) { if (itemList[i].LineID != serverLineID) { ChatMsgManager.AddChatMsg(itemList[i].LineID, strCmdData); } } } } } } } BangHuiDestroyMgr.ClearBangHuiLingDi(dbMgr, dbRoleInfo.Faction); } else { BangHuiDestroyMgr.DoDestroyBangHui(dbMgr, dbRoleInfo.Faction); } } dbRoleInfo.Faction = 0; dbRoleInfo.BHName = ""; dbRoleInfo.BHZhiWu = 0; dbRoleInfo.BangGong = 0; DBWriter.UpdateRoleBangHuiInfo(dbMgr, dbRoleInfo.RoleID, dbRoleInfo.Faction, dbRoleInfo.BHName, 0); int index = dbUserInfo.ListRoleIDs.IndexOf(roleID); if (index >= 0 && index < dbUserInfo.ListRoleIDs.Count) { dbUserInfo.ListRoleIDs.RemoveAt(index); dbUserInfo.ListRoleSexes.RemoveAt(index); dbUserInfo.ListRoleOccups.RemoveAt(index); dbUserInfo.ListRoleNames.RemoveAt(index); dbUserInfo.ListRoleLevels.RemoveAt(index); dbUserInfo.ListRoleZoneIDs.RemoveAt(index); dbUserInfo.ListRoleChangeLifeCount.RemoveAt(index); dbUserInfo.ListRolePreRemoveTime.RemoveAt(index); } } }