예제 #1
0
        public NFriendInfo GetFriendInfo(TCharacterFriend friend)
        {
            NFriendInfo friendInfo = new NFriendInfo();
            var         character  = CharacterManager.Instance.GetCharacter(friend.FriendID);

            friendInfo.friendInfo = new NCharacterInfo();
            friendInfo.Id         = friend.Id;
            if (character == null)
            {
                friendInfo.friendInfo.Id    = friend.FriendID;
                friendInfo.friendInfo.Name  = friend.FriendName;
                friendInfo.friendInfo.Class = (CharacterClass)friend.Class;
                friendInfo.friendInfo.Level = friend.Level;
                friendInfo.Status           = 0;
            }
            else
            {
                friendInfo.friendInfo       = character.GetBasicInfo();
                friendInfo.friendInfo.Name  = character.Info.Name;
                friendInfo.friendInfo.Class = character.Info.Class;
                friendInfo.friendInfo.Level = character.Info.Level;
                if (friend.Level != character.Info.Level)
                {
                    friend.Level = character.Info.Level;
                }
                character.FriendManager.UpdateFriendInfo(this.Owner.Info, 1);
                friendInfo.Status = 1;
            }
            Log.InfoFormat(" {0} :{1} GetFriendInfo:{2} Status:{3}", this.Owner.Id, this.Owner.Info.Name, friendInfo.friendInfo.Id, friendInfo.Status);
            return(friendInfo);
        }
예제 #2
0
        internal void AddFriend(Character friend)
        {
            TCharacterFriend tf = new TCharacterFriend()
            {
                FriendID   = friend.Id,
                FriendName = friend.Data.Name,
                Class      = friend.Data.Class,
                Level      = friend.Data.Level,
            };

            this.Owner.Data.Friends.Add(tf);
            friendChanged = true;
        }
예제 #3
0
        public NFriendInfo GetFriendInfo(TCharacterFriend friend)
        {
            NFriendInfo friendInfo = new NFriendInfo();
            Character   character  = CharacterManager.Instance.GetCharacter(friend.FriendID);

            friendInfo.friendInfo = new NCharacterInfo();
            friendInfo.Id         = friend.Id;
            if (character == null)//角色管理器里没有
            {
                friendInfo.friendInfo.Id    = friend.FriendID;
                friendInfo.friendInfo.Name  = friend.FriendName;
                friendInfo.friendInfo.Class = (CharacterClass)friend.Class;
                friendInfo.friendInfo.Level = friend.Level;
                friendInfo.Status           = 0;//不在线
            }
            else
            {
                friendInfo.friendInfo       = character.GetBasicInfo();
                friendInfo.friendInfo.Name  = character.Info.Name;
                friendInfo.friendInfo.Class = character.Info.Class;
                friendInfo.friendInfo.Level = character.Info.Level;
                if (friend.Level != character.Info.Level)
                {
                    friend.Level = character.Info.Level;
                }
                character.FriendManager.UpdateFrindInfo(this.Owner.Info, 1);//更新好友的好友列表里本玩家的在线状态
                friendInfo.Status = 1;
            }
            //通知好友自己上线
            //var friendSession = SessionManager.Instance.GetSession(friend.FriendID);
            //if (friendSession!=null)
            //{
            //    friendSession.Session.Character.FriendManager.UpdateFrindInfo(friendSession.Session.Character.Info, 1);
            //}
            Log.InfoFormat("{0}:{1} GetFriendInfo:{2}:{3} Status:{4}", this.Owner.Info.Name, friendInfo.friendInfo.Name, Owner.Info.Id, friendInfo.friendInfo.Id, friendInfo.Status);
            return(friendInfo);
        }