Example #1
0
        public void Start(FSPParam param, uint playerId)
        {
            m_Param        = param;
            m_MinePlayerId = playerId;
            Log_Tag        = "FSPManager[" + playerId + "]";

            if (m_Param.useLocal)
            {
                m_LockedFrameIndex = param.maxFrameId;
            }
            else
            {
                m_Client = new FSPClient();
                m_Client.Init(m_Param.sid);
                m_Client.SetFSPAuthInfo(param.authId);
                m_Client.SetFSPListener(OnFSPListener);

                m_Client.Connect(param.host, param.port);
                m_Client.VerifyAuth();

                m_LockedFrameIndex = m_Param.clientFrameRateMultiple - 1;
            }

            m_IsRunning = true;
            m_GameState = FSPGameState.Create;

            m_FrameBuffer       = new DictionarySafe <int, FSPFrame>();
            m_CurrentFrameIndex = 0;

            m_FrameCtrl = new FSPFrameController();
            m_FrameCtrl.Start(param);
        }
Example #2
0
        public void Start(FSPParam param, uint playerId)
        {
            mParam        = param;
            mMinePlayerId = playerId;
            LOG_TAG       = "FSPManager[" + playerId + "]";

            if (!mParam.useLocal)
            {
                mClientLockedFrame = mParam.clientFrameRateMultiple - 1;

                mClient = new FSPClient();
                mClient.SetSessionId((ushort)param.sid);
                mClient.SetFSPAuthInfo(param.authId);
                mClient.Connect(param.host, param.port);
                mClient.SetFSPListener(OnFSPListener);
                mClient.VerifyAuth();
            }
            else
            {
                mClientLockedFrame = param.maxFrameId;
            }

            mFrameCtrl = new FSPFrameController();
            mFrameCtrl.Start(param);

            mFrameBuffer = new DictionaryExt <int, FSPFrame>();

            mIsRunning         = true;
            mGameState         = FSPGameState.Create;
            mCurrentFrameIndex = 0;
        }
Example #3
0
        /// <summary>
        /// 用于本地测试
        /// </summary>
        public void StartLocalTest()
        {
            //战斗参数
            GameParam gameParam = new GameParam();

            gameParam.mapData.id = 0;
            gameParam.mode       = GameMode.EndlessPVP;

            //帧同步参数
            FSPParam fspParam = new FSPParam();

            fspParam.useLocal = true;
            fspParam.sid      = 1;


            //玩家参数
            PlayerData playerData = new PlayerData();

            playerData.userId = UserManager.Instance.MainUserData.id;
            playerData.id     = 1;

            PVPStartParam param = new PVPStartParam();

            param.fspParam  = fspParam;
            param.gameParam = gameParam;
            param.players.Add(playerData);

            StartGame(param);
        }
Example #4
0
        public void Stop()
        {
            m_GameState = FSPGameState.None;

            if (m_Controller != null)
            {
                m_Controller.Stop();
                m_Controller = null;
            }

            if (m_Client != null)
            {
                m_Client.Stop();
                m_Client = null;
            }

            m_FrameBuffer.Clear();
            m_CurrentFrameIndex = 0;
            m_FrameListener     = null;

            m_NextLocalFrame = null;

            _mainPlayerId       = 0;
            m_Param             = null;
            m_GameStateListener = null;

            m_IsRunning = false;
        }
Example #5
0
        public void Start(FSPParam param, uint playerId)
        {
            m_Param        = param;
            m_MinePlayerId = playerId;
            LOG_TAG        = "FSPManager[" + playerId + "]";

            if (!m_Param.UseLocal)
            {
                m_ClientLockedFrame = m_Param.ClientFrameRateMultiple - 1;

                m_Client = new FSPClient();
                m_Client.SetSessionId(param.Sid);
                m_Client.SetFSPAuthInfo(param.AuthId);
                m_Client.Connect();
                m_Client.SetFSPListener(OnFSPListener);
                m_Client.VerifyAuth();
            }
            else
            {
                m_ClientLockedFrame = param.MaxFrameId;
            }

            m_FrameCtrl = new FSPFrameController();
            m_FrameCtrl.Start(param);

            m_FrameBuffer = new Dictionary <int, FSPFrame>();

            m_IsRunning         = true;
            m_GameState         = FSPGameState.Create;
            m_CurrentFrameIndex = 0;
        }
