コード例 #1
0
        private void HandleSendChatFeedback(byte[] data)
        {
            SendChatS2C feedback = ProtobufUtils.Deserialize <SendChatS2C>(data);

            if (feedback.result)
            {
                if (currnetChatConsumptionType == ChatConsumptionType.ChatItem)
                {
                    view.HideHornPanel();
                }

                if (view.currentChatTag == ChatMainView.ChatTag.PrivateChat)
                {
                    ChatDataStruct chatData = new ChatDataStruct();

                    ChatPlayerInfo chatPlayerInfo = new ChatPlayerInfo();
                    chatPlayerInfo.name     = dataManager.GetPlayerNickName();
                    chatPlayerInfo.portrait = dataManager.GetPlayerHeadIcon();
                    chatPlayerInfo.level    = dataManager.GetPlayerLevel();
                    chatPlayerInfo.playerId = currentChatId;

                    chatData.chatPlayerInfo = chatPlayerInfo;
                    chatData.message        = currentChatContent;
                    chatData.playerId       = currentChatId;

                    AddPrivateChatData(currentChatId, chatData);
                    view.ResfresPrivateChatItemData(GetPrivateChatData(currentChatId));
                }
            }
        }
コード例 #2
0
        private void HandleRelationApplicationFeedback(byte[] data)
        {
            RelationApplicationS2C feedback = ProtobufUtils.Deserialize <RelationApplicationS2C>(data);

            if (feedback.result)
            {
                switch (feedback.applciationType)
                {
                case RelationApplicationType.ApplyingRelation:

                    MessageDispatcher.PostMessage(Constants.MessageType.OpenAlertWindow, null, UI.AlertType.ConfirmAlone, "好友申请已经发送,请耐心等待对方确认", "提示");

                    break;

                case RelationApplicationType.BlockList:

                    for (int i = 0; i < worldChatDataList.Count; i++)
                    {
                        ChatDataStruct chatData = worldChatDataList [i];
                        if (chatData.chatPlayerInfo.playerId == feedback.friendId)
                        {
                            worldChatDataList.Remove(chatData);
                            i--;
                        }
                    }

                    MessageDispatcher.PostMessage(Constants.MessageType.OpenAlertWindow, null, UI.AlertType.ConfirmAlone, "已将该玩家拉入黑名单", "提示");

                    break;
                }
            }
        }
コード例 #3
0
 public void AddPrivateChatData(long playerId, ChatDataStruct chatData)
 {
     if (privateChatDataDic.ContainsKey(playerId))
     {
         privateChatDataDic[playerId].Add(chatData);
     }
     else
     {
         privateChatDataDic.Add(playerId, new List <ChatDataStruct> ()
         {
             chatData
         });
     }
 }
コード例 #4
0
ファイル: ChatMainView.cs プロジェクト: liushengchao112/Ember
        private void ShowBroadcastMessage(ChatDataStruct chatData)
        {
            broadcastPanel.gameObject.SetActive(true);
            playerLevelText.text = chatData.chatPlayerInfo.level.ToString();
            playerNameText.text  = chatData.chatPlayerInfo.name;
            messageText.text     = chatData.message;
            GameResourceLoadManager.GetInstance().LoadAtlasSprite(chatData.chatPlayerInfo.portrait, delegate(string name, AtlasSprite atlasSprite, System.Object param)
            {
                if (atlasSprite != null)
                {
                    playerIcon.SetSprite(atlasSprite);
                }
            }, true);

            isNotificate = true;
        }
コード例 #5
0
ファイル: ChatItem.cs プロジェクト: liushengchao112/Ember
        public override void UpdateItemData(object dataObj)
        {
            base.UpdateItemData(dataObj);

            if (dataObj == null)
            {
                return;
            }

            this.data = ( ChatDataStruct )dataObj;

            messageText.text = data.message;

            itemButton.interactable = data.isLeft;

            if (data.isLeft)
            {
                right.gameObject.SetActive(false);
                left.gameObject.SetActive(true);
                messageText.transform.localPosition = leftMessagePos;
                messageText.alignment    = TextAnchor.MiddleLeft;
                leftPlayerNameText.text  = data.chatPlayerInfo.name;
                leftPlayerLevelText.text = data.chatPlayerInfo.level.ToString();
                leftChatFrame.sizeDelta  = new Vector2(messageText.preferredWidth + 40, leftChatFrame.rect.height);

                GameResourceLoadManager.GetInstance().LoadAtlasSprite(data.chatPlayerInfo.portrait, delegate(string name, AtlasSprite atlasSprite, System.Object param)
                {
                    leftPlayerIcon.SetSprite(atlasSprite);
                }, true);
            }
            else
            {
                left.gameObject.SetActive(false);
                right.gameObject.SetActive(true);
                messageText.transform.localPosition = rightMessagePos;
                rightPlayerNameText.text            = data.chatPlayerInfo.name;
                rightPlayerLevelText.text           = data.chatPlayerInfo.level.ToString();
                messageText.alignment    = TextAnchor.MiddleRight;
                rightChatFrame.sizeDelta = new Vector2(messageText.preferredWidth + 40, rightChatFrame.rect.height);

                GameResourceLoadManager.GetInstance().LoadAtlasSprite(data.chatPlayerInfo.portrait, delegate(string name, AtlasSprite atlasSprite, System.Object param)
                {
                    rightPlayerIcon.SetSprite(atlasSprite);
                }, true);
            }
        }
コード例 #6
0
ファイル: ChatMainView.cs プロジェクト: liushengchao112/Ember
        private void OpenPlayerInfoPanel(ChatDataStruct chatData)
        {
            ChildChange(playerInfoPanel.parent, playerInfoPanel.gameObject.name);

            InfoPanelPlayerNameText.text  = chatData.chatPlayerInfo.name;
            InfoPanelPlayerLevelText.text = string.Format(levelStr, chatData.chatPlayerInfo.level.ToString());
            InfoPanelPlayerDanText.text   = "最强王者";          //string.Format( gradeStr, chatData.chatPlayerInfo.grade ); Waiting we have true data, use this functions.
            InfoPanelPlayerName           = chatData.chatPlayerInfo.name;
            InfoPanelPlayerId             = chatData.chatPlayerInfo.playerId;

            if (controller.IsFriendByPlayerId(InfoPanelPlayerId))
            {
                addFriendButton.interactable = false;
            }
            else
            {
                addFriendButton.interactable = true;
            }
        }