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); } }
//显示聊天 普通文字内容 和快捷文字 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); }
//显示玩家信息 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); //投票结果处理 }
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); }
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); }
//显示这个玩家的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(); }
//显示用户信息 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; } }
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); //用户下线 }