Example #6
0
        /// <summary>
        /// for local test
        /// </summary>
        public void StartLocalTest()
        {
            //game params
            GameParam gameParam = new GameParam();

            gameParam.mapData.id = 0;
            gameParam.mode       = GameMode.UnlimitedPVP;

            //FSP params
            FSPParam fspParam = new FSPParam();

            fspParam.useLocal = true;
            fspParam.sid      = 1;


            //player params
            PlayerData playerData = new PlayerData();

            playerData.userId = UserManager.Instance.MainUserData.id;
            playerData.id     = 1;

            PVPStartParam param = new PVPStartParam();

            param.fspParam  = fspParam;
            param.gameParam = gameParam;
            param.players.Add(playerData);

            StartGame(param);
        }
Example #7
0
        public void Start(FSPParam param, uint playerid)
        {
            fspParam = param;
            playerID = playerid;
            LOGTAG   = "FSPManager[" + playerid + "]";

            if (param.useLocal)
            {
                serverLockedFrameIndex = fspParam.maxFrameID;
            }
            else
            {
                fspClient = new FSPClient();
                fspClient.Init(fspParam.sessionID);
                fspClient.SetFSPAuthID(fspParam.authID);
                fspClient.SetFSPListener(OnFSPListener);
                fspClient.Connect(fspParam.host, fspParam.port);
                fspClient.VerifyAuth();
                serverLockedFrameIndex = fspParam.clientFrameRateMultiple - 1;
            }
            isRunning               = true;
            fspGameState            = FSPGameState.Create;
            frameDatas              = new Dictionary <int, FSPFrameData>();
            clientCurrentFrameIndex = 0;
            fspFrameController      = new FSPFrameController();
            fspFrameController.Start(param);
        }
        public void Start(FSPParam param)
        {
            this.Log("Start()");
            param.sid = m_playerId;
            m_mgrFSP  = new FSPManager();
            m_mgrFSP.Start(param, m_playerId);
            m_mgrFSP.SetFrameListener(OnEnterFrame);
            m_mgrFSP.onGameEnd += (arg) =>
            {
                this.Log("OnGameEnd() " + arg);
                DelayInvoker.DelayInvoke(0.01f, Close);
                //Close();
            };
            m_mgrFSP.onGameExit += (playerId) =>
            {
                this.Log("onGameExit() " + playerId);
                if (playerId == m_playerId)
                {
                    DelayInvoker.DelayInvoke(0.01f, Close);
                    //Close();
                }
            };

            m_mgrFSP.SendGameBegin();
        }
Example #9
0
    public void Create(FSPParam param)
    {
        m_aFSPParam  = param;
        m_CurRoundId = 0;

        ClearRound();
        SetGameState(FSPGameState.Create);
    }
Example #10
0
 private void SetParam(FSPParam param)
 {
     clientFrameRateMultiple = param.clientFrameRateMultiple;
     JitterBufferSize        = param.jitterBufferSize;
     enableSpeedUp           = param.enableSpeedUp;
     defaultSpeed            = param.defaultSpeed;
     enableAutoBuff          = param.enableAutoBuffer;
 }
Example #11
0
 public void SetParam(FSPParam param)
 {
     m_ClientFrameRateMultiple = param.clientFrameRateMultiple;
     m_BuffSize       = param.frameBufferSize;
     m_EnableSpeedUp  = param.enableSpeedUp;
     m_DefaultSpeed   = param.defaultSpeed;
     m_EnableAutoBuff = param.enableAutoBuffer;
 }
Example #12
0
        //---------------------------------------------------------
        public void Create(FSPParam param)
        {
            Debuger.Log(LOG_TAG, "Create()");
            m_FSPParam   = param;
            m_CurRoundId = 0;

            ClearRound();
            SetGameState(FSPGameState.Create);
        }
