示例#1
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);
        }
示例#2
0
        private void StartGame(ISession session, uint roomId)
        {
            var  userId = session.uid;
            Room room   = GetRoom(roomId);

            if (room != null)
            {
                if (room.data.owner == userId)
                {
                    if (room.CanStartGame())
                    {
                        List <uint> listPlayerId = new List <uint>();
                        var         list         = room.data.players;
                        for (int i = 0; i < list.Count; i++)
                        {
                            listPlayerId.Add(list[i].id);
                        }

                        int authId = SGFRandom.Default.Seed;

                        GamesServerStartParam param = new GamesServerStartParam();
                        param.roomId       = roomId;
                        param.authId       = authId;
                        param.listPlayerId = listPlayerId;

                        m_context.ipc.Invoke(ServerID.GameServer, "StartGame", param);
                    }
                    else
                    {
                        m_context.net.ReturnError("还有玩家未准备", roomId);
                    }
                }
                else
                {
                    m_context.net.ReturnError("你不是房主,只有房主可以启动游戏", roomId);
                }
            }
            else
            {
                m_context.net.ReturnError("房间不存在", roomId);
            }
        }
示例#3
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);
            }
        }