Example #1
0
        public void Fill_G2C_RoomDetailInfo(ref G2C_RoomDetailInfo response)
        {
            if (response == null)
            {
                response = new G2C_RoomDetailInfo();
            }

            response.RoomId = this.Id;

            if (this.LeftCamp.Count > 0)
            {
                response.LeftCamp = new RepeatedField <RoomOnePeople>();

                foreach (RoomOnePeople value in this.LeftCamp.Values)
                {
                    RoomOnePeople one = new RoomOnePeople(value);

                    response.LeftCamp.Add(one);
                }
            }

            if (this.RightCamp.Count > 0)
            {
                response.RightCamp = new RepeatedField <RoomOnePeople>();

                foreach (RoomOnePeople value in this.RightCamp.Values)
                {
                    RoomOnePeople one = new RoomOnePeople(value);

                    response.RightCamp.Add(one);
                }
            }

            if (true)
            {
                response.RoomSimpleInfo = new RoomSimpleInfo();

                RoomSimpleInfo roomSimpleInfo = response.RoomSimpleInfo;

                roomSimpleInfo.RoomId = this.Id;

                roomSimpleInfo.PeopleNum = this.PeopleNum;

                roomSimpleInfo.MapId = this.MapTableId;

                roomSimpleInfo.BigModel = (int)this.BigModel;

                roomSimpleInfo.SmallModel = this.SmallMode;

                roomSimpleInfo.RoomName = this.RoomName;

                roomSimpleInfo.State = 1;

                roomSimpleInfo.SerialNumber = this.SerialNumber;

                roomSimpleInfo.RoomOwnerId = this.OwnerId;
            }
        }
Example #2
0
        public static void Send_G2C_Rooms()
        {
            // 下发所有房间信息
            G2C_Rooms msg = new G2C_Rooms();

            msg.RoomSimpleInfo = new RepeatedField <RoomSimpleInfo>();

            Room[] rooms = Game.Scene.GetComponent <RoomComponent>().GetAll;

            foreach (Room room in rooms)
            {
                RoomSimpleInfo simpleInfo = new RoomSimpleInfo();

                simpleInfo.RoomId = room.Id;

                simpleInfo.PeopleNum = room.PeopleNum;

                simpleInfo.MapId = room.MapTableId;

                simpleInfo.BigModel = (int)room.BigModel;

                simpleInfo.SmallModel = room.SmallMode;

                simpleInfo.RoomName = room.RoomName;

                simpleInfo.State = room.State;

                simpleInfo.SerialNumber = room.SerialNumber;

                simpleInfo.ExistNum = room.Count;

                msg.RoomSimpleInfo.Add(simpleInfo);
            }

            MessageHelper.BroadcastPlayer(msg);
        }
Example #3
0
        protected async ETVoid RunAsync(Session session, C2G_StartGame message)
        {
            long roomId = message.RoomId;

            Room room = Game.Scene.GetComponent <RoomComponent>().Get(roomId);

            int errCode = 0;

            if (!room.CanStartGame(ref errCode))
            {
                Player player = session.GetComponent <SessionPlayerComponent>().Player;

                player.Send_PopMessage(errCode);

                return;
            }

            IPEndPoint mapAddress = StartConfigComponent.Instance.MapConfigs[0].GetComponent <InnerConfig>().IPEndPoint;

            Session mapSession = Game.Scene.GetComponent <NetInnerComponent>().Get(mapAddress);

            G2B_CreateBattle msg = new G2B_CreateBattle();

            msg.RoomId = roomId;

            msg.LeftCamp = new List <RoomOnePeople>();

            msg.RightCamp = new List <RoomOnePeople>();

            foreach (RoomOnePeople onePeople in room.GetLeftCamp())
            {
                RoomOnePeople tmp = new RoomOnePeople(onePeople);

                msg.LeftCamp.Add(tmp);
            }

            foreach (RoomOnePeople onePeople in room.GetRightCamp())
            {
                RoomOnePeople tmp = new RoomOnePeople(onePeople);

                msg.RightCamp.Add(tmp);
            }

            if (true)
            {
                msg.RoomSimpleInfo = new RoomSimpleInfo();

                RoomSimpleInfo roomSimpleInfo = msg.RoomSimpleInfo;

                roomSimpleInfo.RoomId = room.Id;

                roomSimpleInfo.PeopleNum = room.PeopleNum;

                roomSimpleInfo.MapId = room.MapTableId;

                roomSimpleInfo.BigModel = (int)room.BigModel;

                roomSimpleInfo.SmallModel = room.SmallMode;

                roomSimpleInfo.RoomName = room.RoomName;

                roomSimpleInfo.State = room.State;

                roomSimpleInfo.SerialNumber = room.SerialNumber;

                roomSimpleInfo.RoomOwnerId = room.OwnerId;
            }

            await mapSession.Call(msg);

            room.State = 2;

            room.GetAll();

            room.BroadCastStartGame();

            BroadcastMessage.Send_G2C_Rooms();
        }