Example #13
0
        private void StartGame(int src, GamesServerStartParam param)
        {
            m_context.fsp.CreateGame(param.roomId, param.authId);
            param.listPlayerFSPSessionId = m_context.fsp.AddPlayer(param.roomId, param.listPlayerId);

            FSPParam fspParam = m_context.fsp.GetParam();

            fspParam.authId = param.authId;
            m_context.ipc.Return(fspParam, param);
        }
Example #14
0
        public bool Start(FSPParam param)
        {
            m_mgrFSP = new FSPManager();
            m_mgrFSP.Start(param, m_playerId);

            m_mgrFSP.SetFrameListener(OnEnterFrame);
            m_mgrFSP.SetGameStateListener(this);

            return(true);
        }
Example #15
0
        public void Stop()
        {
            m_Param = null;

            Disconnect();
            m_WaitForReconnect = false;
            m_WaitForSendAuth  = false;

            m_TempSendData.vkeys.Clear();
            m_RecvListener = null;

            m_IsRunning = false;
        }
Example #16
0
        // 游戏正式开始
        public void Start(FSPParam param, uint playerId)
        {
            m_Param       = param;
            _mainPlayerId = playerId;
            LOG_TAG       = "FSPManager[" + playerId + "]";

            // 开房间形式
            if (!param.useLocal)
            {
                m_Client = new FSPClient(OnFSPListener);
                m_Client.Start(param);
            }

            m_Controller = new FSPController();
            m_Controller.Start(param);

            m_GameState = FSPGameState.Create;
            ResetRound();

            m_IsRunning = true;
        }
Example #17
0
        private void OnStartGame(int src, FSPParam fspParam, GamesServerStartParam gameStartParam)
        {
            PVPStartParam param = new PVPStartParam();

            param.fspParam = fspParam;

            Room room = GetRoom(gameStartParam.roomId);

            param.gameParam = room.GetGameParam();
            param.players   = room.data.players;


            for (int i = 0; i < gameStartParam.listPlayerId.Count; i++)
            {
                var player = param.players[i];
                //因为每一个玩家的FSPParam中,Sid都不一样,所以这里分别赋值
                param.fspParam.sid = gameStartParam.listPlayerFSPSessionId[i];
                var session = room.GetSession(player.userId);
                m_context.net.Invoke(session, "NotifyGameStart", param);
            }
        }
