/// <summary> /// 消息处理:检查 /// </summary> /// <param name="type">消息类型</param> /// <param name="reader">读取器</param> private static void ProcessCheck(ushort type, BinaryReader reader) { BinaryWriter writer = new BinaryWriter(new MemoryStream()); writer.Write((int)0); writer.Write((ushort)type); writer.Write(PVPReward.hasInitialize); Network.Send(writer); if (PVPReward.hasInitialize) { PVPReward.SendUpdate(); } }
/// <summary> /// 启动 /// </summary> public void Start() { System.Net.ServicePointManager.DefaultConnectionLimit = 100; GMService.timer = new System.Timers.Timer(1000); GMService.timer.Elapsed += GMService.timer_Elapsed; GMService.timer.Start(); Network.RegisterMessageProcess(MessageType.Url, (type, reader) => { GMService.lastSaveDay = DateTime.Today; GMService.url = reader.ReadString(); }); Activity.Start(); PVPReward.Start(); Broadcast.Start(); Network.Start(); }
/// <summary> /// 定时器计时 /// </summary> private static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (!PVPReward.hasInitialize) { return; } bool hasSend = false; lock (PVPReward.dataList) { for (int i = 0; i < PVPReward.dataList.Count; ++i) { PVPRewardData data = PVPReward.dataList[i]; if (data.gift != 0 && (DateTime.Now - data.UpdateTime).TotalDays >= 7) { data.gift = 0; hasSend = true; Log.AddLog(data.ServerId + " PVP奖励更新时间太早 " + data.UpdateTime.ToShortDateString()); continue; } if (data.gift != 0 && DateTime.Now >= data.UpdateTime && GMCommand.Execute(data.Address, data.ServerId, "0", string.Format("RPVP({0})", data.gift), "")) { data.gift = 0; hasSend = true; } } if (hasSend) { PVPReward.SendUpdate(); } } }