Beispiel #1
0
        public void ReceiveChatInfoEvnet(params object[] objs)
        {
            if (Game.Scene.GetComponent <ToyGameComponent>().CurrToyGame != ToyGameId.CardFiveStar)
            {
                Log.Error("当前游戏类型 只有卡五星 收到到聊天消息时 却不在卡五星游戏中:" + Game.Scene.GetComponent <ToyGameComponent>().CurrToyGame);
                return;
            }
            long     userId   = (long)objs[0];
            ChatInfo chatInfo = objs[1] as ChatInfo;

            if (chatInfo.ChatType == ChatType.Text || chatInfo.ChatType == ChatType.SpeedinessText)
            {
                ShowChatTextContent(userId, chatInfo);
            }
            else if (chatInfo.ChatType == ChatType.Voice)
            {
                AudioClip clip = SpeexRecordMgr.Ins.BytesToAudioClip(chatInfo.VoiceContent.bytes);
                ShowChatVoiceContent(userId, clip);
            }
            else if (chatInfo.ChatType == ChatType.NormalExpression)
            {
                CardFiveStarPlayer cardFiveStarPlayer = CardFiveStarRoom.Ins.GetPlayerInfoUserIdIn(userId);
                cardFiveStarPlayer.ShowExpression(int.Parse(chatInfo.Content));
            }
            else if (chatInfo.ChatType == ChatType.MagicExpression)
            {
                string[]           contens       = chatInfo.Content.Split(GlobalConstant.ParameteSeparator);
                string             magicType     = contens[0];
                long               byMagicUserId = long.Parse(contens[1]);
                CardFiveStarPlayer sendPlayer    = CardFiveStarRoom.Ins.GetPlayerInfoUserIdIn(userId);
                CardFiveStarPlayer receivePlayer = CardFiveStarRoom.Ins.GetPlayerInfoUserIdIn(byMagicUserId);

                UIComponent.GetUiView <MagicExpressionsPanelComponent>().ShowMagicExpressions(sendPlayer.GetHeadPosition(), receivePlayer.GetHeadPosition(), magicType);
            }
        }
Beispiel #2
0
        //显示聊天 普通文字内容 和快捷文字
        public void ShowChatTextContent(long userId, ChatInfo chatInfo)
        {
            Show();
            CardFiveStarPlayer cardFiveStarPlayer = CardFiveStarRoom.Ins.GetPlayerInfoUserIdIn(userId);
            int clientSeat = cardFiveStarPlayer.ClientSeatIndex;

            _cahtUIDic[clientSeat].ShowChatContent(cardFiveStarPlayer._user.Sex, chatInfo);
        }
Beispiel #3
0
        //显示玩家信息
        public void ShowPlayerInfo(User user, int seatIndex, int nowScore = 0)
        {
            if (user.UserId == Game.Scene.GetComponent <UserComponent>().pUserId)
            {
                _userServereatIndex = seatIndex;
            }
            CardFiveStarPlayer cardFiveStarPlayer = CardFiveStarPlayerFactory.Creator(user, seatIndex, _userServereatIndex, _config.RoomNumber, _roomPanel.mPlayerUIsGo.transform, nowScore);//创建用户

            _ServerSeatIndexInPlayer[seatIndex] = cardFiveStarPlayer;
        }
        public void ShowVoteDissolve(Actor_VoteDissolveRoomResult result)
        {
            Show();
            CardFiveStarPlayer cardFiveStarPlayer = CardFiveStarRoom.Ins.GetPlayerInfoUserIdIn(result.SponsorUserId);

            mInitiatorText.text = $"玩家“{cardFiveStarPlayer._user.Name}”申请解散房间,是否同意?";
            List <VoteConditionItem> voteConditionItems = mVoteConditionItemGo.transform.parent.CreatorChildAndAddItem <VoteConditionItem, CardFiveStarPlayer>(CardFiveStarRoom.Ins._ServerSeatIndexInPlayer.Values.ToArray());

            SetPlayerVoteState(voteConditionItems, result); //设置玩家投票状态UI
            SetOptionBtnState(result);                      //设置显示投票按钮的状态
            VoteResultDispose(result);                      //投票结果处理
        }
Beispiel #5
0
        public async void InitHeadInfo(CardFiveStarPlayer player)
        {
            _Player        = player;
            _User          = player._user;
            _NameText.text = _User.Name.OmitStr(4);//名字
            RenewalSocre();
            _HeadImage.sprite = null;
            _HeadImage.sprite = await _User.GetHeadSprite();

            SetLostConnectionState(!_User.IsOnLine);
            _PiaoNumText.gameObject.SetActive(false);
            _HouseIconGo.SetActive(_Player.ServerSeatIndex == 0);
        }