Example #18
0
        private void StartGame(ISession session, uint userId, uint roomId)
        {
            Room room = GetRoom(roomId);

            if (room != null)
            {
                if (room.data.owner == userId)
                {
                    if (room.CanStartGame())
                    {
                        FSPParam   param       = room.GetGameStartParam();
                        ISession[] listSession = room.GetSessionList();
                        m_net.Invoke(listSession, "NotifyGameStart", param);
                    }
                }
            }
            else
            {
                m_net.ReturnError("房间不存在", (int)roomId);
            }
        }
        void OnGUI()
        {
            if (GUILayout.Button("StartServer"))
            {
                FSPServer.Instance.Start(0);
                FSPServer.Instance.SetFrameInterval(66, 2);
                FSPServer.Instance.SetServerTimeout(0);

                FSPServer.Instance.StartGame();
                FSPServer.Instance.Game.AddPlayer(1, 1);
                FSPServer.Instance.Game.AddPlayer(2, 2);
                m_fspParam = FSPServer.Instance.GetParam();
            }

            if (FSPServer.Instance.IsRunning)
            {
                GUILayout.Label("Server IP  :" + m_fspParam.host);
                GUILayout.Label("Server Port:" + m_fspParam.port);
            }

            if (GUILayout.Button("CloseServer"))
            {
                FSPServer.Instance.Close();
            }

            GUILayout.BeginHorizontal();
            {
                GUILayout.BeginVertical();
                {
                    m_client1.OnGUI();
                }
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                {
                    m_client2.OnGUI();
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
        }
Example #20
0
        public bool Start(FSPParam param)
        {
            if (m_IsRunning)
            {
                return(true);
            }

            m_Param = param;
            SetSessionId(param.sid);
            SetFSPAuthInfo(param.authId);

            if (Connect(param.host, param.port))
            {
                // 必须要在发包之前设置为true
                m_IsRunning = true;

                VerifyAuth();

                return(true);
            }
            return(false);
        }
Example #21
0
        public void OnGUI()
        {
            if (m_mgrFSP != null)
            {
                GUILayout.Label("Client[" + m_playerId + "]: " + m_mgrFSP.GameState);
                GUILayout.Label("Port: " + m_mgrFSP.Port);
            }
            else
            {
                GUILayout.Label("Client[" + m_playerId + "]");
            }
            GUILayout.Label("VKey:" + m_lastVKey);

            // 没开的话只能先开
            if (m_mgrFSP == null)
            {
                if (GUILayout.Button("Start"))
                {
                    // 这些变量不能共用
                    FSPParam param = FSPServer.Instance.GetParam();
                    param.sid    = sid;
                    param.authId = (int)playerId;

                    Start(param);
                }
                return;
            }

            if (GUILayout.Button("SendGameBegin"))
            {
                m_mgrFSP.SendGameBegin();
            }

            if (GUILayout.Button("SendRoundBegin"))
            {
                m_mgrFSP.SendRoundBegin();
            }

            if (GUILayout.Button("SendControlStart"))
            {
                m_mgrFSP.SendControlStart();
            }

            if (GUILayout.Button("SendPing"))
            {
                m_mgrFSP.SendFSP(FSPVKeyBase.PING, UnityEngine.Random.Range(1, 1000));
            }

            if (GUILayout.Button("SendRoundEnd"))
            {
                m_mgrFSP.SendRoundEnd();
            }

            if (GUILayout.Button("SendGameEnd"))
            {
                m_mgrFSP.SendGameEnd();
            }

            if (GUILayout.Button("SendPlayerExit"))
            {
                m_mgrFSP.SendPlayerExit();
            }
        }
Example #22
0
 private void NotifyGameStart(FSPParam param)
 {
     Debuger.LogWarning(param.ToString());
 }
Example #23
0
 public void Start(FSPParam param)
 {
     SetParam(param);
 }
Example #24
0
 static FSPParam CloneParam(FSPParam param)
 {
     byte[] bytes = PBSerializer.Serialize(param);
     return PBSerializer.Deserialize<FSPParam>(bytes);
 }
Example #25
0
 public bool Start(FSPParam param)
 {
     SetParam(param);
     return(true);
 }
Example #26
0
        void OnGUI()
        {
            // main menu
            if (!FSPServer.Instance.IsRunning)
            {
                if (GUILayout.Button("StartServer"))
                {
                    FSPServer.Instance.Start(0);
                    FSPServer.Instance.SetFrameInterval(66, 2);
                    FSPServer.Instance.SetServerTimeout(0);

                    FSPServer.Instance.StartGame();
                    m_client1.sid = m_client1.playerId;
                    m_client2.sid = m_client2.playerId;
                    FSPServer.Instance.Game.AddPlayer(m_client1.playerId, m_client1.sid);
                    FSPServer.Instance.Game.AddPlayer(m_client2.playerId, m_client2.sid);

                    m_fspParam = FSPServer.Instance.GetParam();
                }
            }
            else
            {
                if (GUILayout.Button("CloseServer"))
                {
                    FSPServer.Instance.Close();
                }
            }

            if (!FSPServer.Instance.IsRunning)
            {
                return;
            }


            GUILayout.Label("Server IP  : " + m_fspParam.host);
            GUILayout.Label("Server Port: " + m_fspParam.port);

            if (FSPServer.Instance.Game != null)
            {
                GUILayout.Label("GameState: " + FSPServer.Instance.Game.State.ToString());
            }

            var game = FSPServer.Instance.Game;

            if (game != null)
            {
                GUILayout.Label("Frame: " + game.CurrentFrameId);
            }

            GUILayout.Space(10);

            // client gui
            GUILayout.BeginHorizontal();
            {
                GUILayout.BeginVertical();
                {
                    m_client1.OnGUI();
                }
                GUILayout.EndVertical();

                GUILayout.BeginVertical();
                {
                    m_client2.OnGUI();
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
        }
Example #27
0
File: Room.cs Project: zj831007/SGF
        public FSPParam GetGameStartParam()
        {
            FSPParam param = new FSPParam();

            return(param);
        }