コード例 #1
0
        void HandleJoinPartyRes(SFMessage message)
        {
            //variableBuilder.SetVariable("Result", parser.GetResult());
            //variableBuilder.SetVariable("PartyUID", parser.GetPartyUID());
            //variableBuilder.SetVariable("PartyLeaderID", parser.GetPartyLeaderID());
            //variableBuilder.SetVariable("ChatHistoryData", (int)parser.GetChatHistoryData().size(), parser.GetChatHistoryData().data());
            var Result = message.GetValue <Result>("Result");

            if (Result.IsFailed)
            {
                PrintStatus(1, "JoinParty failed {0} ID = {1}", Result, m_LoginID);
                mGamePartyJoinedAction(this, false);
                return;
            }

            m_PartyUID = message.GetValue <UInt64>("PartyUID");

            // mPartyGameJoinedCount
            PrintStatus(1, "HandleJoinPartyRes PartyUID = {0} {1} ", m_PartyUID, m_LoginID);
            m_PartyInfo = new PartyMatchedInfo(m_PartyUID);

            if (mGamePartyJoinedAction != null)
            {
                mGamePartyJoinedAction(this, true);
            }
        }
コード例 #2
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();
        }
コード例 #3
0
        public void RunConnect(NetAddress serverAddress,

                               System.Action <StressTest_Matched_Chat> OnLoginConnected,
                               System.Action <StressTest_Matched_Chat, SF.Net.SendMessageLogin> OnLoginDisConnected,
                               System.Action <StressTest_Matched_Chat, int> OnLoginFailed,

                               System.Action <StressTest_Matched_Chat> OnGameSvrConnected,
                               System.Action <StressTest_Matched_Chat, SF.Net.SendMessageGame> OnGameSvrDisConnected,
                               System.Action <StressTest_Matched_Chat> OnGameSvrFailedConnect,

                               System.Action <StressTest_Matched_Chat, bool> OnGameJoinResAction,


                               System.Action <StressTest_Matched_Chat> OnPartyCreateAction,
                               System.Action <StressTest_Matched_Chat, bool> OnGamePartyJoinedAction,
                               System.Action <StressTest_Matched_Chat, bool> OnPartyChatSendResAction,
                               System.Action <StressTest_Matched_Chat, UInt64> OnPartyChatOneKBRecivedTen,
                               System.Action <StressTest_Matched_Chat, int, UInt64> OnPartyChatOneKBRecivedSingle)
        {
            mLoginConnectedAction    = OnLoginConnected;
            mLoginDisConnectedAction = OnLoginDisConnected;
            mLoginFailedAction       = OnLoginFailed;

            // Game Sever
            mGameSvrConnectedAction     = OnGameSvrConnected;
            mGameSvrDisConnectedAction  = OnGameSvrDisConnected;
            mGameSvrFailedConnectAction = OnGameSvrFailedConnect;

            //---
            mGameJoinResAction = OnGameJoinResAction;
            mPartyCreateAction = OnPartyCreateAction;


            mGamePartyJoinedAction    = OnGamePartyJoinedAction;
            mPartyChatSendResAction   = OnPartyChatSendResAction;
            mPartyChatOneKBRecivedTen = OnPartyChatOneKBRecivedTen;

            mPartyChatOneKBRecivedSingle = OnPartyChatOneKBRecivedSingle;

            mTotalRecvedPartyChatMessageCount = 0;

            m_PartyInfo = new PartyMatchedInfo(0);

            NextState         = eTesterState.LOGINING;
            m_ConnectionLogin = new SFConnection(m_MessageRouter);
            m_ConnectionLogin.Connect(0, serverAddress.Address, (int)serverAddress.Port);

            mHeartBitTime = 0;
        }
コード例 #4
0
        void HandleCreatePartyRes(SFMessage message)
        {
            //variableBuilder.SetVariable("Result", parser.GetResult());
            //variableBuilder.SetVariable("PartyUID", parser.GetPartyUID());
            var Result = message.GetValue <Result>("Result");

            if (Result.IsFailed)
            {
                PrintStatus(1, "CreateParty failed {0} ID = {1}", Result, m_LoginID);
                return;
            }

            m_PartyUID = message.GetValue <UInt64>("PartyUID");

            PrintStatus(1, "HandleCreatePartyRes PartyUID ={0} ID ={1}", m_PartyUID, m_LoginID);

            m_PartyInfo = new PartyMatchedInfo(m_PartyUID);

            if (mPartyCreateAction != null)
            {
                mPartyCreateAction(this);
            }
        }
コード例 #5
0
        void HandleJoinGameServerRes(SFMessage message)
        {
            if (m_Game == null || m_ConnectionGame == null)
            {
                return;
            }

            if (m_ConnectionGame.State != SFConnection.ConnectionState.CONNECTED)
            {
                return;
            }

            var joinResult = message.GetValue <Result>("Result");

            if (joinResult.IsFailed)
            {
                if (mGameJoinResAction != null)
                {
                    mGameJoinResAction(this, false);
                }

                PrintStatus(1, "Join game server failed {0} ID = {1}", joinResult, m_LoginID);
                CloseAllConnections();
                return;
            }
            else
            {
                if (mGameJoinResAction != null)
                {
                    mGameJoinResAction(this, true);
                }
            }

            m_PartyUID = message.GetValue <UInt64>("PartyUID");

            if (m_PartyUID == 0)
            {
                if (IsPartyBoss)
                {
                    NextState = eTesterState.PARTY_MATCING;

                    if (m_Game.CreatePartyCmd(0) != 0)
                    {
                        return;
                    }

                    PrintStatus(1, "Create PartyCmd ID = {0}", m_LoginID);
                }
                else
                {
                    NextState = eTesterState.PARTY_WAIT_INVITE;
                }
            }
            else
            {
                NextState = eTesterState.PARTY_MATCING;

                // already has party
                m_PartyInfo = new PartyMatchedInfo(m_PartyUID);
                if (IsPartyBoss)
                {
                    PrintStatus(1, "Already has partyID = {0} ID = {1} IsBoss = {2} ", m_PartyUID, m_LoginID, IsPartyBoss);
                    if (mPartyCreateAction != null)
                    {
                        mPartyCreateAction(this);
                    }
                }
                else
                {
                    PrintStatus(1, "Already has PartyJoined!! = {0} ID = {1} And LeavePartyCmd!!", m_PartyUID, m_LoginID);
                    m_Game.LeavePartyCmd(0, m_PartyUID, m_AccountID);
                }
            }
        }