Beispiel #6
0
        public static CardFiveStarPlayerHead CreateHead(CardFiveStarPlayer player, Transform parentTrm)
        {
            CardFiveStarPlayerHead cardFiveStarPlayerHead = ComponentFactory.Create <CardFiveStarPlayerHead>();

            if (PlayerHeadPrefab == null)
            {
                PlayerHeadPrefab =
                    ResourcesComponent.Ins.GetResoure(UIType.CardFiveStarRoomPanel, "PlayerHead") as GameObject;
            }
            GameObject go = GameObject.Instantiate(PlayerHeadPrefab, parentTrm);

            go.transform.localPosition = Vector3.zero;
            cardFiveStarPlayerHead.Init(player, go);
            return(cardFiveStarPlayerHead);
        }
Beispiel #7
0
        //显示这个玩家的UI信息
        public void SetUI(FiveStar_SmallPlayerResult playerResult)
        {
            Show();
            mData = playerResult;
            if (CardFiveStarRoom.Ins != null)
            {
                _CardFiveStarPlayer = CardFiveStarRoom.Ins.GetFiveStarPlayer(mData.SeatIndex);
            }
            else
            {
                _CardFiveStarPlayer = FiveStarVideoRoom.Ins.GetFiveStarPlayer(mData.SeatIndex);
            }

            CutMathRoomCardUI();
            ShowUserInfo();
            ShowPengGangHnads();
            ShowScore();
            ShowHuPaiInfo();
        }
Beispiel #8
0
        //显示用户信息
        private async void ShowUserInfo()
        {
            CardFiveStarPlayer cardPlayer = CardFiveStarRoom.Ins.GetFiveStarPlayer(mData.SeatIndex);

            //名字
            mNameText.text = cardPlayer._user.Name;
            //ID
            mIDText.text = "ID:" + cardPlayer._user.UserId;
            //头像
            mHeadImage.sprite = await cardPlayer._user.GetHeadSprite();

            //房主图标
            //mHouseIconGo.SetActive(cardPlayer._user.UserId == CardFiveStarRoom.Ins._RoomMasterUserId);
            mHouseIconGo.SetActive(false);
            //大赢家
            mBigWinLightGo.SetActive(UIComponent.GetUiView <FiveStarTotalResultPanelComponent>().bigWinSeatIndex == mData.SeatIndex);
            mBigWinTextGo.SetActive(UIComponent.GetUiView <FiveStarTotalResultPanelComponent>().bigWinSeatIndex == mData.SeatIndex);
            //最佳炮手
            mOptimumPaoShouGo.SetActive(UIComponent.GetUiView <FiveStarTotalResultPanelComponent>().PaoShouSeatIndex == mData.SeatIndex);
        }
 //投票结果处理
 private void VoteResultDispose(Actor_VoteDissolveRoomResult result)
 {
     if (result.Result == VoteResultType.Consent)
     {
         Hide();//隐藏界面
         UIComponent.GetUiView <PopUpHintPanelComponent>().ShowOptionWindow($"房间已解散", RoomDissolve, PopOptionType.Single);
     }
     else if (result.Result == VoteResultType.NoConsent)
     {
         Hide();//隐藏界面
         for (int i = 0; i < result.VoteInfos.Count; i++)
         {
             if (!result.VoteInfos[i].IsConsent)//如果自己已经投票 就隐藏调
             {
                 CardFiveStarPlayer noconsentPlayer = CardFiveStarRoom.Ins.GetPlayerInfoUserIdIn(result.VoteInfos[i].UserId);
                 UIComponent.GetUiView <PopUpHintPanelComponent>().ShowOptionWindow($"玩家{noconsentPlayer._user.Name}不同意解散房间", null, PopOptionType.Single);
             }
         }
     }
 }
        public static CardFiveStarPlayer Creator(User user, int serverSeatIndex, int clientSeatIndex, Transform parentTrm, int nowScore)
        {
            if (_playerDic.ContainsKey(clientSeatIndex))
            {
                _playerDic[clientSeatIndex].ServerSeatIndex = serverSeatIndex;
                _playerDic[clientSeatIndex].InitUI(user);
                _playerDic[clientSeatIndex].RegisterEvent();
                _playerDic[clientSeatIndex].ScoreChang(nowScore);
                return(_playerDic[clientSeatIndex]);
            }
            GameObject         prefabGo           = ResourcesComponent.Ins.GetResoure(UIType.CardFiveStarRoomPanel, _PlayerInPrefabName[clientSeatIndex]) as GameObject;
            GameObject         playerGo           = GameObject.Instantiate(prefabGo, parentTrm);
            CardFiveStarPlayer cardFiveStarPlayer = null;

            switch (clientSeatIndex)
            {
            case 0:
                cardFiveStarPlayer = ComponentFactory.Create <CardFiveStarDownPlayer>();
                break;

            case 1:
                cardFiveStarPlayer = ComponentFactory.Create <CardFiveStarRightPlayer>();
                break;

            case 2:
                cardFiveStarPlayer = ComponentFactory.Create <CardFiveStarUpPlayer>();
                break;

            case 3:
                cardFiveStarPlayer = ComponentFactory.Create <CardFiveStarLeftPlayer>();
                break;
            }
            cardFiveStarPlayer.ClientSeatIndex = clientSeatIndex;
            cardFiveStarPlayer.ServerSeatIndex = serverSeatIndex;
            cardFiveStarPlayer.Init(playerGo);
            cardFiveStarPlayer.InitUI(user);
            cardFiveStarPlayer.RegisterEvent();
            _playerDic[clientSeatIndex] = cardFiveStarPlayer;
            cardFiveStarPlayer.ScoreChang(nowScore);
            return(cardFiveStarPlayer);
        }
        //录像房间信息初始化
        private void GameInit(Video_GameInit gameInit)
        {
            if (_PlayerDic.Count > 0)
            {
                return;
            }

            //初始化房间信息
            _RoomConfig = FiveStarRoomConfigFactory.Create(gameInit.RoomConfigs);
            string roomInfo = "房号:" + gameInit.RoomNumber + "      " + gameInit.OfficeNumber + "/" +
                              _RoomConfig.MaxJuShu + "局      " + _RoomConfig.RoomNumber + "人局";

            _CurrRoomOffice = gameInit.OfficeNumber;
            _roomPanel.SetRoomInfo(roomInfo);
            //先隐藏所有玩家头像
            EventMsgMgr.SendEvent(CardFiveStarEventID.HideAllPlayer);

            //先记录出当前位置的服务器
            int selfSelfIndex = 0;

            for (int i = 0; i < gameInit.PlayerInfos.Count; i++)
            {
                if (gameInit.PlayerInfos[i].UserId == UserComponent.Ins.pUserId)
                {
                    selfSelfIndex = i;
                    break;
                }
            }
            //创建玩家头像信息
            for (int i = 0; i < gameInit.PlayerInfos.Count; i++)
            {
                User user = new User();
                user.Name     = gameInit.PlayerInfos[i].Name;
                user.Icon     = gameInit.PlayerInfos[i].Icon;
                user.UserId   = gameInit.PlayerInfos[i].UserId;
                user.IsOnLine = true;
                CardFiveStarPlayer player = CardFiveStarPlayerFactory.Creator(user, i, selfSelfIndex, _RoomConfig.RoomNumber, _roomPanel.mPlayerUIsGo.transform, gameInit.PlayerInfos[i].NowScore);//创建用户
                _PlayerDic[gameInit.PlayerInfos[i].SeatIndex] = player;
            }
        }
