コード例 #1
0
        /// <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!");
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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());
        }
コード例 #5
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 );
 }