Beispiel #1
0
 //Queue<AtomHolder> mEnterGameQueue;
 void Tick()
 {
     DBConnect.Tick();
     if (mLoginQueue.Count > 0)
     {
         AccountLoginHolder atom = null;
         lock (this)
         {
             atom = mLoginQueue[0];
             mLoginQueue.RemoveAt(0);
         }
         try
         {
             IDataServer.Instance.PlayerManager.Do_AccountLogin(atom);
         }
         catch (System.Exception ex)
         {
             Log.Log.Common.Print(ex.ToString());
             Log.Log.Common.Print(ex.StackTrace.ToString());
         }
     }
 }
Beispiel #2
0
        public void PushLogin(AccountLoginHolder loginHolder)
        {
            int queueCount = 0;

            lock (this)
            {
                foreach (var i in mLoginQueue)
                {
                    if (i.Name == loginHolder.Name)
                    {
                        break;
                    }
                }
                mLoginQueue.Add(loginHolder);
                queueCount = mLoginQueue.Count;
                if (queueCount > 1)
                {
                    //RPC.PackageWriter pkg = new RPC.PackageWriter();
                    //H_RPCRoot.smInstance.HGet_GateServer(pkg).ClientTryLoginSuccessed(pkg, loginHolder.LinkHandle, loginHolder.Name, loginHolder.Id);
                    //这里要告诉客户端,还有多少在排队
                    //pkg.DoCommand(loginHolder.Connect, RPC.CommandTargetType.DefaultType);
                }
            }
        }