Esempio n. 1
0
        public override void OnMessage(JsonMessage msg)
        {
            var reply = msg as JsonMessageCreateNick;

            if (LobbyConfig.DataStoreAvailable)
            {
                var dsc = LobbyServer.Instance.DataStoreConnector;
                dsc.Load <DS_Nickname>(reply.m_Nick, (e, d) => LoadNicknameCallback(e, d, reply.m_Nick));
            }
            else
            {
                var data_scdr = LobbyServer.Instance.DataProcessScheduler;
                var guid      = data_scdr.GetGuidByNick(reply.m_Nick);
                if (guid == 0)
                {
                    JsonMessageCreateNickResult cnResultMsg = new JsonMessageCreateNickResult();
                    cnResultMsg.m_Account = Account;
                    cnResultMsg.m_Result  = (int)CreateNickResult.NICK_SUCCESS;
                    cnResultMsg.m_Nick    = reply.m_Nick;
                    JsonMessageDispatcher.SendDcoreMessage(LobbyServer.Instance.SvrAPI, NodeName, cnResultMsg);

                    //创建新的玩家角色
                    ++s_tempguid_;
                    var user = data_scdr.NewUserInfo();
                    user.BillingPlayer = billing_player_;
                    user.Guid          = s_tempguid_;
                    user.Account       = Account;
                    user.Nickname      = reply.m_Nick;
                    user.NodeName      = NodeName;
                    user.Sign          = "Dash Fire";
                    user.LeftLife      = UserInfo.LifeTimeOfNoHeartbeat;
                    data_scdr.DoUserLogin(user);

                    JsonMessageUserInfo userInfoMsg = new JsonMessageUserInfo();
                    userInfoMsg.m_Account = user.Account;
                    userInfoMsg.m_Guid    = user.Guid;
                    userInfoMsg.m_Nick    = user.Nickname;
                    userInfoMsg.m_Level   = user.Level;
                    userInfoMsg.m_Sign    = user.Sign;
                    JsonMessageDispatcher.SendDcoreMessage(LobbyServer.Instance.SvrAPI, NodeName, userInfoMsg);
                    LogSys.Log(LOG_TYPE.DEBUG, "DoAccountLogin,guid:{0},nick:{1},acc:{2},node:{3}", user.Guid, user.Nickname, user.Account, user.NodeName);

                    Next("BillingOnline", user);
                }
                else
                {
                    LogSys.Log(LOG_TYPE.ERROR, "Duplicated nickname: {0}", reply.m_Nick);
                    JsonMessageCreateNickResult cnResultMsg = new JsonMessageCreateNickResult();
                    cnResultMsg.m_Account = Account;
                    cnResultMsg.m_Result  = (int)CreateNickResult.NICK_REPEAT_ERROR;
                    cnResultMsg.m_Nick    = reply.m_Nick;
                    JsonMessageDispatcher.SendDcoreMessage(LobbyServer.Instance.SvrAPI, NodeName, cnResultMsg);
                }
            }
        }
Esempio n. 2
0
 private void LoadNicknameCallback(string error, DS_Nickname data, string nickname)
 {
     if (null != error)
     {
         LogSys.Log(LOG_TYPE.ERROR, "Load {0} data failed: {1}", nickname, error);
         //若数据库中该昵称不存在,则可以创建新的
         JsonMessageCreateNickResult cnResultMsg = new JsonMessageCreateNickResult();
         cnResultMsg.m_Account = Account;
         cnResultMsg.m_Result  = (int)CreateNickResult.NICK_SUCCESS;
         cnResultMsg.m_Nick    = nickname;
         JsonMessageDispatcher.SendDcoreMessage(LobbyServer.Instance.SvrAPI, NodeName, cnResultMsg);
         DSCreateNewUser(nickname);
     }
     else
     {
         //若数据库中已有该昵称,则向客户端提示错误
         LogSys.Log(LOG_TYPE.ERROR, "Duplicated nickname: {0}", nickname);
         JsonMessageCreateNickResult cnResultMsg = new JsonMessageCreateNickResult();
         cnResultMsg.m_Account = Account;
         cnResultMsg.m_Result  = (int)CreateNickResult.NICK_REPEAT_ERROR;
         cnResultMsg.m_Nick    = nickname;
         JsonMessageDispatcher.SendDcoreMessage(LobbyServer.Instance.SvrAPI, NodeName, cnResultMsg);
     }
 }