Beispiel #1
0
        private void OnRecvRegister(IChannel channel, Message message)
        {
            // write to database
            CRegister request  = message as CRegister;
            SRegister response = new SRegister();
            // ClientTipInfo(channel, "TODO: write register info to database");

            var hasAccount = GameDataBase.SQLQueryScalar(string.Format("Select username from Account where username='******';", request.user));

            if (hasAccount != null)
            {
                // same username
                response.status = SRegister.Status.Fail;
                channel.Send(response);
                return;
            }

            // using transaction to create account
            var conn          = GameDataBase.GetConnection();
            var trans         = conn.BeginTransaction();
            var accountInsert = conn.CreateCommand();

            accountInsert.CommandText = "Insert Into Account(account_id, username, password) Values(DEFAULT, @username, @password) Returning account_id;";
            accountInsert.Parameters.AddWithValue("username", request.user);
            accountInsert.Parameters.AddWithValue("password", request.password);
            var account_id = accountInsert.ExecuteScalar();

            if (account_id == null)
            {
                // Register Fail
                trans.Rollback();
                response.status = SRegister.Status.Error;
                channel.Send(response);
                return;
            }

            var playerInsert = conn.CreateCommand();

            playerInsert.CommandText = "Insert Into Player(player_id, account_id) Values(DEFAULT, @account_id)";
            playerInsert.Parameters.AddWithValue("account_id", (int)account_id);
            var res = playerInsert.ExecuteNonQuery();

            if (res > 0)
            {
                // Success
                trans.Commit();
                response.status = SRegister.Status.Success;
            }
            else
            {
                // Fail
                trans.Rollback();
                response.status = SRegister.Status.Error;
            }
            channel.Send(response);
            return;
        }
Beispiel #2
0
        public override IEnumerator OnLoad(Request request)
        {
            SRegister sRegister = new SRegister();

            yield return(StartCoroutine(sRegister.RequestList()));

            allCharacters = sRegister.characters;
            foreach (MCharacter character in allCharacters)
            {
                character.StatusInit();
            }
            ChangeGender();
            //yield return StartCoroutine(base.OnLoad(request));
        }
Beispiel #3
0
        private void OnRecvRegister(IChannel channel, Message message)
        {
            SRegister request = message as SRegister;

            switch (request.status)
            {
            case SRegister.Status.Success:
                //Debug.Log("Register success");
                MessageBox.Show("Register success.");
                break;

            case SRegister.Status.Fail:
                MessageBox.Show("Username already exists. Please try a different one.");
                break;

            default:
                Debug.Log("Register Fail");
                MessageBox.Show("Fail to do that. Please check your network and try again.");
                break;
            }
        }
Beispiel #4
0
        public IEnumerator ToSubmit(string accountText, string passwordText, string nameText)
        {
            SRegister sRegister = new SRegister();

            yield return(this.StartCoroutine(sRegister.RequestInsert(accountText, passwordText, nameText)));

            if (sRegister.responseInsert.result)
            {
                CConnectingDialog.ToShow();
                yield return(StartCoroutine(App.Util.Global.SUser.RequestLogin(account.text.Trim(), password.text.Trim())));

                if (App.Util.Global.SUser.self == null)
                {
                    CConnectingDialog.ToClose();
                    this.Close();
                    yield break;
                }
                yield return(StartCoroutine(Global.SUser.RequestGet()));

                //App.Util.LSharp.LSharpScript.Instance.UpdatePlayer();
                AppManager.LoadScene("Home", null);
            }
        }