Exemplo n.º 1
0
    /// <summary>
    /// 点击好友列表页面的发送消息按钮
    /// </summary>
    /// <param name="param"></param>
    private void ClickSendToFriend(object param)
    {
        button.clip = sendMsg;
        button.Play();
        var chatMsg = new mmopb.sendMessageToOnlineFriend_req();

        friendView.chatPanle.SetActive(true);
        GameObject   friend       = (GameObject)param;
        FriendDetail friendDetail = friend.GetComponentInChildren <FriendDetail>();

        roleId_chat = friendDetail.friendId;
        friendDetail.messageNotice.SetActive(false);

        //加载预制体
        GameObject _message = Resources.Load("MessageFriend") as GameObject;

        LinkedList <Message> friendMsg;

        if (messages.TryGetValue(roleId_chat, out friendMsg))
        {
            foreach (Message friend_message in friendMsg)
            {
                // 对象初始化
                GameObject    message       = Instantiate(_message, friendView.chatParentTransForm);
                MessageDetail messageDetail = message.GetComponent <MessageDetail>();

                DateTime dt = DateTime.Parse("1970-01-01 00:00:00").AddSeconds(friend_message.Time);
                dt = dt.AddSeconds(8 * 60 * 60);     // +8h的时差
                string time = dt.ToString("HH:mm:ss");
                messageDetail.time.text    = "【" + time + "】";
                messageDetail.name.text    = friend_message.Name;
                messageDetail.content.text = ":" + friend_message.Content;
            }
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 处理服务器返回的别的玩家发给自己的消息
    /// </summary>
    /// <param name="msg"></param>
    private void RevNewMessageHandle(object msg)
    {
        lobbyView.newMessage.SetActive(true);
        audio_message.Play();
        var chatMsg = msg as mmopb.sendMessageToOnlineFriend_ecn;
        //消息内容
        string content = chatMsg.content;
        //发送方昵称
        string playName = chatMsg.nickName;
        //发送方ID
        int chatRoleId = chatMsg.roleId;
        // 秒转化为字符串
        long seconds = chatMsg.ticks;


        if (friendView.chatPanle.activeInHierarchy == true)
        {
            //加载预制体
            GameObject messagePrefab = Resources.Load("MessageFriend") as GameObject;
            // 对象初始化
            GameObject    friend_message = Instantiate(messagePrefab, friendView.chatParentTransForm);
            MessageDetail messageDetail  = friend_message.GetComponent <MessageDetail>();

            DateTime dt = DateTime.Parse("1970-01-01 00:00:00").AddSeconds(seconds);
            dt = dt.AddSeconds(8 * 60 * 60);     // +8h的时差
            string time = dt.ToString("HH:mm:ss");
            messageDetail.time.text    = "【" + time + "】";
            messageDetail.name.text    = playName;
            messageDetail.content.text = ":" + content;

            GameObject[] myFriends = GameObject.FindGameObjectsWithTag("FRIEND");
            foreach (KeyValuePair <int, LinkedList <Message> > message in messages)
            {
                foreach (GameObject myFriend in myFriends)
                {
                    FriendDetail myfriendDetail = myFriend.GetComponent <FriendDetail>();
                    if (myfriendDetail.friendId == message.Key)
                    {
                        myfriendDetail.messageNotice.SetActive(true);
                    }
                }
            }
        }
        else
        {
            Message _message = new Message();
            _message.Time    = seconds;
            _message.Name    = playName;
            _message.Content = content;
            LinkedList <Message> message = new LinkedList <Message>();
            message.AddLast(_message);
            messages.Add(chatRoleId, message);
        }
    }
Exemplo n.º 3
0
    /// <summary>
    /// 在好友列表界面点击删除按钮
    /// </summary>
    /// <param name="param"></param>
    private void ClickDeleteFriend(object param)
    {
        button.clip = common;
        button.Play();
        var          deleteMsg    = new mmopb.deleteFriend_req();
        GameObject   friend       = (GameObject)param;
        FriendDetail friendDetail = friend.GetComponentInChildren <FriendDetail>();

        deleteMsg.roleId = friendDetail.friendId;
        ClientNet.Instance.Send(ProtoHelper.EncodeWithName(deleteMsg));
    }
Exemplo n.º 4
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (msgTypeCase_ == MsgTypeOneofCase.FriendsList)
            {
                hash ^= FriendsList.GetHashCode();
            }
            if (msgTypeCase_ == MsgTypeOneofCase.FriendDetail)
            {
                hash ^= FriendDetail.GetHashCode();
            }
            if (msgTypeCase_ == MsgTypeOneofCase.FriendRequests)
            {
                hash ^= FriendRequests.GetHashCode();
            }
            hash ^= (int)msgTypeCase_;
            return(hash);
        }
Exemplo n.º 5
0
 public static void MapFromFriendDetail(this FriendInfo info, FriendDetail detailData)
 {
     if (detailData == null)
     {
         return;
     }
     if (detailData.Result == null)
     {
         return;
     }
     info.Face       = detailData.Result.Face;
     info.Occupation = detailData.Result.Occupation;
     info.Phone      = detailData.Result.Phone;
     info.College    = detailData.Result.College;
     info.Blood      = detailData.Result.Blood;
     info.Homepage   = detailData.Result.Homepage;
     info.VipInfo    = detailData.Result.VipInfo;
     info.Country    = detailData.Result.Country;
     info.City       = detailData.Result.City;
     info.Personal   = detailData.Result.Personal;
     info.Nick       = detailData.Result.Nick;
     info.ShengXiao  = detailData.Result.ShengXiao;
     info.Email      = detailData.Result.Email;
     info.Province   = detailData.Result.Province;
     info.Gender     = detailData.Result.Gender;
     if (detailData.Result.BirthDay.Year != 0 && detailData.Result.BirthDay.Month != 0 && detailData.Result.BirthDay.Day != 0)
     {
         info.Birthday = new DateTime(detailData.Result.BirthDay.Year, detailData.Result.BirthDay.Month, detailData.Result.BirthDay.Day).ToShortDateString();
     }
     if (!string.IsNullOrEmpty(info.Homepage) && info.Homepage.IndexOf("qzone.qq.com") > 0)
     {
         info.RealQQ = long.Parse(info.Homepage.Replace(".qzone.qq.com", "").Replace("http://", ""));
     }
     if (!string.IsNullOrEmpty(info.Email) && info.Email.IndexOf("qq.com") > 0)
     {
         long real = 0;
         long.TryParse(info.Email.Replace("@qq.com", ""), out real);
         info.RealQQ = real;
     }
     //return info;
 }
Exemplo n.º 6
0
    /// <summary>
    /// 加载好友列表
    /// </summary>
    /// <param name="msg"></param>
    private void LoadFriendsHandle(object msg)
    {
        //删除原来有的列表
        GameObject[] oldfriends = GameObject.FindGameObjectsWithTag("FRIEND");
        foreach (GameObject oldfriend in oldfriends)
        {
            Destroy(oldfriend);
        }

        //加载预制体
        GameObject _friend = Resources.Load("Friend") as GameObject;
        var        friends = msg as mmopb.friendsList_ack;
        Dictionary <Int32, mmopb.p_FriendsInfo> friendList = friends.friendList;

        foreach (KeyValuePair <Int32, mmopb.p_FriendsInfo> friendInfo in friendList)
        {
            // 对象初始化
            GameObject   friend       = Instantiate(_friend, friendView.parentTransForm);
            FriendDetail friendDetail = friend.GetComponentInChildren <FriendDetail>();

            friendDetail.friendName.text = friendInfo.Value.nickName;
            Debug.Log(friendInfo.Value.nickName);
            if (friendInfo.Value.isOnline == 1)
            {
                friendDetail.avatar.color = new Color32(91, 62, 62, 255);

                friendDetail.status_img_online.SetActive(false);
                friendDetail.status_img_buzy.SetActive(false);
                friendDetail.status_img_offline.SetActive(false);
                friendDetail.status_text.text = "离线";
            }
            else if (friendInfo.Value.isOnline == 2)
            {
                friendDetail.avatar.color = new Color32(255, 255, 255, 255);

                friendDetail.status_img_online.SetActive(true);
                friendDetail.status_img_buzy.SetActive(false);
                friendDetail.status_img_offline.SetActive(false);
                friendDetail.status_text.text = "在大厅";
            }
            else if (friendInfo.Value.isOnline == 3)
            {
                friendDetail.avatar.color = new Color32(255, 255, 255, 255);

                friendDetail.status_img_online.SetActive(false);
                friendDetail.status_img_buzy.SetActive(true);
                friendDetail.status_img_offline.SetActive(false);
                friendDetail.status_text.text = "在房间";
            }
            else
            {
                friendDetail.avatar.color = new Color32(255, 255, 255, 255);

                friendDetail.status_img_online.SetActive(false);
                friendDetail.status_img_buzy.SetActive(false);
                friendDetail.status_img_offline.SetActive(false);
                friendDetail.status_text.text = "游戏中";
            }
            friendDetail.messageNotice.SetActive(false);
            friendDetail.friendId = friendInfo.Key;
        }

        GameObject[] myFriends = GameObject.FindGameObjectsWithTag("FRIEND");
        foreach (KeyValuePair <int, LinkedList <Message> > message in messages)
        {
            foreach (GameObject myFriend in myFriends)
            {
                FriendDetail myfriendDetail = myFriend.GetComponent <FriendDetail>();
                if (myfriendDetail.friendId == message.Key)
                {
                    myfriendDetail.messageNotice.SetActive(true);
                }
            }
        }
    }