/// <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; } } }
/// <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); } }
/// <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)); }
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); }
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; }
/// <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); } } } }