/// <summary>
        /// // Disconnect Character 人物
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="iAccountGuid"></param>
        internal static void CharServer_Action01(NetState netState, long iAccountGuid)
        {
            NetState l_NetState = ProcessNet.GetClientByAccountGuid(iAccountGuid);

            if (l_NetState == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction_01(...) - l_NetState == null error!");
                return;
            }

            WorldServerExtendData l_CharExtendData = l_NetState.ExtendData as WorldServerExtendData;

            if (l_CharExtendData == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction_01(...) - l_CharExtendData == null error!");
                return;
            }

            if (l_CharExtendData.ROSEMobile.IsLoggedIn == false)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction_01(...) - l_CharExtendData.IsLoggedIn == false error!");
                return;
            }

            l_NetState.Send(new ExitAck(0));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        public static void WorldServerWhisper(NetState netState, PacketReader packetReader)
        {
            WorldServerExtendData l_ExtendData = netState.ExtendData as WorldServerExtendData;

            if (l_ExtendData == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData == null error!");
                return;
            }

            if (l_ExtendData.ROSEMobile.IsLoggedIn == false)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData.m_bIsLoggedIn == false error!");
                return;
            }

            if (packetReader.Size < 7 /*6 + 1 + ?*/)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - packetReader.Size < 7 error!");
                return;
            }

            string msgto = packetReader.ReadStringSafe(16);
            string msg   = packetReader.ReadStringSafe();

            NetState l_NetState = ProcessNet.GetClientByCharName(msgto);

            if (l_NetState != null)
            {
                WorldServerExtendData extendData = l_NetState.ExtendData as WorldServerExtendData;
                if (extendData != null)
                {
                    l_NetState.Send(new WhisperAck(extendData.ROSEMobile, msg));

                    return;
                }
            }

            netState.Send(new WhisperAck(l_ExtendData.ROSEMobile, msg));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        internal static void CharServerDisconnectUser(NetState netState, PacketReader packetReader)
        {
            CharServerExtendData l_ExtendData = netState.ExtendData as CharServerExtendData;

            if (l_ExtendData == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData == null error!");
                return;
            }

            if (l_ExtendData.IsLoggedIn == false)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - l_ExtendData.m_bIsLoggedIn == false error!");
                return;
            }

            if (packetReader.Size < 7 /*6 + 1 + ?*/)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction(...) - packetReader.Size < 7 error!");
                return;
            }

            uint iAccountGuid = packetReader.ReadUInt32();

            NetState l_NetState = ProcessNet.GetClientByAccountGuid(iAccountGuid);

            if (l_NetState == null)
            {
                Debug.WriteLine("CharPacketHandlers.LoginAction_01(...) - l_NetState == null error!");
                return;
            }

            if (l_NetState.Running)
            {
                l_NetState.Dispose(true);
            }
        }