void OnJoinBattle(Player player, CBJoinBattleRequest msg) { if (m_state != State.WaitJoin) { return; } player.user.SetState(UserState.Battle); player.SetState(Player.State.Joined); var rep = new CBJoinBattleReply(); rep.Info = new BattleRoomInfo(); rep.Info.Id = m_roomID; rep.Info.Name = room.name; foreach (var d in m_players) { BattlePlayerInfo info = new BattlePlayerInfo(); info.Id = d.id; info.IsSelf = d == player; info.Level = d.user.level; info.Name = d.user.name; info.Gold = d.gold; info.Seat = d.seat; info.Joined = d.state == Player.State.Joined; rep.PlayerInfos.Add(info); } SendTo(player.id, rep); Debug.Log("{0}\t加入房间", player.user.name); }
public CBReconnectReply GetReconnectData(long uid) { var player = m_players.FirstOrDefault(a => a.uid == uid); CBReconnectReply rep = new CBReconnectReply(); foreach (var p in m_players) { BattlePlayerInfo info = new BattlePlayerInfo(); info.Id = p.id; info.IsSelf = p == player; info.Level = p.user.level; info.Name = p.user.name; info.Gold = p.gold; info.Seat = p.seat; info.State = (int)p.state; foreach (var card in p.handCards) { if (p == player) { info.HandCards.Add(card.id); } else { info.HandCards.Add(0); // 其他玩家不同步卡牌,防作弊 } } rep.PlayerInfos.Add(info); } foreach (var card in m_cardMgr.allCards) { CardInfo info = new CardInfo(); info.Id = card.id; info.TableID = card.tableID; rep.Cards.Add(info); } rep.RoomInfo = new BattleRoomInfo(); rep.RoomInfo.Id = room.id; rep.RoomInfo.Name = room.name; if (m_whosTurn != null) { rep.WhoseTurn = m_whosTurn.id; } rep.RoomState = (int)state; rep.LeftCardCount = m_cardMgr.leftCards.Count; rep.LeftTurnTime = m_whosTurnCountDown; rep.LastPlayedCardId = 0; return(rep); }
void OnJoinBattle(Player player, CBJoinBattleRequest msg) { if (state != State.WaitJoin) { return; } player.user.SetState(UserState.Battle); player.SetState(Player.State.Joined); var rep = new CBJoinBattleReply(); rep.Info = new BattleRoomInfo(); rep.Info.Id = m_roomID; rep.Info.Name = room.name; foreach (var p in m_players) { BattlePlayerInfo info = new BattlePlayerInfo(); info.Id = p.id; info.IsSelf = p == player; info.Level = p.user.level; info.Name = p.user.name; info.Gold = p.gold; info.Seat = p.seat; info.State = (int)p.state; foreach (var card in p.handCards) { info.HandCards.Add(card.id); } rep.PlayerInfos.Add(info); } SendTo(player.id, rep); Logger.Log("{0}\t加入房间", player.user.name); }
/// <summary> /// 事件有人加入 /// </summary> /// <param name="rpib"></param> void HandleSomeOneJoin(BattlePlayerInfo rpib) { Debug.Log("有人进入房间"); Debug.Log("rpib.name = " + rpib.name); Debug.Log("rpib.position = " + rpib.position); Debug.Log("rpib.iconindex = " + rpib.iconindex); Debug.Log("rpib.gold = " + rpib.gold); }