public void reset() { info = new RoomInfo(); conf = new RoomConf(); players = new List <PlayerInfo> (); state = new GameState(); seats = new List <SeatInfo> (); action = new GameAction(); overinfo = new GameOverInfo(); histories = new List <GameOverInfo>(); dissolve = null; }
/// <summary> /// 广播房间信息以连接 /// </summary> /// <param name="address"></param> /// <param name="port"></param> /// <param name="gameConf"></param> public static byte[] SendRoomConf(string address, int port, GameConf gameConf) { RoomBroadCast roomBroadCast = new RoomBroadCast(); roomBroadCast.address = address; roomBroadCast.port = port; RoomConf conf = new RoomConf(); conf.name = gameConf.Name; conf.maxMemCount = gameConf.MemCount; conf.mapType = (int)gameConf.MapType; conf.forceKill = gameConf.ForceKill; roomBroadCast.roomConf = conf; return(Serialize(Cmd.BroadcastRoomConf, roomBroadCast)); }
public static void LoginResponse(Player player, int ownerGuid, List <Player> players, GameConf conf) { LoginResponse response = new LoginResponse(); response.guid = player.GUID; foreach (Player p in players) { Member m = new Member(); m.guid = p.GUID; m.name = p.Name; response.members.Add(m); } RoomConf roomConf = new RoomConf(); roomConf.name = conf.Name; roomConf.mapType = (int)conf.MapType; roomConf.maxMemCount = conf.MemCount; roomConf.forceKill = conf.ForceKill; response.roomConf = roomConf; response.ownerGuid = ownerGuid; SerializeAndSend(player, Cmd.LoginResponse, response); }
public void prepareReplay(RoomHistory room, GameBaseInfo baseInfo) { reset(); info.roomid = room.room_tag; info.numofseats = room.info.seats.Count; info.numofgames = baseInfo.index + 1; int nSeats = room.info.seats.Count; state.state = "playing"; for (int i = 0; i < nSeats; i++) { PlayerInfo p = new PlayerInfo(); p.reset(); HistorySeats hs = room.info.seats[i]; p.name = hs.name; p.score = hs.score; p.userid = hs.uid; p.seatindex = i; p.online = true; p.ip = "127.0.0.1"; p.ready = true; players.Add(p); SeatInfo s = new SeatInfo(); s.reset(); s.holds = new List <int>(baseInfo.game_seats[i].holds); s.flowers = new List <int>(baseInfo.game_seats[i].flowers); seats.Add(s); if (p.userid == GameMgr.GetInstance().userMgr.userid) { seatindex = i; } } if (seatindex < 0) { seatindex = 0; } conf = baseInfo.conf; int button = baseInfo.button; state.button = button; state.turn = button; int count = baseInfo.mahjongs.Count; foreach (GameSeatInfo seat in baseInfo.game_seats) { count -= seat.holds.Count + seat.flowers.Count; } state.numofmj = count; }