Beispiel #12
0
        public void Init(CardFiveStarPlayer player, GameObject go)
        {
            _Player    = player;
            _User      = player._user;
            gameObject = go;
            Transform transform = gameObject.transform;

            _HeadImage            = ETModel.GameObjectHelper.FindChild(transform, "HeadImage").GetComponent <Image>();
            _NameText             = ETModel.GameObjectHelper.FindChild(transform, "HeadImage/NameBgGo/NameText").GetComponent <Text>();
            _ScoreText            = ETModel.GameObjectHelper.FindChild(transform, "ScoreBg/ScoreText").GetComponent <Text>();
            _PiaoNumText          = ETModel.GameObjectHelper.FindChild(transform, "PiaoNumText").GetComponent <Text>();
            _GetScoreText         = ETModel.GameObjectHelper.FindChild(transform, "GetScoreText").GetComponent <Text>();
            _LostConnectionHintGo = ETModel.GameObjectHelper.FindChild(transform, "LostConnectionHintGo").gameObject;
            _HouseIconGo          = ETModel.GameObjectHelper.FindChild(transform, "HouseIconGo").gameObject;
            _ExpressionPoint      = ETModel.GameObjectHelper.FindChild(transform, "ExpressionPoint");
            gameObject.GetComponent <Button>().Add(ShowUserInfo, false);
            InitHeadInfo(_Player);


            EventMsgMgr.RegisterEvent(CommEventID.UserOnLine, UserOnLine);   //用户上线
            EventMsgMgr.RegisterEvent(CommEventID.UserOffLine, UserOffLine); //用户下线
        }