/// <summary>
        /// 
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        internal static void CharServerConnected( NetState netState, PacketReader packetReader )
        {
            // 错误 不可能有创建
            if ( netState.ExtendData is CharServerExtendData == true )
                return;
            else
                netState.ExtendData = null;

            if ( packetReader.Size < 6/*( 6 + 0 )*/ )
                return;

            // 不检查网络是否活动
            netState.IsCheckActivity = false;

            string l_strWorldPassword = packetReader.ReadStringSafe();

            if ( l_strWorldPassword == Program.ConfigInfo.WorldPassword )
            {
                CharServerExtendData l_ExtendData = new CharServerExtendData();

                l_ExtendData.IsLoggedIn = true;

                netState.ExtendData = l_ExtendData;
            }
        }
예제 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="friendList"></param>
 internal static void RemoveCharServerList(CharServerExtendData extendData)
 {
     Monitor.Enter(s_LockCharServerList);
     {
         s_CharServerList.Remove(extendData);
     }
     Monitor.Exit(s_LockCharServerList);
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="netState"></param>
        /// <param name="packetReader"></param>
        internal static void LoginServerConnectFromCharServer(NetState netState, PacketReader packetReader)
        {
            // 错误 不可能有创建
            if (netState.ExtendData is CharServerExtendData == true)
            {
                return;
            }
            else
            {
                netState.ExtendData = null;
            }

            if (packetReader.Size < 14 /*6 + 8 + ?*/)
            {
                return;
            }

            // 不检查网络是否活动
            netState.IsCheckActivity = false;

            long   l_iCharGUID        = packetReader.ReadUInt32();
            long   l_iCharPort        = packetReader.ReadUInt32();
            string l_strLoginPassword = packetReader.ReadStringSafe();

            if (l_strLoginPassword == Program.ConfigInfo.LoginPassword)
            {
                CharServerExtendData l_ExtendData = new CharServerExtendData();

                l_ExtendData.IsLoggedIn = true;
                l_ExtendData.CharGUID   = l_iCharGUID;
                l_ExtendData.CharHost   = netState.NetAddress.ToString();
                l_ExtendData.CharPort   = l_iCharPort;

                netState.ExtendData = l_ExtendData;

                Program.CharServerList.Add(l_ExtendData);

                l_ExtendData.ConnectToCharServer(l_ExtendData.CharHost, l_ExtendData.CharPort);
            }
        }
예제 #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="friendList"></param>
 internal static void RemoveCharServerList( CharServerExtendData extendData )
 {
     Monitor.Enter( s_LockCharServerList );
     {
         s_CharServerList.Remove( extendData );
     }
     Monitor.Exit( s_LockCharServerList );
 }