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