Exemplo n.º 1
0
        void HandleLoginRes(SFMessage message)
        {
            var loginResult = message.GetValue <Result>("Result");

            if (loginResult.IsFailed)
            {
                PrintStatus(1, "Login failed {0}", loginResult);

                if (mLoginFailedAction != null)
                {
                    mLoginFailedAction(this, 2);
                }

                CloseAllConnections();
                return;
            }

            NextState = eTesterState.GAME_LOGINING;

            m_LoginTicket       = message.GetValue <UInt64>("Ticket");
            m_AccountID         = message.GetValue <UInt64>("AccID");
            m_GameServerAddress = message.GetValue <NetAddress>("GameServerAddrIPV4");
            m_LoginEntityID     = message.GetValue <UInt64>("LoginEntityUID");

            PrintStatus(1, "Login Success!! {0}", m_LoginID);////loginResult);

            if (!string.IsNullOrEmpty(m_GameServerAddress.Address))
            {
                m_ConnectionGame = new SFConnection(m_MessageRouter);
                m_ConnectionGame.Connect(m_LoginTicket, m_GameServerAddress.Address, m_GameServerAddress.Port);
            }
        }
Exemplo n.º 2
0
        void HandleLoginRes(SFMessage message)
        {
            var loginResult = message.GetValue <Result>("Result");

            if (loginResult.IsFailed)
            {
                if (mLoginResAction != null)
                {
                    mLoginResAction(this, false);
                }

                PrintStatus(1, "Login failed {0}", loginResult);
                CloseAllConnections();
                return;
            }
            else
            {
                m_LoginTicket       = message.GetValue <UInt64>("Ticket");
                m_AccountID         = message.GetValue <UInt64>("AccID");
                m_GameServerAddress = message.GetValue <NetAddress>("GameServerAddrIPV4");
                m_LoginEntityID     = message.GetValue <UInt64>("LoginEntityUID");

                if (mLoginResAction != null)
                {
                    mLoginResAction(this, true);
                }
            }
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        void HandleJoinGameServerRes(SFMessage message)
        {
            var joinResult = message.GetValue <Result>("Result");

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

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

            NextState = eTesterState.COMPLTE;

            m_JoinedGameUID = message.GetValue <UInt64>("GameUID");
            if (m_JoinedGameUID != 0)
            {
                PrintStatus(1, "Already has JoinedGame!! = {0} ID = {1} And LeaveGameCMD!!", m_JoinedGameUID, m_LoginID);
                // Fixme
                //m_Game.LeaveGameCmd(0, m_JoinedGameUID, m_AccountID, m_LoginTicket);
            }
        }
Exemplo n.º 5
0
        void HandleDataTestRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                PrintStatus(1, "TestData failed {0}", result);

                if (mDataTestSendRes != null)
                {
                    mDataTestSendRes(this, false);
                }
                return;
            }

            if (mDataTestSendRes != null)
            {
                mDataTestSendRes(this, true);
            }

            var testDatas = message.GetValue <byte[]>("TestData");

            PrintStatus(0, "TestData Res {0} bytes ID = {1} ", testDatas.Length, m_LoginID);

            mDataTestResCount++;
            if (mDataTestResCount == 10)
            {
                NextState = StressTest_TenKBUser.eTesterState.COMPLTE;
            }
        }
Exemplo n.º 6
0
        void HandleLeaveGameRes(SFMessage message)
        {
            var Result = message.GetValue <Result>("Result");

            if (Result.IsFailed)
            {
                PrintStatus(1, "HandleLeaveGameRes failed {0} {1}", Result, m_LoginID);
                CloseAllConnections();
                return;
            }

//          PrintStatus("HandleLeaveGameRes ID = {0}", m_LoginID);
            if (m_JoinedGameUID == 0)
            {
                return;
            }

            m_JoinedGameUID = 0;
            PrintStatus(1, "HandleLeaveGameRes And Send RequestGameMatchCmd ID = {0}", m_LoginID);


            if (mSendReqLeaveGameAction != null)
            {
                mSendReqLeaveGameAction(this);
            }

            if (mSendReqMatchAction != null)
            {
                mSendReqMatchAction(this);
            }
        }
