public BulletinMsgData AddBulletinMsg(string msgID, int playMinutes, int playNum, string bulletinText, int msgType = 0) { BulletinMsgData bulletinMsgData = new BulletinMsgData { MsgID = msgID, PlayMinutes = playMinutes, ToPlayNum = playNum, BulletinText = bulletinText, BulletinTicks = TimeUtil.NOW(), MsgType = msgType }; if (playMinutes != 0) { lock (this._BulletinMsgDict) { this._BulletinMsgDict[msgID] = bulletinMsgData; } if (playMinutes < 0) { string fromDate = TimeUtil.NowDateTime().ToString("yyyy-MM-dd HH:mm:ss"); string toDate = TimeUtil.NowDateTime().AddMinutes((double)playMinutes).ToString("yyyy-MM-dd HH:mm:ss"); Global.AddDBBulletinMsg(msgID, fromDate, toDate, 0, bulletinText); } } return(bulletinMsgData); }
public void SendAllBulletinMsgToGM(GameClient client) { List <string> msgList = new List <string>(); lock (this._BulletinMsgDict) { foreach (string key in this._BulletinMsgDict.Keys) { BulletinMsgData bulletinMsgData = this._BulletinMsgDict[key]; string bulletinTm = new DateTime(bulletinMsgData.BulletinTicks * 10000L).ToString("yyyy-MM-dd HH:mm:ss"); string textMsg = string.Format("{0} {1} {2} {3} {4} {5}", new object[] { bulletinMsgData.MsgID, bulletinMsgData.PlayMinutes, bulletinMsgData.ToPlayNum, bulletinMsgData.Interval, bulletinTm, bulletinMsgData.BulletinText }); msgList.Add(textMsg); } } for (int i = 0; i < msgList.Count; i++) { GameManager.ClientMgr.SendSystemChatMessageToClient(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, msgList[i]); } }
/// <summary> /// 发布公告消息 /// </summary> /// <param name="msgID"></param> /// <param name="playMinutes"></param> /// <param name="playNum"></param> /// <param name="bulletinText"></param> public BulletinMsgData AddBulletinMsg(string msgID, int playNum, string bulletinText) { BulletinMsgData bulletinMsgData = new BulletinMsgData() { MsgID = msgID, PlayMinutes = -1, ToPlayNum = playNum, BulletinText = bulletinText, BulletinTicks = DateTime.Now.Ticks / 10000, }; lock (_BulletinMsgDict) { _BulletinMsgDict[msgID] = bulletinMsgData; } return(bulletinMsgData); }
public void ProcessBulletinMsg() { long ticks = TimeUtil.NOW(); List <string> bulletinMsgIDList = new List <string>(); lock (this._BulletinMsgDict) { foreach (string key in this._BulletinMsgDict.Keys) { BulletinMsgData bulletinMsgData = this._BulletinMsgDict[key]; if (bulletinMsgData.PlayMinutes >= 0) { if (bulletinMsgData.Interval > 0 && ticks >= bulletinMsgData.BulletinTicks && ticks - bulletinMsgData.LastBulletinTicks >= (long)(bulletinMsgData.Interval * 1000)) { bulletinMsgData.LastBulletinTicks = ticks; BulletinMsgData msg = new BulletinMsgData { MsgID = bulletinMsgData.MsgID, PlayMinutes = 0, ToPlayNum = 1, BulletinText = bulletinMsgData.BulletinText, BulletinTicks = bulletinMsgData.BulletinTicks, MsgType = 0 }; GameManager.ClientMgr.NotifyAllBulletinMsg(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, null, msg, 0, 0); } if (ticks - bulletinMsgData.BulletinTicks >= (long)bulletinMsgData.PlayMinutes * 60L * 1000L) { Global.RemoveDBBulletinMsg(key); bulletinMsgIDList.Add(key); } } } for (int i = 0; i < bulletinMsgIDList.Count; i++) { this._BulletinMsgDict.Remove(bulletinMsgIDList[i]); } bulletinMsgIDList.Clear(); bulletinMsgIDList = null; } }
public BulletinMsgData AddBulletinMsgBackground(string msgID, string fromDate, string toDate, int interval, string bulletinText) { BulletinMsgData bulletinMsgData = new BulletinMsgData { MsgID = msgID, Interval = interval, BulletinText = bulletinText, BulletinTicks = DataHelper.ConvertToTicks(fromDate) }; long PlayTicks = DataHelper.ConvertToTicks(toDate) - bulletinMsgData.BulletinTicks; bulletinMsgData.PlayMinutes = (int)(PlayTicks / 60000L); BulletinMsgData result; if (string.IsNullOrEmpty(msgID) || PlayTicks < 0L || interval <= 0) { LogManager.WriteLog(LogTypes.Error, string.Format("后台公告数据错误:{0} {1} {2} {3} {4}", new object[] { msgID, fromDate, toDate, interval, bulletinText }), null, true); result = null; } else { lock (this._BulletinMsgDict) { this._BulletinMsgDict[msgID] = bulletinMsgData; Global.AddDBBulletinMsg(msgID, fromDate, toDate, interval, bulletinText); } result = bulletinMsgData; } return(result); }