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; } }
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); }
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(); }