Exemplo n.º 7
0
        void HandlePlayerJoinedS2Evt(SFMessage message)
        {
            UInt64            GameInsID    = message.GetValue <UInt64>("GameInsUID");
            PlayerInformation JoinedPlayer = message.GetValue <PlayerInformation>("JoinedPlayer");

            PrintStatus(1, "HandlePlayerJoinedS2Evt  GameInsID = {0} MyID  = {1} JoinedPlayerID = {2} ",
                        GameInsID, m_LoginID, JoinedPlayer.PlayerID);

            //variableBuilder.SetVariable("GameInsUID", parser.GetGameInsUID());
            //variableBuilder.SetVariable("JoinedPlayer", parser.GetJoinedPlayer());
            //variableBuilder.SetVariable("JoinedPlayerRole", parser.GetJoinedPlayerRole());
            //variableBuilder.SetVariable("JoinedPlayerDead", parser.GetJoinedPlayerDead());
            //variableBuilder.SetVariable("JoinedPlayerIndex", parser.GetJoinedPlayerIndex());
            //variableBuilder.SetVariable("JoinedPlayerCharacter", parser.GetJoinedPlayerCharacter());
            if (m_MatchedInfo == null || m_Game == null)
            {
                return;
            }

            if (m_MatchedInfo.mJoinedGameID != GameInsID)
            {
                return;
            }

            m_MatchedInfo.mOtherPlayers.Add(JoinedPlayer.PlayerID);

            if (Is4xComplte())
            {
                if (m4xMatchedAction != null)
                {
                    m4xMatchedAction(this);
                }
            }
        }
Exemplo n.º 8
0
        void HandleSelectCharacterRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                return;
            }

            var characterId   = message.GetValue <UInt32>("CharacterID");
            var characterData = message.GetValue <VariableTable>("Attributes");

            var cachedCharacterId = m_OnlineClient.GetCharacterId();

            System.Diagnostics.Debug.Assert(characterId == cachedCharacterId);

            int    Gold, Agile, Strength, Integer;
            object obj;

            characterData.TryGetValue(new StringCrc32("Gold"), out obj);
            Gold = Convert.ToInt32(obj);
            characterData.TryGetValue(new StringCrc32("Agile"), out obj);
            Agile = Convert.ToInt32(obj);
            characterData.TryGetValue(new StringCrc32("Strength"), out obj);
            Strength = Convert.ToInt32(obj);
            characterData.TryGetValue(new StringCrc32("Integer"), out obj);
            Integer = Convert.ToInt32(obj);
        }
Exemplo n.º 9
0
        void HandleLeaveGameRes(SFMessage message)
        {
            var Result = message.GetValue <Result>("Result");

            if (Result.IsFailed)
            {
                PrintStatus(1, "HandleLeaveGameRes failed {0} {1}", Result, m_LoginID);
                CloseAllConnections();
                return;
            }

//          PrintStatus("HandleLeaveGameRes ID = {0}", m_LoginID);
            if (m_JoinedGameUID == 0)
            {
                return;
            }

            if (m_MatchedInfo.mOtherPlayers.Contains(m_AccountID))
            {
                m_MatchedInfo.mOtherPlayers.Remove(m_AccountID);
            }

            m_MatchedInfo.mJoinedGameID = 0;
            m_JoinedGameUID             = 0;

            PrintStatus(1, "HandleLeaveGameRes And Send RequestGameMatchCmd ID = {0}", m_LoginID);

            // if (mSendReqLeaveGameAction != null)
            //     mSendReqLeaveGameAction(this);

            if (mSendReqMatchAction != null)
            {
                mSendReqMatchAction(this);
            }
        }
Exemplo n.º 10
0
        private void Timer_Tick(object sender, EventArgs e)
        {
            if (m_StreamDirectory != null)
            {
                SFMessage message = null;

                do
                {
                    message = m_StreamDirectory.PollMessageData();
                    if (message != null)
                    {
                        if (message.GetMessageID() == SF.Net.MessageIDPlayInstance.GetStreamListRes)
                        {
                            var requestResult = message.GetValue <Result>("Result");
                            var streamNames   = message.GetValue <string[]>("StreamNames");

                            Array.Sort(streamNames);

                            listLogChannels.BeginInit();
                            listLogChannels.Items.Clear();

                            foreach (var streamName in streamNames)
                            {
                                listLogChannels.Items.Add(streamName);
                            }

                            listLogChannels.EndInit();
                        }
                    }
                } while (message != null);
            }
        }
Exemplo n.º 11
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);
            }
        }
Exemplo n.º 12
0
        void HandleRemoveActorFromView(SFMessage message)
        {
            var playInstanceUID = message.GetValue <UInt64>("PlayInstanceUID");
            var playerID        = message.GetValue <UInt64>("PlayerID");
            var actorID         = message.GetValue <UInt64>("ActorID");

            // player left or moved away
            m_OtherPlayers.Remove(playerID);
        }
Exemplo n.º 13
0
        void HandleGetCharacterDataRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                return;
            }
        }
