/// <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; } }
/// <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); } }
/// <summary> /// /// </summary> /// <param name="friendList"></param> internal static void RemoveCharServerList( CharServerExtendData extendData ) { Monitor.Enter( s_LockCharServerList ); { s_CharServerList.Remove( extendData ); } Monitor.Exit( s_LockCharServerList ); }