예제 #1
0
    //네트워크 함수들?
    public void CreateRoomBtn()
    {
        CreateRoomReq req = new CreateRoomReq();

        req.protocolType = (int)Request.CreateRoom;
        Network.Instance.SendMessage(req);
    }
예제 #2
0
        ///////////////////////////////// 请求 //////////////////////////////////

        // 创建房间
        public string CreateRoom(CreateRoomReq para, Action <ResponseEvent> callback)
        {
            const int subcmd   = (int)ProtoCmd.ECmdCreateRoomReq;
            var       response = new NetResponseCallback(CreateRoomResponse);
            var       seq      = this.Send(para, subcmd, response, callback);

            Debugger.Log("CreateRoom_Para {0} {1}", para, seq);
            return(seq);
        }
예제 #3
0
    //创建房间.
    public void CreateRoom(string name, string sec)
    {
        CreateRoomReq req = new CreateRoomReq();

        req.hpMax = (uint)GameStateMgr.Ins.gameStatus.NetWork.Life;
        //章节编号×1000 + 关卡序号
        req.levelIdx  = (uint)GameStateMgr.Ins.gameStatus.NetWork.ChapterTemplate * 1000 + (uint)GameStateMgr.Ins.gameStatus.NetWork.LevelTemplate;
        req.maxPlayer = (uint)GameStateMgr.Ins.gameStatus.NetWork.MaxPlayer;
        req.roomName  = name;
        req.roundTime = (uint)GameStateMgr.Ins.gameStatus.NetWork.RoundTime;
        req.rule      = (RoomInfo.RoomRule)GameStateMgr.Ins.gameStatus.NetWork.Mode;
        req.secret    = sec;
        req.version   = Main.Ins.AppInfo.MeteorV2();//107 907
        req.pattern   = (RoomInfo.RoomPattern)GameStateMgr.Ins.gameStatus.NetWork.Pattern;
        if (req.pattern == RoomInfo.RoomPattern._Replay)
        {
            //向服务器发送某个录像文件
            MemoryStream ms = new MemoryStream();
            Serializer.Serialize(ms, GameStateMgr.Ins.gameStatus.NetWork.record);
            req.replay_data = ms.ToArray();
        }
        else if (req.pattern == RoomInfo.RoomPattern._Normal)
        {
            for (int i = 0; i < GameStateMgr.Ins.gameStatus.pluginModel.Count; i++)
            {
                GameStateMgr.Ins.gameStatus.pluginModel[i].Check();
                if (GameStateMgr.Ins.gameStatus.pluginModel[i].Installed)
                {
                    req.models.Add((uint)GameStateMgr.Ins.gameStatus.pluginModel[i].ModelId);
                }
            }
        }
        //把本地的武器ID,模型ID传过去,其他人进入房间后,选择角色或者武器,就受到房间此信息限制
        //req.weapons.Add();
        //只包含外接模型-基础0-19无论如何都可以使用.
        //int total = GameStateMgr.Ins.gameStatus.pluginModel.Count;
        //for (int i = 0; i < total; i++)
        //    req.models.Add((uint)GameStateMgr.Ins.gameStatus.pluginModel[i].ModelId);
        Exec(sProxy, (int)MeteorMsg.MsgType.CreateRoomReq, req);
        //1,人数上限
        //2.关卡模式
        //3.时长
        //4.地图模板
        //5.生命上限
        //6.禁用远程武器
    }
예제 #4
0
    //创建房间.
    public static void CreateRoom(string name, string sec)
    {
        CreateRoomReq req = new CreateRoomReq();

        req.hpMax = (uint)Main.Ins.GameStateMgr.gameStatus.NetWork.Life;
        //章节编号×1000 + 关卡序号
        req.levelIdx  = (uint)Main.Ins.GameStateMgr.gameStatus.NetWork.ChapterTemplate * 1000 + (uint)Main.Ins.GameStateMgr.gameStatus.NetWork.LevelTemplate;
        req.maxPlayer = (uint)Main.Ins.GameStateMgr.gameStatus.NetWork.MaxPlayer;
        req.roomName  = name;
        req.roundTime = (uint)Main.Ins.GameStateMgr.gameStatus.NetWork.RoundTime;
        req.rule      = (RoomInfo.RoomRule)Main.Ins.GameStateMgr.gameStatus.NetWork.Mode;
        req.secret    = sec;
        req.version   = Main.Ins.AppInfo.MeteorV2();//107 907
        req.pattern   = (RoomInfo.RoomPattern)Main.Ins.GameStateMgr.gameStatus.NetWork.Pattern;
        if (req.pattern == RoomInfo.RoomPattern._Replay)
        {
            //向服务器发送某个录像文件
        }
        else if (req.pattern == RoomInfo.RoomPattern._Record)
        {
            //服务器保存录像文件,在单轮结束后
        }
        //把本地的武器ID,模型ID传过去,其他人进入房间后,选择角色或者武器,就受到房间此信息限制
        //req.weapons.Add();
        //只包含外接模型-基础0-19无论如何都可以使用.
        int total = Main.Ins.GameStateMgr.gameStatus.pluginModel.Count;

        for (int i = 0; i < total; i++)
        {
            req.models.Add((uint)Main.Ins.GameStateMgr.gameStatus.pluginModel[i].ModelId);
        }
        Exec(TcpClientProxy.sProxy, (int)MeteorMsg.MsgType.CreateRoomReq, req);
        //1,人数上限
        //2.关卡模式
        //3.时长
        //4.地图模板
        //5.生命上限
        //6.禁用远程武器
    }