/// <summary> /// /// </summary> /// <param name="newNetState"></param> internal static void NetState_InitializeNetState(NetState newNetState) { if (newNetState != null && newNetState.EncoderSeed == null && newNetState.ExtendData == null) { CharServerExtendData l_ExtendData = new CharServerExtendData(); // 初始化客户端加密的数据种子 newNetState.EncoderSeed = m_CryptTableBuffers.AcquireBuffer(); Buffer.BlockCopy(ROSECrypt.Instance().CryptTableBuffer, 0, newNetState.EncoderSeed, 0, ROSECrypt.Instance().CryptTableBuffer.Length); newNetState.ExtendData = l_ExtendData; newNetState.EventDisconnect += new DisconnectNetStateEventHandler(CharPacketHandlers.DisconnectNetState); } else { Debug.WriteLine("ProcessNet.NetState_InitializeNetState(...) - newNetState.Seed != null error!"); } }
/// <summary> /// /// </summary> /// <param name="strCharName"></param> /// <returns></returns> internal static NetState GetClientByCharName(string strCharName) { NetState[] netStateArray = Program.BaseWorld.NetStateToArray(); foreach (NetState netState in netStateArray) { CharServerExtendData l_ExtendData = netState.ExtendData as CharServerExtendData; if (l_ExtendData == null) { continue; } if (l_ExtendData.CharacterName == strCharName) { return(netState); } } return(null); }
/// <summary> /// /// </summary> /// <param name="iAccount"></param> /// <returns></returns> internal static NetState GetClientByAccountGuid(long iAccount) { NetState[] netStateArray = Program.BaseWorld.NetStateToArray(); foreach (NetState netState in netStateArray) { CharServerExtendData l_ExtendData = netState.ExtendData as CharServerExtendData; if (l_ExtendData == null) { continue; } if (l_ExtendData.AccountGuid == iAccount) { return(netState); } } return(null); }
/// <summary> /// /// </summary> /// <param name="iClanGuid"></param> /// <returns></returns> internal static NetState[] GetClientsByClanGuid(long iClanGuid) { List <NetState> netStateList = new List <NetState>(); NetState[] netStateArray = Program.BaseWorld.NetStateToArray(); foreach (NetState netState in netStateArray) { CharServerExtendData l_ExtendData = netState.ExtendData as CharServerExtendData; if (l_ExtendData == null) { continue; } if (l_ExtendData.ClanGuid == iClanGuid) { netStateList.Add(netState); } } return(netStateList.ToArray()); }
/// <summary> /// /// </summary> /// <param name="friendList"></param> internal static void RemoveCharServerList( CharServerExtendData extendData ) { Monitor.Enter( s_LockCharServerList ); { s_CharServerList.Remove( extendData ); } Monitor.Exit( s_LockCharServerList ); }