Exemplo n.º 14
0
        void HandleRequestGameMatchRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                PrintStatus("Game match request failed {0}", result);
                return;
            }
        }
Exemplo n.º 15
0
        //matching failed
        void HandleGameMatchFailedS2CEvt(SFMessage message)
        {
            if (mReqMatchResAction != null)
            {
                mReqMatchResAction(this, false);
            }

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

            PrintStatus(1, "GameMatchFailedS2CEvt failed {0}", Result);
        }
Exemplo n.º 16
0
        void HandleLeaveGameInstanceRes(SFMessage message)
        {
            UpdateButtonState();

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

            if (result.IsFailed)
            {
                return;
            }
        }
Exemplo n.º 17
0
        void HandleLeavePartyRes(SFMessage message)
        {
            PrintStatus(1, "HandleLeavePartyRes {0}", m_LoginID);

            m_PartyUID = 0;

            if (!IsPartyBoss)
            {
                NextState = eTesterState.PARTY_WAIT_INVITE;
            }
        }
Exemplo n.º 18
0
        void HandleCreatePartyRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

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

            PrintStatus("PartyCreated {0}", message.GetValue <UInt64>("PartyUID"));
        }
Exemplo n.º 19
0
        void HandleGetCharacterListRes(SFMessage message)
        {
            UpdateButtonState();

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

            if (result.IsFailed)
            {
                return;
            }

            var characters   = message.GetValue <VariableTable[]>("Characters");
            var numCharacter = characters.Length;

            listCharacter.BeginInit();
            listCharacter.Items.Clear();

            for (int iChar = 0; iChar < numCharacter; iChar++)
            {
                object obj;
                UInt64 characterId     = 0;
                string characterName   = null;
                byte[] characterVisual = null;

                if (characters[iChar].TryGetValue(new StringCrc32("CharacterId"), out obj))
                {
                    characterId = (UInt64)Convert.ChangeType(obj, typeof(UInt64));
                }
                if (characters[iChar].TryGetValue(new StringCrc32("Name"), out obj))
                {
                    characterName = (string)Convert.ChangeType(obj, typeof(string));
                }
                if (characters[iChar].TryGetValue(new StringCrc32("VisualData"), out obj))
                {
                    characterVisual = (byte[])obj;
                }
                VariableTable parsedValue = new VariableTable();
                parsedValue.FromSerializedMemory(characterVisual);

                listCharacter.Items.Add(new CharacterItem()
                {
                    CharacterId   = (uint)characterId,
                    CharacterName = characterName,
                    VisualData    = parsedValue
                });
            }

            listCharacter.EndInit();
        }
Exemplo n.º 20
0
        void HandleDataTestRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                PrintStatus("TestData failed {0}", result);
                return;
            }


            var testDatas = message.GetValue <byte[]>("TestData");

            PrintStatus("TestData Res {0}", testDatas.Length);
        }
Exemplo n.º 21
0
        void HandleChatMessageEvt(SFMessage message)
        {
            UInt64 SenderID = message.GetValue <UInt64>("SenderID");

            if (SenderID <= 10)
            {
                return;
            }

            PrintStatus(1, "Recived!! ChatMessage UserID = {0}", m_LoginID);

            if (mRecvChatDataAction != null)
            {
                mRecvChatDataAction(this);
            }
        }
Exemplo n.º 22
0
        void HandleGameMatchRes(SFMessage message)
        {
            var Result = message.GetValue <Result>("Result");

            if (Result.IsFailed)
            {
                PrintStatus(1, "HandleGameMatchRes failed {0}", Result);
                // This comes twice when I run the test second time.
                if (Result.Code != ResultCode.SVR_ALREADY_INQUEUE)
                {
                    CloseAllConnections();
                }
                return;
            }
            PrintStatus(0, "HandleGameMatchRes {0} ID = {1}", Result, m_LoginID);
        }
Exemplo n.º 23
0
        void HandlePlayerLeftS2CEvt(SFMessage message)
        {
            UInt64 GameInsID = message.GetValue <UInt64>("GameInsUID");

            if (m_MatchedInfo.mJoinedGameID != GameInsID)
            {
                return;
            }

            UInt64 LeavePlayerID     = message.GetValue <UInt64>("LeftPlayerID");
            UInt64 FindLeavePlayerID = m_MatchedInfo.mOtherPlayers.Find(pl => pl == (ulong)LeavePlayerID);

            // if(FindLeavePlayer != null)
            PrintStatus(1, "HandlePlayerLeftS2CEvt LeavePlayerID = {0}", LeavePlayerID);
            m_MatchedInfo.mOtherPlayers.Remove(FindLeavePlayerID);
        }
