Пример #1
0
        void HandleJoinGameServerRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                //PrintStatus("CreateParty has failed {0}", result);
                return;
            }

            var gameConn = m_OnlineClient.GetConnection(OnlineClient.ConnectionType.Game);

            if (gameConn == null)
            {
                return;
            }

            UpdateButtonState();

            // access playerid
            var playerId = m_OnlineClient.GetPlayerId();

            var gamePolicy = new SF.Net.SendMessageGame(gameConn);

            gamePolicy.GetCharacterListCmd(0);
        }
Пример #2
0
        private void OnCreateCharacterClicked(object sender, RoutedEventArgs e)
        {
            var gameConn = m_OnlineClient.GetConnection(OnlineClient.ConnectionType.Game);

            if (gameConn == null)
            {
                return;
            }

            var gamePolicy = new SF.Net.SendMessageGame(gameConn);
            var charName   = string.Format("testchar{0}{1}", txtLoginName.Text, m_Rand.Next() % 100);

            var visualConfig = new VariableTable();

            visualConfig.Add(new StringCrc32("sex"), 1);
            visualConfig.Add(new StringCrc32("hat"), 10);
            visualConfig.Add(new StringCrc32("shoes"), 10);

            var attributes = new VariableTable();

            attributes.Add(new StringCrc32("Gold"), 100);
            attributes.Add(new StringCrc32("Agile"), 10);
            attributes.Add(new StringCrc32("Strength"), 20);
            attributes.Add(new StringCrc32("Integer"), 30);
            gamePolicy.CreateCharacterCmd(0, charName, visualConfig, attributes);
        }
Пример #3
0
        public void CloseAllConnections()
        {
            if (m_ConnectionGame != null)
            {
                if (m_ConnectionGame.State != SFConnection.ConnectionState.DISCONNECTED)
                {
                    if (mGameSvrDisConnectedAction != null)
                    {
                        mGameSvrDisConnectedAction(this, m_Game);
                    }
                }
            }

            if (m_ConnectionLogin != null)
            {
                if (m_ConnectionLogin.State != SFConnection.ConnectionState.DISCONNECTED)
                {
                    if (mLoginDisConnectedAction != null)
                    {
                        mLoginDisConnectedAction(this, m_Login);
                    }
                }
            }

            if (m_Login != null)
            {
                m_Login = null;
            }

            if (m_Game != null)
            {
                m_Game = null;
            }

            if (m_ConnectionLogin != null)
            {
                m_ConnectionLogin.Disconnect();
                m_ConnectionLogin.Dispose();
            }
            m_ConnectionLogin = null;

            if (m_ConnectionGame != null)
            {
                m_ConnectionGame.Disconnect();
                m_ConnectionGame.Dispose();
            }
            m_ConnectionGame = null;

            if (m_PartyInfo != null)
            {
                m_PartyInfo.Dispose();
            }

            m_PartyInfo = null;

            mRecvChatHistorys.Clear();
        }
Пример #4
0
        private void OnBtnZoneListClicked(object sender, RoutedEventArgs e)
        {
            var gameConn = m_OnlineClient.GetConnection(OnlineClient.ConnectionType.Game);

            if (gameConn == null)
            {
                return;
            }

            var gamePolicy = new SF.Net.SendMessageGame(gameConn);

            gamePolicy.SearchGameInstanceCmd(0, "");
        }
Пример #5
0
        private void OnRefreshCharacterListClicked(object sender, RoutedEventArgs e)
        {
            var gameConn = m_OnlineClient.GetConnection(OnlineClient.ConnectionType.Game);

            if (gameConn == null)
            {
                return;
            }

            var gamePolicy = new SF.Net.SendMessageGame(gameConn);

            gamePolicy.GetCharacterListCmd(0);
        }
