コード例 #1
0
ファイル: SOS_Logic.cs プロジェクト: wcsjb/XiaoGame_New
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
    /// <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);
    }