Exemplo n.º 24
0
        void HandleZoneListRes(SFMessage message)
        {
            UpdateButtonState();

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

            if (result.IsFailed)
            {
                return;
            }

            var zoneInstances = message.GetValue <VariableTable[]>("GameInstances");

            listZone.BeginInit();
            listZone.Items.Clear();

            foreach (var zoneInfo in zoneInstances)
            {
                object      obj;
                UInt64      instanceUID = 0;
                Int32       zoneTableId = 0;
                StringCrc32 zoneType    = new StringCrc32();

                if (zoneInfo.TryGetValue(new StringCrc32("InstanceUID"), out obj))
                {
                    instanceUID = (UInt64)Convert.ChangeType(obj, typeof(UInt64));
                }
                if (zoneInfo.TryGetValue(new StringCrc32("ZoneTableID"), out obj))
                {
                    zoneTableId = (Int32)Convert.ChangeType(obj, typeof(Int32));
                }
                if (zoneInfo.TryGetValue(new StringCrc32("Type"), out obj))
                {
                    zoneType = (StringCrc32)obj;
                }

                listZone.Items.Add(new ZoneItem()
                {
                    ZoneInstanceId = instanceUID,
                    ZoneTableId    = zoneTableId,
                    ZoneType       = zoneType,
                });
            }

            listZone.EndInit();
        }
Exemplo n.º 25
0
        void HandlePlayerLeftS2CEvt(SFMessage message)
        {
            UInt64 GameInsID = message.GetValue <UInt64>("GameInsUID");

            if (m_MatchedInfo.mJoinedGameID != GameInsID)
            {
                return;
            }

            UInt64            LeavePlayerID = message.GetValue <UInt64>("LeftPlayerID");
            PlayerInformation LeavePlayer   = m_MatchedInfo.mOtherPlayers.Find(pl => pl.PlayerID == (ulong)LeavePlayerID);

            if (LeavePlayer != null)
            {
                m_MatchedInfo.mOtherPlayers.Remove(LeavePlayer);
            }
        }
Exemplo n.º 26
0
        void HandleJoinGameRes(SFMessage message)
        {
            var Result = message.GetValue <Result>("Result");

            if (Result.IsFailed)
            {
                PrintStatus(1, "JoinGameRes failed {0}", Result);
                CloseAllConnections();
                return;
            }

            m_JoinedGameUID = message.GetValue <UInt64>("InsUID");
            //  if(m_JoinGameUID == 0)
            PrintStatus(1, "JoinGameRes Success GameID={0} MaxPlayer = {1} ID ={2}", m_JoinedGameUID,
                        message.GetValue <uint>("MaxPlayer"), m_LoginID);

            m_MatchedInfo = new MatchedInfo(m_JoinedGameUID);
        }
Exemplo n.º 27
0
        void HandleScoreRes(SFMessage message)
        {
            var result = message.GetValue <int>("Result");

            if (result < 0)
            {
                PrintStatus("Login failed {0:X8}", result);
                return;
            }


            var rankingInfos = message.GetValue <TotalRankingPlayerInformation[]>("Ranking");

            foreach (var ranking in rankingInfos)
            {
                PrintStatus("Ranking info {0}", ranking);
            }
        }
Exemplo n.º 28
0
        void HandleGetFriendListRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                PrintStatus("Game friend list failed {0}", result);
                return;
            }

            PrintStatus("Friend list");
            var friendList = message.GetValue <FriendInformation[]>("FriendList");

            foreach (var friend in friendList)
            {
                PrintStatus("    {0}:{1}", friend.PlayerID, friend.NickName);
            }
        }
Exemplo n.º 29
0
        void HandleJoinConnectedPlayInstanceRes(SFMessage message)
        {
            UpdateButtonState();

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

            if (result.IsFailed)
            {
                return;
            }

            var playInstanceUID = message.GetValue <UInt64>("PlayInstanceUID");
            var playerID        = message.GetValue <UInt64>("PlayerID");
            var movement        = message.GetValue <ActorMovement>("Movement");

            m_MyMove = movement;
            // player join process has finished
        }
Exemplo n.º 30
0
        void HandleScoreRes(SFMessage message)
        {
            var result = message.GetValue <Result>("Result");

            if (result.IsFailed)
            {
                PrintStatus("Login failed {0}", result);
                return;
            }

            PrintStatus("MyPlayerID {0}", m_AccountID);
            var rankingInfos = message.GetValue <TotalRankingPlayerInformation[]>("Ranking");

            foreach (var ranking in rankingInfos)
            {
                PrintStatus("Ranking info {0}", ranking);
            }
        }