Пример #6
0
        private void OnCharacterListDoubleClicked(object sender, MouseButtonEventArgs e)
        {
            var selectedCharacter = listCharacter.SelectedItem as CharacterItem;

            var gameConn = m_OnlineClient.GetConnection(OnlineClient.ConnectionType.Game);

            if (gameConn == null)
            {
                return;
            }

            var gamePolicy = new SF.Net.SendMessageGame(gameConn);

            gamePolicy.SelectCharacterCmd(0, selectedCharacter.CharacterId);
        }
Пример #7
0
        public void CloseAllConnections()
        {
            if (m_ConnectionGame != null)
            {
                if (m_ConnectionGame.State != SFConnection.ConnectionState.DISCONNECTED)
                {
                    if (mGameSvrDisConnectedAction != null)
                    {
                        mGameSvrDisConnectedAction(this, m_Game);
                    }
                }
            }

            if (m_ConnectionLogin != null)
            {
                if (m_ConnectionLogin.State != SFConnection.ConnectionState.DISCONNECTED)
                {
                    if (mLoginDisConnectedAction != null)
                    {
                        mLoginDisConnectedAction(this, m_Login);
                    }
                }
            }

            m_Login = null;
            m_Game  = null;

            if (m_ConnectionLogin != null)
            {
                m_ConnectionLogin.Dispose();
            }

            m_ConnectionLogin = null;

            if (m_ConnectionGame != null)
            {
                m_ConnectionGame.Dispose();
            }
            m_ConnectionGame = null;

            if (m_MatchedInfo != null)
            {
                m_MatchedInfo.Dispose();
            }

            //   PrintStatus("m_MatchedInfo Delete ID = {0}", m_LoginID);
            m_MatchedInfo = null;
        }
Пример #8
0
        void HandleGameConnectionEvent(SFConnection.Event conEvent)
        {
            switch (conEvent.EventType)
            {
            case SFConnection.EventTypes.EVT_STATE_CHANGE:
                PrintStatus(1, "Game Connection state chagned {0}", conEvent.State);
                break;

            case SFConnection.EventTypes.EVT_CONNECTION_RESULT:

                PrintStatus(1, "Game Connection result  {0} ID = {1}", conEvent.HResult, m_LoginID);

                if (conEvent.HResult.IsSucceeded)
                {
                    if (mGameSvrConnectedAction != null)
                    {
                        mGameSvrConnectedAction(this);
                    }

                    PrintStatus(1, "Send JoinGameServerCmd ID = {0}", m_LoginID);

                    m_Game = new SF.Net.SendMessageGame(m_ConnectionGame);
                    m_Game.JoinGameServerCmd(0, m_AccountID, m_LoginTicket, m_LoginEntityID);
                }
                else
                {
                    if (mGameSvrFailedConnectAction != null)
                    {
                        mGameSvrFailedConnectAction(this);
                    }
                }
                break;

            case SFConnection.EventTypes.EVT_DISCONNECTED:
            {
                if (mGameSvrDisConnectedAction != null)
                {
                    mGameSvrDisConnectedAction(this, m_Game);
                }

                PrintStatus(1, "Game Connection disconnected");
            }
            break;
            }
        }
Пример #9
0
        public void CloseAllConnections()
        {
            if (m_ConnectionGame != null)
            {
                if (m_ConnectionGame.State != SFConnection.ConnectionState.DISCONNECTED)
                {
                    if (mGameSvrDisConnectedAction != null)
                    {
                        mGameSvrDisConnectedAction(this, m_Game);
                    }
                }
            }

            if (m_ConnectionLogin != null)
            {
                if (m_ConnectionLogin.State != SFConnection.ConnectionState.DISCONNECTED)
                {
                    if (mLoginDisConnectedAction != null)
                    {
                        mLoginDisConnectedAction(this, m_Login);
                    }
                }
            }

            m_Login = null;
            m_Game  = null;

            if (m_ConnectionLogin != null)
            {
                m_ConnectionLogin.Dispose();
            }

            m_ConnectionLogin = null;

            if (m_ConnectionGame != null)
            {
                m_ConnectionGame.Dispose();
            }
            m_ConnectionGame = null;
        }