Exemplo n.º 1
0
        internal void AddFriend(ulong guid, Msg_CL_AddFriend msg)
        {
            UserInfo userInfo = GetUserInfo(guid);

            if (null != userInfo)
            {
                ulong    friendGuid     = UserServer.Instance.UserProcessScheduler.FindUserGuidByNickname(msg.m_FriendNickname);
                UserInfo friendUserInfo = GetUserInfo(friendGuid);
                if (null != friendUserInfo)
                {
                    FriendInfo friendInfo = userInfo.FriendInfos.Find(fi => fi.FriendNickname == msg.m_FriendNickname);
                    if (null == friendInfo)
                    {
                        friendInfo      = new FriendInfo();
                        friendInfo.Guid = UserServer.Instance.GlobalProcessThread.GenerateFriendGuid();
                        userInfo.FriendInfos.Add(friendInfo);
                    }
                    friendInfo.FriendNickname = msg.m_FriendNickname;
                    friendInfo.FriendGuid     = friendGuid;
                    friendInfo.UserGuid       = guid;

                    FriendInfoForMessage msgInfo = new FriendInfoForMessage();
                    msgInfo.FriendGuid     = friendInfo.FriendGuid;
                    msgInfo.FriendNickname = friendInfo.FriendNickname;
                    msgInfo.IsBlack        = friendInfo.IsBlack;

                    Msg_LC_AddFriend retMsg = new Msg_LC_AddFriend();
                    retMsg.m_FriendInfo = msgInfo;
                    NotifyUser(guid, LobbyMessageDefine.Msg_LC_AddFriend, retMsg);
                }
            }
        }
Exemplo n.º 2
0
 private void HandleRemoveFriend(NodeMessage lobbyMsg)
 {
     GameFrameworkMessage.Msg_LC_RemoveFriend protoMsg = lobbyMsg.m_ProtoData as GameFrameworkMessage.Msg_LC_RemoveFriend;
     if (null != protoMsg)
     {
         FriendInfoForMessage friendInfo = ClientInfo.Instance.RoleData.Friends.Find(fi => fi.FriendGuid == protoMsg.m_FriendGuid);
         ClientInfo.Instance.RoleData.Friends.Remove(friendInfo);
     }
 }
Exemplo n.º 3
0
 private void HandleMarkBlack(NodeMessage lobbyMsg)
 {
     GameFrameworkMessage.Msg_LC_MarkBlack protoMsg = lobbyMsg.m_ProtoData as GameFrameworkMessage.Msg_LC_MarkBlack;
     if (null != protoMsg)
     {
         FriendInfoForMessage friendInfo = ClientInfo.Instance.RoleData.Friends.Find(fi => fi.FriendGuid == protoMsg.m_FriendGuid);
         if (null != friendInfo)
         {
             friendInfo.IsBlack = true;
         }
     }
 }