Example #1
0
        public void Push(RoleEnterHolder holder, bool checkRoleId)
        {
            int queueCount = 0;

            lock (this)
            {
                if (checkRoleId)
                {
                    foreach (var i in mLoginQueue)
                    {
                        if (i.roleId == holder.roleId)
                        {
                            return;
                        }
                    }
                }
                mLoginQueue.Add(holder);
                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);
                }
            }
        }
Example #2
0
 void Tick(ServerFrame.DB.DBConnect dbConnect)
 {
     DBConnect.Tick();
     if (mLoginQueue.Count > 0)
     {
         RoleEnterHolder atom = null;
         lock (this)
         {
             atom = mLoginQueue[0];
             mLoginQueue.RemoveAt(0);
         }
         try
         {
             if (atom.RoleCreator != null)
             {
                 Log.Log.Server.Info("atom.RoleCreator != null");
                 if (atom.RoleCreator.Exec != null)
                 {
                     atom.RoleCreator.Exec();
                 }
             }
             else
             {
                 IDataServer.Instance.PlayerManager.Do_RoleLogin(atom);
             }
         }
         catch (System.Exception ex)
         {
             Log.Log.Login.Info("登陆失败{0}", atom.roleId);
             Log.Log.Common.Print(ex.ToString());
             Log.Log.Common.Print(ex.StackTrace.ToString());
         }
     }
 }
Example #3
0
        public void PushRoleCreator(AsyncExecuter exec)
        {
            var sqlAtom = new RoleEnterHolder();

            sqlAtom.RoleCreator = exec;
            this.Push(sqlAtom, false);
        }