internal void DoAccountLogin(string accountId, string password, string clientInfo, string nodeName)
{
AccountInfo accountInfo = m_AccountSystem.FindAccountById(accountId);
QueueingThread queueingThread = UserServer.Instance.QueueingThread;
if (null != accountInfo || !queueingThread.NeedQueueing()) {
LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Green, "LoginStep_3a: DoLogin without queueing. AccountId:{0}", accountId);
DoAccountLoginWithoutQueueing(accountId, password, clientInfo, nodeName);
} else {
if (queueingThread.IsQueueingFull()) {
LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Yellow, "LoginStep_3b1: Start queueing but queue full. AccountId:{0}", accountId);
NodeMessage replyMsg = new NodeMessage(LobbyMessageDefine.AccountLoginResult, accountId);
GameFrameworkMessage.AccountLoginResult protoMsg = new GameFrameworkMessage.AccountLoginResult();
protoMsg.m_AccountId = accountId;
protoMsg.m_Result = AccountLoginResult.AccountLoginResultEnum.QueueFull;
replyMsg.m_ProtoData = protoMsg;
NodeMessageDispatcher.SendNodeMessage(nodeName, replyMsg);
} else {
LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Yellow, "LoginStep_3b2: Start queueing. AccountId:{0}", accountId);
queueingThread.QueueAction(queueingThread.StartQueueing, accountId, password, clientInfo, nodeName);
NodeMessage replyMsg = new NodeMessage(LobbyMessageDefine.AccountLoginResult, accountId);
GameFrameworkMessage.AccountLoginResult protoMsg = new GameFrameworkMessage.AccountLoginResult();
protoMsg.m_AccountId = accountId;
protoMsg.m_Result = AccountLoginResult.AccountLoginResultEnum.Queueing;
replyMsg.m_ProtoData = protoMsg;
NodeMessageDispatcher.SendNodeMessage(nodeName, replyMsg);
}
}
}