예제 #1
0
    void NotifyRoomAddPlayer(byte[] data)
    {
        NotifyRoomAddPlayer addPlayerInfo = ProtoBufUtils.Deserialize <NotifyRoomAddPlayer>(data);

        texPlayerNames[playerCount].text = addPlayerInfo.NewPlayer.Name;
        playerIDs[playerCount]           = addPlayerInfo.NewPlayer.UserID;
        ++playerCount;
    }
예제 #2
0
파일: Room.cs 프로젝트: midgithub/ProjectC
        public bool AddPlayer(Player player)
        {
            if (mPlayers.Count >= mMaxCount)
            {
                return(true);
            }

            mPlayers.Add(player);
            mNotReady.Add(player);
            player.mRoom = this;

            NotifyRoomAddPlayer addPlayer = new NotifyRoomAddPlayer();

            addPlayer.NewPlayer          = new RoomPlayerInfo();
            addPlayer.NewPlayer.UserID   = player.mUserID;
            addPlayer.NewPlayer.Name     = player.mPlayerInfo.NickName;
            addPlayer.NewPlayer.Portrait = null;

            NotifyRoomInfo roomInfo = new NotifyRoomInfo();

            roomInfo.Players = new List <RoomPlayerInfo>();
            for (int i = 0; i < mPlayers.Count; ++i)
            {
                Player         p          = mPlayers[i];
                RoomPlayerInfo playerInfo = new RoomPlayerInfo();
                playerInfo.UserID   = p.mUserID;
                playerInfo.Name     = p.mPlayerInfo.NickName;
                playerInfo.Portrait = null;
                roomInfo.Players.Add(playerInfo);
            }
            float life = Time.ElapsedSeconds - mStartTime;

            roomInfo.RestTime = mTime - life;

            for (int i = 0; i < mPlayers.Count; ++i)
            {
                Player p = mPlayers[i];
                if (p == player)
                {
                    // 如果添加的玩家是自己,则通知自己所有角色数据;
                    NetWork.NotifyMessage <NotifyRoomInfo>(p.mUserID, STC.STC_RoomInfo, roomInfo);
                }
                else
                {
                    // 如果添加的玩家不是自己,则把添加的玩家数据通知自己;
                    NetWork.NotifyMessage <NotifyRoomAddPlayer>(p.mUserID, STC.STC_RoomAddPlayer, addPlayer);
                }
            }

            return(mPlayers.Count >= mMaxCount);
        }