/// <summary>
        /// 消息处理:更新
        /// </summary>
        /// <param name="type">消息类型</param>
        /// <param name="reader">读取器</param>
        private static void ProcessUpdate(ushort type, BinaryReader reader)
        {
            lock (PVPReward.dataList)
            {
                PVPReward.dataList.Clear();

                ushort count = reader.ReadUInt16();

                for (int i = 0; i < count; ++i)
                {
                    PVPRewardData data = new PVPRewardData();
                    data.Address    = reader.ReadString();
                    data.ServerId   = reader.ReadString();
                    data.UpdateTime = new DateTime(reader.ReadUInt16(), reader.ReadByte(), reader.ReadByte());
                    data.gift       = reader.ReadInt32();
                    PVPReward.dataList.Add(data);
                }
            }

            PVPReward.hasInitialize = true;
        }
        /// <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();
                }
            }
        }